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

38

L'exécution de sudo apt-get install <PACKAGE> installe le paquet, ses dépendances et tout autre paquetage recommandé.

Toutefois, il ne semble pas possible d’installer uniquement les dépendances d’un package et d’exclure le package lui-même.

Comment pourrait-on s'y prendre?

    
posée Nathan Osman 01.11.2011 - 18:57
la source

6 réponses

21

Cela installera tous les paquets du champ Depends et PreDepends du paquet:

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

Fondamentalement, vous demandez toutes les dépendances, filtrez les (Pre) Depends et formatez cette sortie pour apt-get.

Un problème concerne les dépendances comme

Depends: pulseaudio
  pulseaudio:i386

ou des packages virtuels comme

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

Donc: utiliser avec précaution - ça ne marche pas dans tous les cas!

    
réponse donnée htorque 01.11.2011 - 19:01
la source
5

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

sudo apt-get install -s <package>

    
réponse donnée bksunday 14.11.2013 - 16:23
la source
4

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

    
réponse donnée Laudeci 19.09.2012 - 02:53
la source
4

Pour répertorier toutes les dépendances d'un paquet donné non 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

  • Afficher 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 package

    % 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) ...
    
réponse donnée A.B. 19.11.2015 - 09:22
la source
1

Vous pouvez analyser la sortie d’une simulation d’install pour faire ceci, voici une fonction bash à faire pour vous:

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

Utilisation:

apt-install-depends mopidy
    
réponse donnée trevorjay 27.06.2016 - 10:27
la source
0

Pour installer uniquement des dépendances, vous pouvez utiliser apt-cache show package | grep Depends . Cela vous donnera une liste de dépendances:

apt-cache show apache2 | grep Depends
Depends: apache2-mpm-worker (= 2.2.22-6ubuntu5.1) | apache2-mpm-prefork (= 2.2.22-6ubuntu5.1) | apache2-mpm-event (= 2.2.22-6ubuntu5.1) | apache2-mpm-itk (= 2.2.22-6ubuntu5.1), apache2.2-common (= 2.2.22-6ubuntu5.1)

alors vous pouvez décider quel paquet installer avec apt-get. Il y a aussi aptitude en mode interactif, vous cherchez le paquet, sélectionnez-le, puis installez les dépendances:

    
réponse donnée Braiam 21.11.2013 - 19:30
la source

Lire d'autres questions sur les étiquettes