How to rebuild corrupted RPM database
วันนี้ได้ใช้ yum ในการ install, update และ erase ซ้ำๆกันหลายครั้ง เลยทำให้ yum เกิดอาการค้างในขั้นตอนการ uninstall อยู่นาน ก็นึกเอะใจว่าทำไมถึงได้นานขนาดนี้ จึงได้ตรวจสอบแล้วพบว่า process ของ yum ไม่มีการใช้งาน CPU เลยสักนิด ก็คิดว่ามันแฮงไปเรียบร้อยแล้ว เลยสั่ง kill process yum ทิ้งและลองรันคำสั่ง yum ใหม่ ผลที่ได้ก็ค้างอยู่ตรง Loaded plugins: downloadonly, fastestmirror และไม่ยอมไปไหนสักที ก็เลยลองอีกครั้งผลปรากฏว่าก็ยังค้างอยู่เหมือนเดิม
เมื่อสั่ง yum แล้วค้างทุกทีก็คิดว่ามันคงเกิดจาก rpm แน่ๆ เลยลองหา rpm process ดูก็พบว่ามี process ของ rpm ค้างอยู่หนึ่งตัว ซึ่งลักษณะของคำสั่งดังนี้
[bash]rpmq -q –all [/bash]
จากนั้นลองใช้คำสั่ง rpm เพื่อทดสอบให้แน่ใจว่าเกิดจาก rpm จริงๆ ผลที่ได้คือ rpm ก็ค้างเหมือนกัน เลยคิดว่ามันคง rpm database มันคง crash แน่ๆ เลยจัดการลบ database ของ rpm แล้วก็ลอง rebuild ใหม่ดู โดยมีวิธีการดังนี้
ลบไฟล์ __db.* จาก /var/lib/rpm/ โดยใช้คำสั่ง
[shell][root@ezylinux ~]# rm /var/lib/rpm/__db.* [/shell]
จัดการ rebuild db ใหม่ด้วยคำสั่ง
[shell][root@ezylinux ~]# rpm –verifydb[/shell]
จากนั้นก็สามารถใช้งาน yum ได้ตามปกติแล้วครับ