Bagaimana cara menemukan dependensi build dari sebuah paket?

48

Saya ingin mencari tahu paket mana

sudo apt-get build-dep <package>

akan menginstal (jika saya sudah menginstal beberapa dependensi, saya juga ingin melihat mereka → jadi menjalankan atau mensimulasikan di atas tidak cukup). Baris perintah lebih disukai.

htorque
sumber
1
Saya bingung, tidak sudo apt-get build-dep <package>menunjukkan daftar paket (jika paket memiliki dependensi build) apakah akan menginstal?
Yesaya
1
Sayangnya itu hanya menunjukkan paket yang tidak diinstal.
Htorque

Jawaban:

45

Untuk daftar dependensi lengkap, termasuk dependensi dependensi, Anda dapat menggunakan:

apt-rdepends --build-depends openoffice.org

Perintah ini mungkin mengingatkan Anda untuk menginstal apt-rdependsterlebih dahulu.

Anda dapat menggunakan perintah berikut untuk hanya memperlihatkan yang tidak diinstal:

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

Lihat apt-rdepends --helpsemua opsi.

Catatan : Ini akan menghasilkan daftar besar .
apt-rdepends -b xterm, misalnya, menghasilkan 8773 garis output, dan membutuhkan waktu untuk melakukannya.

Jika Anda hanya ingin melihat paket-paket yang diperlukan untuk membangun paket paling atas, yaitu apa yang harus saya instal untuk membangun nautilus, jalankan:

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

Ini kira-kira setara dengan jawaban Carsten Thiel ( The following NEW packages will be installed), tetapi format outputnya sedikit lebih bagus. Ini juga hanya menunjukkan paket paling atas, sedangkan apt-get yang disimulasikan juga menunjukkan paket yang diinstal sebagai dependensi dari paket-paket tersebut.

Ini juga menunjukkan paket yang diinstal. Tetapi ini juga dapat menunjukkan paket yang diinstal secara default. Sayangnya, tidak ada metode yang banyak membantu ketika Anda mencoba untuk membersihkan sistem Anda setelah menjalankan apt-get build-dep. Sejauh yang saya tahu, tidak ada metode yang dapat diandalkan untuk menemukan yang diinstal kecuali dari melihat file log apt di /var/log/apt/history.log.

Stefano Palazzo
sumber
1
Terima kasih, versi dengan --follow=DEPENDSpersis apa yang saya cari. Anda juga dapat menemukan dependensi build tersebut di Launchpad, mis. untuk Nautilus: launchpad.net/ubuntu/natty/+source/nautilus (gulir ke bawah).
htorque
17

Opsi -s( --simulate) akan menampilkan semua yang akan dilakukan tanpa melakukan apa pun. Anda bahkan tidak memerlukan hak akses root untuk itu.

apt-get -s build-dep <package>
Carsten Thiel
sumber
6
Lihat komentar saya di atas - ini tidak akan menampilkan paket yang sudah diinstal. Maaf karena tidak tepat dalam pertanyaan saya.
Htorque
Tidak berfungsi - gagal denganE: Unable to find a source package for inkscape
anatoly techtonik
17
apt-cache showsrc <pkgname> | grep ^Build-Depends

showsrcmenampilkan file debian / control untuk paket sumber yang diberikan. Kami kemudian menerima baris yang dimulai dengan 'Build-Depends' yang memiliki daftar paket yang diperlukan untuk membangun dari sumber.

anonim, tanpa nama
sumber
+1 jika Anda menjelaskan apa apt-cache showsrcdan apa | grep. Tetap saja jawaban yang bagus. Terima kasih telah meluangkan waktu untuk menyediakannya.
MadMike
sudo apt-cache showsrc inkscapetidak bekerja inkscapedi Ubuntu 18.10W: Unable to locate package inkscape N: No packages found
give
@anatolytechtonik baru saja diuji pada Ubuntu 18.10 di Docker, bekerja untuk saya. Apakah kamu apt-get updatepertama kali?
Stéphane Gourichon
Ini harus menjadi jawaban yang diterima karena menyediakan alat yang dibutuhkan dan tidak memerlukan paket tambahan.
Stéphane Gourichon