Quản lý gói phụ thuộc trên Linux như một chuyên gia với lệnh ldd
Quản lý các phụ thuộc là một phần không thể thiếu trong việc duy trì hệ thống Linux của bạn. Phần mềm rất phức tạp và dựa trên vô số thư viện và tệp được chia sẻ. Đôi khi, việc theo dõi các tệp mà ứng dụng yêu cầu trở nên khó khăn.
Đây là lúc lệnh ldd trên Linux phát huy tác dụng. ldd là một công cụ dòng lệnh tháo vát để theo dõi các phụ thuộc đối tượng được chia sẻ theo yêu cầu của một ứng dụng.
Hãy tìm hiểu cách bạn có thể sử dụng lệnh ldd để tạo lợi thế cho mình và trở thành chuyên gia quản lý các phần phụ thuộc trên Linux!
Mục Lục
Gói phụ thuộc là gì?
Phần mềm không chỉ là mã nguồn độc lập mà là sự kết hợp của mã nguồn gốc và mã mượn từ các thư viện bên ngoài. Khi các thư viện này và các đối tượng dùng chung khác bị thiếu trong hệ thống của bạn, một ứng dụng phụ thuộc vào chúng có thể gặp trục trặc hoặc ngay lập tức từ chối khởi chạy.
Tất cả các tệp, gói, thư viện, v.v. được chia sẻ này được gọi chung là các phần phụ thuộc trên Linux. Mặc dù định nghĩa ngắn gọn này cung cấp cho bạn ý tưởng sơ bộ về các thành phần phụ thuộc, nhưng bức tranh thực tế phức tạp hơn thế một chút và đó là lý do tại sao điều quan trọng là phải tìm hiểu sâu về các thành phần phụ thuộc của gói.
Lệnh ldd là gì và nó hoạt động như thế nào?
ldd là viết tắt của Danh sách phụ thuộc động. Như tên gợi ý, ldd liệt kê tất cả các đối tượng được chia sẻ theo yêu cầu của một ứng dụng.
Nó hoạt động bằng cách gọi trình liên kết động với các biến môi trường được đặt đặc biệt. Khi bạn chạy ldd với vị trí của tệp nhị phân, nó sẽ trả về một đầu ra chứa danh sách các phụ thuộc, vị trí của chúng và giá trị thập lục phân biểu thị vị trí chúng được tải trong bộ nhớ.
Tìm các phụ thuộc đối tượng được chia sẻ bằng lệnh ldd
Bây giờ bạn đã có một ý tưởng rõ ràng về tất cả những gì về ldd, hãy bắt tay vào thực hiện và tìm hiểu cách bạn có thể tìm thấy các phụ thuộc phần mềm với nó.
Trước khi bạn tìm hiểu cách sử dụng ldd, trước tiên, hãy xác nhận xem bạn đã cài đặt nó trên hệ thống của mình chưa bằng cách in ra phiên bản ldd đã cài đặt:
ldd --version
Nếu nó trả về lỗi “không tìm thấy lệnh”, trước tiên bạn cần cài đặt ldd.
Trên các hệ thống dựa trên Ubuntu và Debian, hãy chạy:
sudo apt install libc-bin
Đối với các bản phân phối dựa trên Arch:
sudo pacman -S glibc
Trên RHEL và Fedora:
sudo dnf install glibc-common
Với ldd được cài đặt, bây giờ bạn có thể tập trung vào việc học cách sử dụng nó. Đây là cú pháp cơ bản cho lệnh ldd:
ldd binary_location
Trong trường hợp bạn không biết vị trí của tệp nhị phân, bạn có thể sử dụng một trong nhiều toán tử dòng lệnh của Linux và kết hợp đầu ra của lệnh which với ldd để tìm các phần phụ thuộc cho gói:
ldd -flag $(which binary_name)
ldd cung cấp bốn tùy chọn khác nhau để sửa đổi đầu ra. Họ đang:
- -v: In đầu ra chi tiết bao gồm thông tin bổ sung như thông tin phiên bản cho từng phụ thuộc
- -u: In tất cả các phần phụ thuộc không sử dụng, nghĩa là các phần phụ thuộc được tải nhưng không được triển khai
- -d: In các đối tượng bị thiếu và thực hiện di chuyển
- -r: In các đối tượng và chức năng bị thiếu và thực hiện di chuyển
Quản lý gói phụ thuộc trên Linux
Với ldd trong kho phần mềm của bạn, bạn sẽ có thể khắc phục sự cố liên quan đến sự phụ thuộc của đối tượng dùng chung với ứng dụng của mình.
Ngoài ra, vì ldd cũng xuất ra vị trí nơi thư viện được tải, bạn sẽ có thể gỡ lỗi ứng dụng và hiểu rõ hơn cách một thư viện cụ thể được triển khai. ldd cũng in ra các phiên bản của thư viện dùng chung được sử dụng trong một ứng dụng.
Sử dụng tính năng này, bạn có thể kiểm tra các ứng dụng của mình để tìm bất kỳ lỗ hổng tiềm ẩn nào liên quan đến phiên bản lỗi thời của thư viện dùng chung.
Quản lý phụ thuộc là một kỹ năng cốt lõi rất quan trọng để giữ cho hệ thống Linux của bạn khỏe mạnh. Tuy nhiên, đôi khi, một gói có thể bị hỏng mặc dù tất cả các thành phần phụ thuộc của nó vẫn hoạt động bình thường. Điều quan trọng là bạn biết cách tìm và sửa các gói bị hỏng.