Come posso rimuovere tutte le dipendenze di build per un determinato pacchetto?


10

Quando voglio compilare qualcosa dal sorgente in Ubuntu / Debian, di solito ottengo dipendenze dalla build eseguendo " sudo apt-get build-dep PACKAGE_NAME" nel terminale.

Sono (di solito) inutili una volta terminato il lavoro di compilazione.

Quindi, come posso rimuovere tutte le dipendenze di build per un determinato pacchetto?

Risposte:


5

Per scoprire le dipendenze di compilazione di un programma è possibile eseguire apt-cache showsrc pkgnamee che elencherà, tra le altre informazioni Build-Depends, che sono spesso file che terminano -dev; anche se vale la pena verificare se alcuni file (in particolare quelli non contrassegnati -dev) sono richiesti da altri programmi. Puoi scoprirlo usando apt-cache depends filee apt-cache rdepends file. L'esempio seguente è per Shotwell:

apt-cache showsrc shotwell

Build-Depends: debhelper (> = 7.0.50 ~), m4, valac-0.16 (> = 0.15), libgee-dev (> = 0.5.0), libgtk-3-dev (> = 3.0.11), libexif -dev (> = 0.6.16), libsqlite3-dev (> = 3.5.9), libgexiv2-dev (> = 0.4.1-1build1), libgnomevfs2-dev (> = 2.24.2), libgphoto2-2-dev (> = 2.4.2), libsoup2.4-dev (> = 2.26.0), libxml2 (> = 2.6.32), libunique-3.0-dev (> = 1.0.0), libwebkitgtk-3.0-dev (> = 1.1.5), libgudev-1.0-dev (> = 145), libdbus-glib-1-dev (> = 0.80), libraw-dev (> = 0.13.1-2), libusb-dev, libjson-glib -dev (> = 0.7.6), libgstreamer0.10-dev (> = 0.10.28), libgstreamer-plugins-base0.10-dev (> = 0.10.32), python-scour, libunity-dev, liblaunchpad- integrazione-3.0-dev (> = 0.1.36), librest-dev

Esiste un comando per eseguire tutto in una volta sul sito webupd8 , ma ho scoperto che non sembra funzionare in modo affidabile con l'attuale versione di Ubuntu in quanto sembra rimuovere troppo. L'ho provato con Pinta e mi ha suggerito di rimuovere l'intera libreria mono. Si discute di tali problemi con l'utilizzo di comandi come quello webupd8 su Launchpad . Prestare molta attenzione quando si sperimenta qualsiasi "soluzione" che potresti trovare.

È un peccato che non ci siano autoremovecomandi per i build-deppacchetti installati.


1
Ho provato il metodo aptitude e sì, hai ragione, rimuove troppo ... può a causa delle dipendenze incrociate. Un altro mothod ho trovato è quello di passare la seguente opzione (durante l'utilizzo di comando build-dep): sudo apt-get build-dep -o APT::Get::Build-Dep-Automatic=true PACKAGE_NAME. Ora possono essere rimossi con apt-get autoremove. Questo funziona solo dopo aver rimosso il pacchetto principale.
Khurshid Alam,

2
Ad ogni modo, ho appena imparato che il modo corretto di farlo, sta usando pbuilder. Quindi nessuno deve preoccuparsi di installare / disinstallare dipendenze.
Khurshid Alam,

6

Tumbleweed scrive :

Per il futuro, consiglio vivamente di usare mk-build-deps... invece di aptitude build-dep. Ciò lascia un pacchetto ... nel tuo sistema, [che ha dipendenze] dai build-deps, che puoi facilmente disinstallare in seguito.

mk-build-deps può essere installato con sudo apt install devscripts


4

Opzione 1:

Ricorda quali pacchetti sono stati installati sudo apt-get build-dep PACKAGE_NAMEe rimuovili dopo la compilazione.

Opzione 2:

apt-cache showsrc fornisce moltissime informazioni sui pacchetti sorgente, incluso un elenco di build-dipendenti.

apt-cache showsrc PACKAGE_NAME

Per esempio:

$ apt-cache showsrc pithos
Package: pithos
Binary: pithos
Version: 0.3.17~git07dcbd86a1
Section: python
Maintainer: Kevin Mehall <km@kevinmehall.net>
Build-Depends: cdbs (>= 0.4.43), debhelper (>= 6), python, python-central (>= 0.6.11), python-distutils-extra (>= 2.10)
Architecture: all
Standards-Version: 3.8.2
Format: 1.0
Directory: pool/main/p/pithos
Files:
 cdf2129923e62bb62c246965453b40bd 2023031 pithos_0.3.17~git07dcbd86a1.tar.gz
 97689e8ada8be527d689f2c83415d3b0 1544 pithos_0.3.17~git07dcbd86a1.dsc
Python-Version: current
Checksums-Sha1: 35cbf3ae52922e50a0b81afcce2cd97a86afb254 2023031 pithos_0.3.17~git07dcbd86a1.tar.gz
Package-List: pithos deb python extra
Checksums-Sha256: 2b704d86f3dc1d36d180177d11e578bdcf74ea97b09b530144afe754e570b262 2023031 pithos_0.3.17~git07dcbd86a1.tar.gz
$ sudo apt-get remove cdbs debhelper python python-central python-distutils-extra

Il rischio con questa opzione è che potresti rimuovere un pacchetto che è importante per qualcosa oltre a creare PACKAGE_NAME. Basta leggere l'elenco dei pacchetti da rimuovere prima di procedere.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.