Làm thế nào để tôi tìm thấy các phụ thuộc xây dựng của một gói?


48

Tôi muốn tìm hiểu những gói

sudo apt-get build-dep <package>

sẽ cài đặt (nếu tôi đã cài đặt một số phụ thuộc, tôi cũng muốn xem những cái đó → vì vậy chạy hoặc mô phỏng ở trên là không đủ). Dòng lệnh ưa thích.


1
Tôi bối rối, không sudo apt-get build-dep <package>hiển thị danh sách các gói (nếu gói có bất kỳ phụ thuộc xây dựng nào) nó sẽ cài đặt không?
Ê-sai

1
Thật không may, chỉ hiển thị các gói không được cài đặt.
htorque

Câu trả lời:


45

Để biết danh sách đầy đủ các phụ thuộc, bao gồm các phụ thuộc của phụ thuộc, bạn có thể sử dụng:

apt-rdepends --build-depends openoffice.org

Lệnh có thể nhắc bạn cài đặt apt-rdependstrước.

Bạn có thể sử dụng lệnh sau để chỉ hiển thị những lệnh chưa được cài đặt:

apt-rdepends --build-depends --print-state openoffice.org | grep NotInstalled

Xem apt-rdepends --helpcho tất cả các tùy chọn.

Lưu ý : Điều này sẽ tạo ra một danh sách lớn .
apt-rdepends -b xterm, ví dụ, tạo ra 8773 dòng đầu ra và mất thời gian để thực hiện.

Nếu bạn chỉ muốn xem các gói được yêu cầu để xây dựng gói trên cùng, tức là tôi cần cài đặt gì để xây dựng nautilus, hãy chạy:

apt-rdepends --build-depends --follow=DEPENDS nautilus

Điều này gần tương đương với câu trả lời của Carsten Thiel ( The following NEW packages will be installed), nhưng định dạng đầu ra đẹp hơn một chút. Nó cũng chỉ hiển thị gói trên cùng, trong khi apt-get mô phỏng cũng hiển thị các gói được cài đặt dưới dạng phụ thuộc của các gói đó.

Điều này cũng cho thấy các gói được cài đặt. Nhưng nó cũng có thể hiển thị các gói được cài đặt theo mặc định. Thật không may, không có phương pháp nào giúp ích nhiều khi bạn đang cố gắng dọn sạch hệ thống của mình sau khi chạy apt-get build-dep. Theo như tôi biết, không có một phương pháp đáng tin cậy nào để tìm ra cái nào được cài đặt ngoại trừ việc xem tệp nhật ký apt tại /var/log/apt/history.log.


1
Cảm ơn, phiên bản với --follow=DEPENDSchính xác những gì tôi đang tìm kiếm. Bạn cũng có thể tìm thấy những phụ thuộc xây dựng trên Launchpad, vd. cho Nautilus: launchpad.net/ubfox/natty/+source/nautilus (cuộn xuống).
htorque

17

Tùy chọn -s( --simulate) sẽ xuất ra mọi thứ sẽ được thực hiện mà không làm gì cả. Bạn thậm chí không cần quyền root cho điều đó.

apt-get -s build-dep <package>

6
Xem bình luận của tôi ở trên - điều này sẽ không hiển thị các gói đã được cài đặt. Xin lỗi vì đã không chính xác trong câu hỏi của tôi.
htorque

Không hoạt động - thất bại vớiE: Unable to find a source package for inkscape
anatoly techtonik

17
apt-cache showsrc <pkgname> | grep ^Build-Depends

showsrchiển thị tệp debian / control cho gói nguồn đã cho. Sau đó, chúng tôi grep cho (các) dòng bắt đầu bằng 'Build-Depends' có danh sách các gói cần thiết để xây dựng từ nguồn.


+1 nếu bạn giải thích những gì apt-cache showsrcvà những gì | greplàm. Tuy nhiên, câu trả lời tốt. Cảm ơn đã dành thời gian để cung cấp nó.
MadMike

sudo apt-cache showsrc inkscapekhông hoạt động inkscapetrong Ubuntu 18.10 - choW: Unable to locate package inkscape N: No packages found
anatoly techtonik

@anatolytechtonik vừa thử nghiệm trên Ubuntu 18.10 trong Docker, hoạt động với tôi. Bạn đã làm apt-get updateđầu tiên?
Stéphane Gourichon

Đây phải là câu trả lời được chấp nhận vì nó cung cấp công cụ cần thiết và không cần thêm gói nào.
Stéphane Gourichon
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.