Comment trouver les dépendances de construction d'un paquet?

48

J'aimerais savoir quels forfaits

sudo apt-get build-dep <package>

installerais (si j’avais déjà quelques dépendances installées, j'aimerais aussi voir celles-ci → donc exécuter ou simuler ce qui précède ne suffit pas). Ligne de commande préférée.

htorque
la source
1
Je suis confus, ne sudo apt-get build-dep <package>montre pas la liste des paquets (si le paquet a des dépendances de construction), il va installer?
Isaiah
1
Malheureusement, cela ne montre que les paquets qui ne sont pas installés.
Htorque

Réponses:

45

Pour obtenir une liste complète des dépendances, y compris les dépendances, vous pouvez utiliser:

apt-rdepends --build-depends openoffice.org

La commande peut vous rappeler d’installer d’ apt-rdependsabord.

Vous pouvez utiliser la commande suivante pour afficher uniquement ceux qui ne sont pas installés:

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

Voir apt-rdepends --helppour toutes les options.

Note : Cela va générer une liste massive .
apt-rdepends -b xterm, par exemple, génère 8773 lignes de sortie et prend son temps pour le faire.

Si vous voulez seulement voir les paquets qui sont nécessaires pour construire le paquet le plus haut, c'est-à-dire ce que je dois installer pour construire Nautilus, lancez:

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

Ceci est à peu près équivalent à answer ( The following NEW packages will be installed) de Carsten Thiel , mais le format de sortie est un peu plus agréable. En outre, il ne montre que le paquet le plus haut, alors qu'apt-get simulé montre également les paquets installés comme des dépendances de ceux-ci.

Cela montre aussi les paquets qui sont installés. Mais cela peut aussi montrer les paquetages installés par défaut. Malheureusement, aucune de ces méthodes n’est très utile lorsque vous essayez de nettoyer votre système après avoir utilisé apt-get build-dep. Autant que je sache, il n’existe pas de méthode fiable permettant de déterminer ceux qui ont été installés, à moins de consulter le fichier journal apt à /var/log/apt/history.log.

Stefano Palazzo
la source
1
Merci, la version avec --follow=DEPENDSest exactement ce que je cherchais. Vous pouvez également trouver ces dépendances de construction sur Launchpad, par exemple. pour Nautilus: launchpad.net/ubuntu/natty/+source/nautilus (défilement vers le bas).
Htorque
17

L'option -s( --simulate) affichera tout ce qui serait fait sans rien faire. Vous n'avez même pas besoin de privilèges root pour cela.

apt-get -s build-dep <package>
Carsten Thiel
la source
6
Voir mon commentaire ci-dessus - cela ne montrera pas les paquets déjà installés. Désolé de ne pas être précis dans ma question.
Htorque
Ne fonctionne pas - échoue avecE: Unable to find a source package for inkscape
anatoly techtonik
17
apt-cache showsrc <pkgname> | grep ^Build-Depends

showsrcaffiche le fichier debian / control pour un paquet source donné. Nous appelons ensuite grep pour la ou les lignes commençant par 'Build-Depends', qui contient la liste des packages nécessaires pour générer à partir des sources.

anonyme
la source
+1 si vous expliquez quoi apt-cache showsrcet quoi | grep. Encore une bonne réponse. Merci d'avoir pris le temps de le fournir.
MadMike
sudo apt-cache showsrc inkscapene fonctionne pas pour inkscapeUbuntu 18.10 - donneW: Unable to locate package inkscape N: No packages found
anatoly techtonik
@anatolytechtonik vient de tester Ubuntu 18.10 dans Docker, fonctionne pour moi. Avez-vous d' apt-get updateabord?
Stéphane Gourichon
Cela devrait être la réponse acceptée, car il fournit l'outil nécessaire et ne nécessite aucun paquet supplémentaire.
Stéphane Gourichon