Computer >> Máy Tính >  >> Hệ thống >> Linux

Cách liệt kê các phụ thuộc của một gói trong Ubuntu

Không giống như Windows, macOS và Android, phần mềm trên Ubuntu — và Linux nói chung — không được phân phối dưới dạng một gói duy nhất. Thay vào đó, khi bạn cài đặt một ứng dụng, trình quản lý gói của hệ thống sẽ tải xuống nhiều gói, bao gồm gói ứng dụng chính và các gói phụ thuộc của nó. Tuy nhiên, điều này chỉ đúng với cài đặt gói truyền thống trên Linux, tức là sử dụng trình quản lý gói.

Biết những phần phụ thuộc bổ sung nào được tải xuống trong quá trình cài đặt có thể có lợi cho cả người mới bắt đầu và người dùng nâng cao. Bằng cách này, người ta có toàn quyền kiểm soát các gói được cài đặt trên hệ thống của họ.

Hãy xem cách bạn có thể kiểm tra các phụ thuộc của một gói trên Ubuntu.

Sự phụ thuộc của gói là gì?

Các gói phụ thuộc là các gói hỗ trợ cần thiết để ứng dụng hoạt động bình thường trong Linux. Ví dụ:nếu bạn muốn tải xuống trình phát phương tiện VLC trên Ubuntu, APT sẽ cài đặt một số gói bổ sung như libc6 gcc , ngoài " vlc chính "gói. Một gói phụ thuộc cũng có thể có các gói khác làm phụ thuộc của nó, do đó, tạo thành cấu trúc phân cấp.

Vì các gói Linux phụ thuộc lẫn nhau, hầu hết mọi phần mềm đều yêu cầu các gói bổ sung mà bạn phải cài đặt trên hệ thống của mình.

Mặc dù các trình quản lý gói như APT tự động hóa việc quản lý và cài đặt các phần phụ thuộc đã nói, nhưng lỗi vẫn xảy ra khi bạn cố gắng xây dựng gói theo cách thủ công từ nguồn. Tuy nhiên, bạn có thể giải quyết các lỗi như vậy bằng cách chỉ cần cài đặt phần phụ thuộc bắt buộc vào hệ thống của mình bằng cách sử dụng apt install lệnh.

Cách kiểm tra sự phụ thuộc của gói trong Linux

May mắn thay, trên Ubuntu, có một số cách để lấy danh sách các phụ thuộc của một gói. APT, trình quản lý gói mặc định trong Ubuntu và các bản phân phối dựa trên Debian, cung cấp nhiều lệnh để lấy thông tin liên quan đến phụ thuộc của một gói.

Sử dụng Trình quản lý gói APT

Bạn có thể sử dụng APT trong Ubuntu để nhận danh sách các phần phụ thuộc được liên kết với một gói. Cú pháp cơ bản của lệnh là:

sudo apt depends packagename

Ví dụ:để kiểm tra phần phụ thuộc cho hộp nhịp điệu gói:

sudo apt depends rhythmbox

Ngoài danh sách các phần phụ thuộc, đầu ra cũng sẽ bao gồm các gói được đề xuất và gợi ý mà bạn có thể cài đặt cùng với hộp nhịp điệu .

Cách liệt kê các phụ thuộc của một gói trong Ubuntu

Ngoài ra, bạn cũng có thể sử dụng apt-cache lệnh để nhận được cùng một đầu ra.

sudo apt-cache depends rhythmbox

Để nhận thêm thông tin liên quan đến một gói cụ thể, hãy sử dụng show thay vì phụ thuộc .

sudo apt show rhythmbox
sudo apt-cache show rhythmbox

Đầu ra:

Cách liệt kê các phụ thuộc của một gói trong Ubuntu

Danh sách Phụ thuộc Sử dụng dpkg

Nếu bạn đã tải xuống gói DEB trên hệ thống của mình và muốn biết phần phụ thuộc nào sẽ được cài đặt cùng với gói, bạn có thể sử dụng -I (viết hoa i, không viết thường L) hoặc --info gắn cờ bằng lệnh.

sudo dpkg -I /path/to/package.deb
sudo dpkg --info /path/to/package.deb

... ở đâu /path/to/package.deb là đường dẫn tuyệt đối hoặc tương đối đến tệp DEB.

Đầu ra sẽ hiển thị kích thước của gói, nguồn và thông tin hữu ích khác cùng với danh sách các phần phụ thuộc.

Cách liệt kê các phụ thuộc của một gói trong Ubuntu

Để nhận danh sách các phần phụ thuộc cho một gói đã cài đặt, hãy sử dụng -s cờ với dpkg. Ví dụ:

sudo dpkg -s firefox

Đầu ra:

Cách liệt kê các phụ thuộc của một gói trong Ubuntu

Sử dụng apt-rdepends

