Tôi vẫn dùng Mandrake Linux vài năm gần đây và không có gì phàn nàn. Hôm qua cần dịch một chương trình C với static linking và nó bắt đầu có vấn đề. (Bình thường thì cũng chẳng cần phải dịch chương trình liên kết tĩnh vì output file lớn không cần thiết, nhưng tôi cần mã của một system call.)
Thứ nhất, mặc dù đã có các gói rpm glibc và glibc-devel, Mandrake không cài đặt thư viện tĩnh libc.a theo chế độ mặc định lúc cài hệ điều hành. Muốn có libc.a thì tôi cần gói rpm glibc-static-devel. Các gói này tôi đang dùng phiên bản 2.3.3-23.1 (khá cũ).
Tôi muốn nhân cơ hội này cập nhật luôn glibc lên phiên bản mới nhất 2.3.5-5.
root@hanoi (/home/softwares) % rpm -Uvh glibc-2.3.5-5mdk.i586.rpm
error: Failed dependencies:
glibc = 6:2.3.3 is needed by (installed) locales-2.3.3-8mdk
glibc = 6:2.3.3-23.1.101mdk is needed by (installed) glibc-devel-2.3.3-23.1.101mdk
Cái gói locales có thể bỏ đi cài lại được, nhưng gói glibc-devel-2.3.3-23.1 thì phiền hơn nhiều:
root@hanoi (/home/softwares) % rpm -ev glibc-devel-2.3.3-23.1.101mdk
error: Failed dependencies:
devel(libm) is needed by (installed) libgpm1-devel-1.20.1-11mdk
devel(libm) is needed by (installed) libncurses5-devel-5.4-1.20040529.2mdk
devel(libm) is needed by (installed) libxml2-devel-2.6.13-1.1.101mdk
glibc-devel is needed by (installed) XFree86-devel-4.2.1-3mdk
glibc-devel >= 2.2.5-14mdk is needed by (installed) gcc-3.4.1-4mdk
Tiếp tục kiểu này, gói gcc có rất nhiều các gói khác phụ thuộc vào nó. Như vậy cập nhật bằng phương pháp bổ củi xem ra không phải là giải pháp.
Tôi thử dùng rpmdrake thì nó lại không có chọn lựa cho cập nhật glibc, nhiều khả năng chính là vì hầu hết các gói khác trong hệ thống phụ thuộc vào glibc. Tìm lòng vòng trên mạng thì có nhiều người cũng bị các vấn đề kiểu này khi cập nhật glibc.
Cuối cùng, tôi phải tìm chính gói glibc-static-devel-2.3.3-23.1 để cài. Bạn có biết cách nào tốt nhất để cập nhật glibc mới không? (Đem nguồn mới về dịch lại và cài đặt thì có các vấn đề cực kỳ lắt nhắt về sự không nhất quán của các header files và các phụ thuộc khác.)
Gần đây OpenBSD sắp ra phiên bản mới có tính bảo mật cao, chưa kể các *BSD nổi tiếng là được viết tốt (clean code) hơn *Linux (cả Dennis Richie cũng đã có lần nói vậy, tôi không tìm lại được link đến phỏng vấn này). Tìm được khoảng thời gian trống nào tôi sẽ thay Mandrake bằng một *BSD nào đó.

2 Comments
Linux vs OpenBSD:
Linus Torvalds on an interview about OpenBSD.
http://os.newsforge.com/article.pl?sid=05/06/09/2128249&from=rss
Người viết: Duc T. Ha
Ngày trước em dùng Fedora Core, 1 lần cài cũng bị lỗi y như bác. Không remove được old version trong khi app của em lại đòi new version
. Từ hồi đó chuyển sang xài Ubuntu, thấy thằng này quản lý các gói tốt hơn hăn
Người viết: KL