Comment puis-je supprimer toutes les dépendances de build pour un package particulier?

10

Lorsque je veux compiler quelque chose à partir des sources dans Ubuntu / Debian, j'obtiens généralement des dépendances de construction en exécutant " sudo apt-get build-dep PACKAGE_NAME" dans le terminal.

Ils sont (généralement) inutiles une fois le travail de compilation terminé.

Alors, comment supprimer toutes les dépendances de build pour un package particulier?

Khurshid Alam
la source

Réponses:

5

Pour connaître les dépendances de construction d'un programme que vous pouvez exécuter apt-cache showsrc pkgnameet qui listera, entre autres informations Build-Depends, qui sont souvent des fichiers se terminant par -dev; bien qu'il soit utile de vérifier si certains fichiers (en particulier ceux qui ne sont pas marqués -dev) sont requis par d'autres programmes. Vous pouvez le découvrir en utilisant apt-cache depends fileet apt-cache rdepends file. L'exemple suivant concerne 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- intégration-3.0-dev (> = 0.1.36), librest-dev

Il existe une commande pour tout faire en une seule fois sur le site webupd8 , mais j'ai constaté qu'elle ne semble pas fonctionner de manière fiable avec la version actuelle d'Ubuntu en ce qu'elle semble en supprimer trop. Je l'ai essayé avec Pinta et il a suggéré de supprimer toute la bibliothèque mono. Il y a une discussion de ces problèmes avec l'utilisation de commandes comme celle de webupd8 sur Launchpad . Soyez très prudent lorsque vous expérimentez avec des «solutions» que vous pourriez trouver.

Il est dommage qu'il n'y ait pas de autoremovecommande pour les build-deppackages installés.


la source
1
J'ai essayé la méthode d'aptitude et oui, vous avez raison, cela en supprime trop ... peut-être à cause des dépendances croisées. Un autre mothod je l' ai trouvé est de passer l'option suivante (en utilisant la commande build-dep): sudo apt-get build-dep -o APT::Get::Build-Dep-Automatic=true PACKAGE_NAME. Maintenant, ils peuvent être supprimés avec apt-get autoremove. Mais cela ne fonctionne qu'après avoir supprimé le package principal.
Khurshid Alam
2
Quoi qu'il en soit, je viens d'apprendre que la bonne façon de le faire est d'utiliser pbuilder. Personne n'a donc à s'inquiéter de l'installation / désinstallation des dépendances.
Khurshid Alam
6

Tumbleweed écrit :

Pour l'avenir, je recommande fortement d'utiliser mk-build-deps... au lieu de aptitude build-dep. Cela laisse un paquet ... dans votre système, [qui a des dépendances] sur les build-deps, que vous pouvez facilement désinstaller plus tard.

mk-build-deps peut être installé avec sudo apt install devscripts

FalcoGer
la source
4

Option 1:

N'oubliez pas quels packages ont été installés sudo apt-get build-dep PACKAGE_NAMEet supprimez-les après la construction.

Option 2:

apt-cache showsrc donne beaucoup d'informations sur les paquets source, y compris une liste de dépendances de construction.

apt-cache showsrc PACKAGE_NAME

Par exemple:

$ 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

Le risque avec cette option est que vous pouvez supprimer un package qui est important pour autre chose que la construction de PACKAGE_NAME. Lisez simplement la liste des packages à supprimer avant de continuer.

Michael Crenshaw
la source