15 เมษายน, 2559

[Ubuntu/Debian] วิธี downgrade package

เนื่องจากต้องการติดตั้งระบบตัวนึง ซึ่งใน ansible จะรัน playbook เริ่มต้นตัวที่เป็น bootstrap เพื่อเตรียมติดตั้งจริงต่อไป พบว่า ต้องมีการเพิ่ม repository และ ติดตั้งแพคเกจเพิ่มเติม ดูเหมือนไม่มีอะไรใช่ไหม?

ปัญหาคือ แพคเกจที่ต้องการจะลง ดันบังคับต้องเป็นเวอร์ชั่นที่ต่ำกว่าที่อยู่ในระบบ ซึ่งก็คือ python2.7
ปัญหาถัดมาคือ ถ้าจะลบออกมันจะลากญาติโยมที่พึ่งพา(depend) python2.7 ลงไปด้วย เพราะงั้นทำไงดี

วิธีแก้ง่ายๆ หลังจากหาดูมาตั้งนานนมคือ ใช้ aptitude !

ใช้ยังไง? แบบนี้เลย บอกมันไปว่าจะลบทิ้งนะ

$ sudo aptitude remove python2.7

เท่านั้นล่ะ มันจะร่ายยาวมาเลยว่าอะไรจะเกิดขึ้นบ้าง สิ่งที่ต้องทำคือ กด n ไปเรื่อยๆ คือให้มัน resolve ให้ใหม่นั่นล่ะ จนกว่าจะเจอว่าให้มัน downgrade ไปยังเวอร์ชั่นที่ต้องการ
แค่นี้ก็เรียบร้อย ไม่กระทบกับแพคเกจใดๆ