ข้อดีอย่างหนึ่งของลีนุกซ์คือสามารถรันได้บนหลากหลายระบบ (Platform) แต่ก็อาจทำให้ผู้ดูแลระบบปวดหัวได้ ในการจัดการโปรแกรมที่ติดตั้งได้
ปัญหาหนึ่งที่ผู้เขียนพบคือการใช้ rpm เพื่อจัดการโปรแกรมที่ติดตั้งบน RedHat, CentOS แบบ 64 bit คือมีทั้งโปรแกรม 32-bit และ 64-bit ถูกติดตั้งมารวมกัน
[root@server ~]# cat /etc/redhat-release Red Hat Enterprise Linux Server release 5.5 (Tikanga)
ตัวอย่างการใช้คำสั่ง rpm เพื่อดูว่ามี rpm package ที่ชื่อ png ถูกติดตั้งไว้อะไรบ้าง
[root@server ~]# rpm -qa | grep png libpng-1.2.10-7.1.el5_3.2 libpng-1.2.10-7.1.el5_3.2 libpng-devel-1.2.10-7.1.el5_3.2
จะเห็นว่ามี package ชื่อ “libpng-1.2.10-7.1.el5_3.2” ซ้ำกันสองบรรทัด เหตุก็เพราะว่า package ถูกติดตั้ง มีทั้งที่เป็นเวอร์ชั่น 32-bit และ 64-bit
ต้องระบุออปชั่นเพิ่มเติมของคำสั่ง rpm เพื่อให้แสดงเวอร์ชั่น 32-bit หรือ 64-bit ด้วย
รูปแบบการระบุออปชั่น
rpm –query -a –queryformat “%{NAME}-%{VERSION}.%{RELEASE}.%{ARCH}\n”
ตัวอย่างการระบุออปชั่นและเลือกเฉพาะ package ที่มีชื่อ png
[root@server ~]# rpm --query -a --queryformat "%{NAME}-%{VERSION}.%{RELEASE}.%{ARCH}\n" | grep png libpng-1.2.10.7.1.el5_3.2.x86_64 libpng-1.2.10.7.1.el5_3.2.i386 libpng-devel-1.2.10.7.1.el5_3.2.x86_64
เพื่อความสะดวก ไม่ต้องพิมพ์ออปชั่นยาวๆ ทุกครั้ง สามารถใส่ออปชั่นไว้ในไฟล์คอนฟิกกลางของเครื่อง
[root@server ~]# cat /etc/rpm/macros
%_query_all_fmt %%{name}-%%{version}-%%{release}.%%{arch}
ตัวอย่างการใช้คำสั่ง rpm หลังจากใส่ออปชั่นไว้ในไฟล์คอนฟิก
[root@server ~]# rpm -qa | grep png libpng-1.2.10-7.1.el5_3.2.x86_64 libpng-1.2.10-7.1.el5_3.2.i386 libpng-devel-1.2.10-7.1.el5_3.2.x86_64