55 votes

Comment installer uniquement les dépendances d'un paquet ?

Running sudo apt-get install <PACKAGE> installera le paquet, ses dépendances et tout autre paquet recommandé.

Cependant, il ne semble pas y avoir de moyen d'installer uniquement les dépendances d'un paquet et exclure le paquet lui-même.

Comment s'y prendre ?

27voto

Maciek Gryka Points 1807

Cela installera tous les paquets dans le répertoire du paquet Dépend de y Prédépendances champ :

sudo apt-get install $(apt-cache depends <PACKAGE> | grep Depends | sed "s/.*ends:\ //" | tr '\n' ' ')

En gros, on demande toutes les dépendances, on filtre les (Pré)Dépend et de formater cette sortie pour apt-get.

Les dépendances comme

Depends: pulseaudio
  pulseaudio:i386

ou des paquets virtuels comme

Depends: <java6-runtime-headless>
  default-jre-headless
  openjdk-6-jre-headless

Donc : à utiliser avec précaution - cela ne fonctionne pas dans tous les cas !

8voto

That Individual Points 289

Si le copier/coller ne vous dérange pas, simulez simplement une installation apt-get avec -s . De cette façon, vous verrez quels autres paquets seront installés et/ou mis à niveau, puis vous supprimez simplement le nom du paquet que vous ne voulez pas installer de cette liste et voilà.

sudo apt-get install -s <package>

5voto

user81208 Points 1

apt-get build-dep <package> fera l'affaire.

5voto

A.B. Points 84870

Pour lister toutes les dépendances d'un paquet donné qui n'est pas installé, vous pouvez utiliser aptitude

aptitude search '!~i?reverse-depends("^PACKAGE_NAME$")'

Pour installer les dépendances

aptitude search '!~i?reverse-depends("^PACKAGE_NAME$")' -F "%p" | xargs sudo apt-get install

Exemples

  • Lister les dépendances

    % aptitude search '!~i?reverse-depends("^mc$")'
    p    mc-data         - Midnight Commander - a powerful file manager -- data files
  • Afficher uniquement le nom du paquet

    % aptitude search '!~i?reverse-depends("^mc$")' -F "%p"
    mc-data                            
  • Installez les dépendances pour, par exemple mc

    % aptitude search '!~i?reverse-depends("^mc$")' -F "%p" | xargs sudo apt-get install     
    Reading package lists... Done
    Building dependency tree       
    Reading state information... Done
    The following NEW packages will be installed:
      mc-data
    0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
    Need to get 1.166 kB of archives.
    After this operation, 5.550 kB of additional disk space will be used.
    Get:1 http://archive.ubuntu.com/ubuntu/ wily/universe mc-data all 3:4.8.13-3 [1.166 kB]
    Fetched 1.166 kB in 0s (1.250 kB/s)
    Selecting previously unselected package mc-data.
    (Reading database ... 606748 files and directories currently installed.)
    Preparing to unpack .../mc-data_3%3a4.8.13-3_all.deb ...
    Unpacking mc-data (3:4.8.13-3) ...
    Processing triggers for doc-base (0.10.6) ...
    Processing 1 added doc-base file...
    Registering documents with scrollkeeper...
    Processing triggers for man-db (2.7.4-1) ...
    Processing triggers for hicolor-icon-theme (0.15-0ubuntu1) ...
    Setting up mc-data (3:4.8.13-3) ...

1voto

trevorjay Points 51

Vous pouvez analyser la sortie d'une simulation d'installation d'apt pour le faire, voici une fonction bash qui le fait pour vous :

apt-install-depends() {
    local pkg="$1"
    apt-get install -s "$pkg" \
      | sed -n \
        -e "/^Inst $pkg /d" \
        -e 's/^Inst \([^ ]\+\) .*$/\1/p' \
      | xargs apt-get install
}

Utilisation :

apt-install-depends mopidy

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X