Để có đầu ra chi tiết hơn, bạn có thể sử dụng tiện ích apt-rdepends. Vì nó không được cài đặt sẵn trên hầu hết các bản phân phối Linux, bạn sẽ phải cài đặt nó theo cách thủ công trên Ubuntu bằng APT.

sudo apt install apt-rdepends

Sử dụng định dạng lệnh sau để lấy cây phụ thuộc cho một gói:

apt-rdepends packagename

Ví dụ:

apt-rdepends vlc

Đầu ra:

Cách liệt kê các phụ thuộc của một gói trong Ubuntu

Đầu ra được tạo thường lâu miễn là apt-rdepends hiển thị một cây phân cấp hoàn chỉnh của các phụ thuộc, có nghĩa là bạn cũng nhận được danh sách các phụ thuộc của một phụ thuộc.

Bạn cũng có thể nhận được danh sách các gói phụ thuộc vào một gói cụ thể. Ví dụ:để kiểm tra gói nào yêu cầu libc như một phụ thuộc:

apt-rdepends -r libc

Đầu ra:

Cách liệt kê các phụ thuộc của một gói trong Ubuntu

Tiện ích phụ thuộc ngược lại

Mặc dù tính năng phụ thuộc ngược lại ( -r cờ) của apt-rdepends hoạt động tốt hơn mong đợi, có một tiện ích khác mà bạn có thể sử dụng để trích xuất các phụ thuộc ngược của một gói. Lệnh phụ thuộc ngược lại là một phần của ubuntu-dev-tools và có thể được tải xuống bằng:

sudo apt install ubuntu-dev-tools

Cú pháp mặc định của lệnh là:

reverse-depends options packagename

... nơi tùy chọn là các cờ bạn có thể sử dụng với lệnh và tên gói là tên của gói mà bạn muốn kiểm tra ngược lại các phần phụ thuộc.

Bạn cũng có thể thêm các cờ khác nhau vào lệnh nói trên để sửa đổi đầu ra. Dưới đây là danh sách các tùy chọn hữu ích nhất:

  1. -R :Chỉ liệt kê các phần phụ thuộc trực tiếp (không có gói đề xuất hoặc được đề xuất)
  2. -s :Bao gồm các gói được đề xuất
  3. -l :Trình bày đầu ra ở định dạng rõ ràng hơn, thích hợp để sử dụng trong tập lệnh

Trong trường hợp bạn không thể tìm ra cách sử dụng công cụ và cần trợ giúp về dòng lệnh, hãy sử dụng --help hoặc -h cờ.

reverse-depends -h
reverse-depends --help

Nhận Danh sách Phụ thuộc bằng Cài đặt / Loại bỏ Mô phỏng

Đối với những người muốn có danh sách ngắn gọn về tất cả các phần phụ thuộc hiện chưa được cài đặt trên hệ thống, bạn có thể chạy cài đặt mô phỏng (hoặc gỡ cài đặt) của một gói cụ thể.

Ví dụ:để kiểm tra các phụ thuộc mà gói PHP yêu cầu, hãy chạy lệnh sau:

sudo apt install -s php

Đầu ra sẽ có phần "Các gói bổ sung sau sẽ được cài đặt". Tất cả các tên gói được liệt kê thêm là các phần phụ thuộc không được tìm thấy trên hệ thống của bạn.

Cách liệt kê các phụ thuộc của một gói trong Ubuntu

Nếu bạn muốn nhận danh sách các phần phụ thuộc cho một gói đã được cài đặt trên Ubuntu, bạn có thể thực hiện gỡ cài đặt mô phỏng để kiểm tra gói bổ sung nào sẽ được gỡ bỏ cùng với nó.

sudo apt remove -s packagename

Ví dụ:

sudo apt remove -s rhythmbox

Đầu ra:

Cách liệt kê các phụ thuộc của một gói trong Ubuntu

Các gói Linux phụ thuộc lẫn nhau

Như bạn có thể suy luận một cách công bằng từ hướng dẫn này, hầu hết mọi gói Linux đều phụ thuộc vào một gói khác. Nguyên tắc cơ bản đằng sau khái niệm này là trên các hệ điều hành dựa trên Linux, mỗi gói phải thực hiện một công việc duy nhất và làm tốt công việc đó.

Nếu một gói đã được phát triển để quản lý các dịch vụ âm thanh, thì các chương trình khác sẽ chỉ liệt kê gói đã nói là gói phụ thuộc của chúng và sử dụng gói đó để đáp ứng các yêu cầu về âm thanh của chúng.

Ngoài ra, trong trường hợp nhiều ứng dụng yêu cầu cùng một gói, nó chỉ được cài đặt một lần trên hệ thống, tránh dư thừa dữ liệu và tiết kiệm dung lượng lưu trữ trên đĩa. Bạn cũng có thể lấy danh sách tất cả các gói hiện được cài đặt trên hệ thống của mình bằng APT.