Lệnh `ldd` (List Dynamic Dependencies) trên Linux là một công cụ quan trọng được sử dụng để kiểm tra các thư viện chia sẻ được yêu cầu bởi tệp thực thi hoặc tệp đối tượng chia sẻ. Bằng cách chạy `ldd` theo sau là tên của tệp thực thi hoặc thư viện, người dùng có thể xem thư viện động nào là cần thiết và hệ thống mong đợi tìm thấy chúng ở đâu. Lệnh này giúp khắc phục sự cố liên quan đến các thư viện bị thiếu hoặc không tương thích, đảm bảo rằng tất cả các phụ thuộc đều được giải quyết chính xác. Nó hiển thị đường dẫn đầy đủ đến các thư viện hoặc chỉ ra nếu có thư viện nào bị thiếu, khiến nó trở thành một tiện ích thiết yếu cho các quản trị viên hệ thống và nhà phát triển quản lý các phần mềm phụ thuộc trên hệ thống Linux.
Tất cả các ví dụ được đề cập ở đây đều đã được thử nghiệm trên Ubuntu Linux, nhưng lệnh này hoạt động theo cùng một cách chính xác trên các Bản phân phối khác.
Và đây là cách trang hướng dẫn của công cụ giải thích về lệnh này:
Các ví dụ theo kiểu Hỏi & Đáp sau đây sẽ giúp bạn hiểu rõ hơn về cách ldd hoạt động.
Ví dụ:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22500%22%20height=%2252%22%3E%3C/svg%3E
Vì vậy, bạn có thể thấy tất cả các thư viện phụ thuộc chia sẻ đã được tạo ra trong đầu ra.
tạo ra kết quả sau khi sử dụng tùy chọn dòng lệnh -v:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22500%22%20height=%22124%22%3E%3C/svg%3E
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22352%22%20height=%2255%22%3E%3C/svg%3E
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22550%22%20height=%22177%22%3E%3C/svg%3E
Tất cả các ví dụ được đề cập ở đây đều đã được thử nghiệm trên Ubuntu Linux, nhưng lệnh này hoạt động theo cùng một cách chính xác trên các Bản phân phối khác.
Lệnh ldd Linux
Như đã đề cập ở phần đầu, lệnh ldd in ra các phần mềm phụ thuộc được chia sẻ. Sau đây là cú pháp của lệnh:
Mã:
ldd [option]... file...
Mã:
ldd in ra các đối tượng dùng chung (thư viện dùng chung) được yêu cầu bởi mỗi chương trình hoặc đối tượng dùng chung
được chỉ định trên dòng lệnh.
Câu hỏi 1. Sử dụng lệnh ldd như thế nào?
Cách sử dụng cơ bản của ldd khá đơn giản - chỉ cần chạy lệnh 'ldd' cùng với tên tệp đối tượng thực thi hoặc chia sẻ làm đầu vào.
Mã:
ldd [object-name]
Mã:
ldd test
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22500%22%20height=%2252%22%3E%3C/svg%3E
Vì vậy, bạn có thể thấy tất cả các thư viện phụ thuộc chia sẻ đã được tạo ra trong đầu ra.
Câu hỏi 2. Làm thế nào để ldd tạo ra thông tin chi tiết trong đầu ra?
Nếu bạn muốn ldd tạo ra thông tin chi tiết, bao gồm dữ liệu phiên bản ký hiệu, bạn có thể sử dụng tùy chọn dòng lệnh -v. Ví dụ, lệnh
Mã:
ldd -v test
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22500%22%20height=%22124%22%3E%3C/svg%3E
Câu hỏi 3. Làm thế nào để ldd tạo ra các phụ thuộc trực tiếp chưa sử dụng?
Để biết thông tin này, hãy sử dụng tùy chọn dòng lệnh -u. Đây là một ví dụ:
Mã:
ldd -u test
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22352%22%20height=%2255%22%3E%3C/svg%3E
Câu hỏi 4. Làm thế nào để ldd thực hiện việc di dời?
Có một số tùy chọn dòng lệnh bạn có thể sử dụng ở đây: -d và -r. Trong khi tùy chọn trước yêu cầu ldd thực hiện việc di dời dữ liệu, thì tùy chọn sau yêu cầu ldd thực hiện việc di dời cho cả đối tượng dữ liệu và hàm. Trong cả hai trường hợp, công cụ đều báo cáo các đối tượng ELF bị thiếu (nếu có).
Mã:
ldd -d
Mã:
ldd -r
Câu hỏi 5. Làm thế nào để nhận trợ giúp về ldd?
Tùy chọn dòng lệnh --help giúp ldd tạo ra thông tin hữu ích liên quan đến cách sử dụng cho công cụ.
Mã:
ldd --help
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22550%22%20height=%22177%22%3E%3C/svg%3E