Wie kann ich alle Build-Abhängigkeiten für ein bestimmtes Paket entfernen?

10

Wenn ich etwas aus dem Quellcode in Ubuntu / Debian kompilieren möchte, erhalte ich normalerweise Build-Abhängigkeiten, indem ich " sudo apt-get build-dep PACKAGE_NAME" im Terminal ausführe.

Sie sind (normalerweise) unbrauchbar, sobald der Kompilierungsjob abgeschlossen ist.

Wie entferne ich alle Build-Abhängigkeiten für ein bestimmtes Paket?

Khurshid Alam
quelle

Antworten:

5

Um die Build-Abhängigkeiten eines Programms herauszufinden, das Sie ausführen können apt-cache showsrc pkgname, werden unter anderem die aufgelistet Build-Depends, bei denen es sich häufig um Dateien handelt, die auf enden -dev. Es lohnt sich jedoch zu prüfen, ob eine der Dateien (insbesondere die nicht markierten -dev) von anderen Programmen benötigt wird. Sie können dies mit apt-cache depends fileund herausfinden apt-cache rdepends file. Das folgende Beispiel ist für 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- Integration-3.0-Dev (> = 0,1,36), Librest-Dev

Auf der webupd8-Site gibt es einen Befehl, alles auf einmal zu erledigen , aber ich habe festgestellt, dass es mit der aktuellen Version von Ubuntu nicht zuverlässig zu funktionieren scheint , da es zu viel zu entfernen scheint . Ich habe es mit Pinta versucht und es wurde vorgeschlagen, die gesamte Monobibliothek zu entfernen. Es gibt Diskussionen über solche Probleme bei der Verwendung von Befehlen wie dem webupd8 im Launchpad . Seien Sie sehr vorsichtig, wenn Sie mit Lösungen experimentieren, die Sie möglicherweise finden.

Es ist eine Schande, dass es keinen autoremoveBefehl für build-depinstallierte Pakete gibt.


quelle
1
Ich habe die Eignungsmethode ausprobiert und ja, Sie haben Recht, sie entfernt zu viel ... möglicherweise aufgrund von gegenseitigen Abhängigkeiten. Eine andere Möglichkeit, die ich gefunden habe, besteht darin, die folgende Option zu übergeben (unter Verwendung des Befehls build-dep) : sudo apt-get build-dep -o APT::Get::Build-Dep-Automatic=true PACKAGE_NAME. Jetzt können sie mit entfernt werden apt-get autoremove. Dies funktioniert jedoch erst nach dem Entfernen des Hauptpakets.
Khurshid Alam
2
Wie auch immer, ich habe gerade gelernt, dass der richtige Weg dazu die Verwendung ist pbuilder. So muss sich niemand um die Installation / Deinstallation von Abhängigkeiten kümmern.
Khurshid Alam
6

Tumbleweed schreibt :

Für die Zukunft empfehle ich dringend, mk-build-deps... anstelle von aptitude build-dep. Dadurch verbleibt ein Paket ... in Ihrem System [das Abhängigkeiten aufweist] von den Build-Deps, das Sie später problemlos deinstallieren können.

mk-build-deps kann mit installiert werden sudo apt install devscripts

FalcoGer
quelle
4

Option 1:

Denken Sie daran, welche Pakete von installiert wurden, sudo apt-get build-dep PACKAGE_NAMEund entfernen Sie sie nach dem Erstellen.

Option 2:

apt-cache showsrc bietet viele Informationen zu Quellpaketen, einschließlich einer Liste von Build-Abhängigkeiten.

apt-cache showsrc PACKAGE_NAME

Zum Beispiel:

$ apt-cache showsrc pithos
Package: pithos
Binary: pithos
Version: 0.3.17~git07dcbd86a1
Section: python
Maintainer: Kevin Mehall <[email protected]>
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

Das Risiko mit dieser Option ist , dass Sie ein Paket entfernen , die für etwas Wichtige ist neben dem Aufbau PACKAGE_NAME. Lesen Sie einfach die Liste der zu entfernenden Pakete durch, bevor Sie fortfahren.

Michael Crenshaw
quelle