Resolve : Error when apt-get or aptitude

ถ้าประสบปัญหา apt-get หรือ aptitude แล้วเออเร่อประมาณนี้

E: Could not get lock /var/lib/dpkg/lock – open (11 Resource temporarily unavailable)
E: Unable to lock the administration directory (/var/lib/dpkg/), is another process using it?

แก้ง่าย ๆ ก็ฆ่า Process นั้นให้ตายซะ แล้วไหนล่ะ Process ที่ว่า ?

ให้ใช้คำสั่งนี้ครับ พิมพ์ลงไปใน Terminal

ps -e | grep -e apt -e adept | grep -v grep

ข้างบนนี้คือคำสั่งที่ใช้ grep หรือให้แสดง Process ที่เกี่ยวกับ apt- ทั้งหลายที่รันอยู่ (ไม่ว่าจะเป็น apt-get, apt-cache, aptitude หรือ apt ใด ๆ ก็ตาม) จากนั้นก็จะมี Process ที่รันค้างอยู่ปรากฎขึ้นมาดังประมาณนี้

7591 ?        00:00:01 aptitude

วิธีฆ่ามันให้ตายง่าย ๆ ก็

sudo kill -9 7591

โดยที่ 7591 นั้นก็คือรหัสของ Process ที่รันอยู่นั่นเอง

เพียงแค่นี้ก็ apt- ได้สบายหายห่วง !

apt-get VS aptitude ปริศนาที่คาใจมานาน

เคยสงสัยมานานแล้วว่ามันต่างกันอย่างไร พยายามหาใน Google ก็เจอแบบภาษาปะกิด ไม่กระดิกอย่างแรง จนได้เข้าไปเที่ยว Debian Club นั่นแหละครับ ถึงไปพบกระทู้ที่ทำให้ตาสว่าง เลยขออนุญาติยกมาเก็บไว้ที่นี่ เผื่อวันหลังลืมจะได้เข้ามาระลึกความทรงทำใหม่ได้ง่าย ๆ

อยากทราบความแตกต่างระหว่าง apt-get install กับ aptitude install ครับ ทำไมให้ผลแตกต่างกัน

คือเวลาติดตั้งแพคเก็ต หรือดูในตัวอย่างการติดตั้งต่างๆ บางทีก็ใช้ apt-get install
หรือบางที่ก็ใ้ช้ aptitude install ทำให้งง ว่า จริงๆ แล้วมันคือตัวเดียวกันหรือเปล่า
หรือว่าทำงานไม่เหมือนกันอย่างไรครับ

เพราะบางแพคเก็บเช่นผมลงทดสอบลง apt-get install postfix
ปรากฏว่าลงได้ เซอร์วิสทำงานได้ สามารถ telnet localhost 25 ได้
แต่!!! พอ telnet เข้าไปถึงแล้ว มันไม่ response อะไรเลย ค้างอยู่อย่างงั้นแหละ

พอลองอีกเครื่องนึงลงเหมือนกันแต่ใช้อีกคำสั่ง aptitude install postfix
ปรากฏว่ารายแพกเก็ตที่จะติดตั้ง เยอะกว่าแบบแรกมาก ใช้เวลาลงนานกว่า
พอเซอร์วิสทำงานเสร็จลอง telnet localhost 25 ดูปรากฏว่าเชื่อมต่อได้
และมี response ขึ้นมา สามารถพิมพ์คำสั่งส่งเมล์ได้

เลยเป็นงงว่า มันทำงานต่างกันยังไงครับ

Re: ความแตกต่างระหว่าง apt-get install กับ aptitude install

apt-get โดยปกติจะติดตั้ง dependency น้อยกว่า aptitude ครับ คือ apt-get จะติดตั้งเฉพาะแพกเกจที่ Depends: แต่ aptitude จะติดตั้ง Recommends: นอกเหนือจาก Depends: ด้วย ซึ่ง Recommends: นี้ เป็น dependency แบบ “แนะนำให้ใช้ร่วม” แต่ไม่ถึงกับทำให้แพกเกจทำงานไม่ได้ถ้าขาดไปเหมือนกับ Depends:

ข้อแตกต่างอีกอย่างคือ aptitude จะถอดถอนแพกเกจที่ไม่จำเป็นต้องใช้แล้ว เช่น library รุ่นเก่า ๆ ที่ไม่มีใครใช้แล้วให้โดยอัตโนมัติ ในขณะที่สำหรับ apt-get จะต้องสั่ง “apt-get autoremove” เพื่อลบเอา

แนวคิดคือ apt-get เป็นเครื่องมือติดตั้งแบบพื้นฐาน ไม่แนะนำอะไรมาก ทำเท่าที่จำเป็น แต่จะบอกข้อมูลให้ผู้ใช้ตัดสินใจเอง แต่ aptitude จะช่วยตัดสินใจให้ในระดับหนึ่ง

ที่มา DebianClub.org