Những câu hỏi thường gặp về Linux
Thông tin linh tinh và các câu hỏi được trả lời
H:
Làm thế nào để làm cho chương trình XYZ chạy được trong Linux?
Đ:
Hãy đọc tài liệu, hoặc một cuốn sách hay về Unix và man page (gõ man man). Ngoài ra còn có
nhiều tài liệu theo dạng GNU Info. Hãy chạy Emacs và gõ F1-i, hoặc gõ info info nếu bạn không
có hoặc không thích Emacs. Chú ý rằng nút libc có thể không mô tả đúng phiên bản libc mới nhất của
Linux, hoặc GNU glibc2. Nhưng dự án GNU và LDP luôn tìm người tình nguyện để cập nhật tài liệu
này.
Cho dù bạn xem man page (phần 2 và 3) hay info page thì vẫn đủ thông tin để khởi đầu.
Cũng như mọi phần mềm tự do, tài liệu tốt nhất chính là mã nguồn.
Phiên bản mới nhất của man page, bộ tài liệu GNU Info, và những thông tin khác liên quan đến lập
trình, có thể được tìm thấy ở
metalab.unc.edu/pub/Linux/docs/man-pages/
.
H:
ELF là gì? glibc là gì?
Đ:
Hãy xem ELF HOWTO của Daniel Barlow. Chú ý rằng đây không phải là tài liệu [chuyển qua ELF],
được viết để nâng cấp sang ELF thủ công.
Linux có hai dạng thức khác nhau cho tập tin thực thi, tập tin đối tượng, và các thư viện, là “ELF.”
(Dạng thức cũ gọi là a.out.) Chúng có nhiều ưu điểm, bao gồm khả năng hỗ trợ thư viện dùng chung và
liên kết động tốt hơn.
Cả tập tin a.out và ELF đều có thể cùng tồn tại trên hệ thống. Tuy nhiên, chúng dùng thư viện C khác
nhau, cả hai thư viện đều phải được cài đặt.
Nếu bạn muốn biết hệ thống có dùng ELF hay không, hãy tìm trong
/lib
một tập tin tên là
“[libc.so.5]”. Nếu có, có thể bạn có các thư viện ELF. Nếu bạn muốn biết bản cài đặt của bạn có phải là
ELF hay không, hãy chọn một chương trình, giả sử ls, và chạy lệnh sau:
-chiark:~> file /bin/ls
/bin/ls: Linux/i386 impure executable (OMAGIC) - stripped
valour:~> file /bin/ls
/bin/ls: ELF 32-bit LSB executable, Intel 80386, version 1, stripped
Có một bản patch để Linux 1.2.x có thể dùng trình biên dịch ELF, và tạo ra core dump ELF, đặt tại
ftp://tsx-11.mit.edu/pub/packages/GCC/. Bạn không cần patch này để chạy các chương trình dạng ELF.
Linux 1.3.x và sau nay hoàn toàn không cần patch này.
Thư viện GNU glibc2 cần thiết cho những phiên bản của các thư viện ELF gần đây để cho phép liên kết
động và nạp động. Thông tin nâng cấp đặt tại (“Làm sao cập nhật thư viện mà không làm hỏng hệ
thống?
”)
H:
Làm thế nào để xác định gói phần mềm nào đã được cài trên hệ thống
Đ:
Với các gói phần mềm dạng RPM, hãy dùng lệnh:
$ rpm -qa
59