59 votes

Existe-t-il une commande apt pour télécharger un fichier deb depuis les dépôts dans le répertoire courant ?

Je suis souvent intéressé par les déclencheurs d'installation (postinst, postrm) ou certaines parties de paquets (comme /usr/share y /etc ). Actuellement, j'exécute la commande suivante pour récupérer le code source :

apt-get source [package-name]

L'inconvénient est que ce fichier est souvent beaucoup plus gros que le paquet binaire et ne reflète pas l'arbre d'installation.

Pour l'instant, je télécharge les paquets par l'intermédiaire de http://packages.ubuntu.com/ :

  1. Recherche de [package-name]
  2. Sélectionnez le paquet
  3. Cliquez sur amd64/i386 pour le téléchargement.
  4. Télécharger le fichier actuel

Cela prend trop de temps pour moi et en tant que personne qui aime vraiment le Shell, j'aimerais faire quelque chose comme le suivant ( imaginaire ) :

apt-get get-deb-file [package-name]

Je n'ai pas pu trouver quelque chose comme ça dans le Page de manuel apt-get . Le plus proche que j'ai trouvé est le --download-only mais cela place le paquet dans /var/cache/apt/archives (qui nécessite les droits de root) et non dans le répertoire courant.

83voto

Brian Childress Points 437

Vous pouvez utiliser le download sous-commande de apt , apt-get o aptitude . Par exemple, si $PKG est le paquet que vous voulez, n'importe lequel de ceux-ci fera l'affaire :

apt-get download $PKG
apt download $PKG
aptitude download $PKG

Cela ne nécessite pas de privilèges root. La même chose peut aussi être approximée en utilisant apt-get y wget :

wget $(apt-get install --reinstall --print-uris -qq $PKG | cut -d"'" -f2)

Cependant, cela récupérera tous les paquets nécessaires à l'installation du paquet, vous pouvez donc essayer de le limiter à la place :

wget $(apt-get install --reinstall --print-uris -qq $PKG | cut -d"'" -f2 | grep "/${PKG}_")

Vous pouvez également mettre une ligne wget dans une fonction, pour pouvoir l'utiliser comme une commande apt-download avec le nom du paquet comme paramètre :

function apt-download { wget -c $(apt-get install --reinstall --print-uris -qq $1 | cut -d"'" -f2); }

Notez les modifications : Le $PKG est remplacé par $1 et le paramètre -c permet de poursuivre les téléchargements interrompus.

9voto

mount.cifs Points 1310
sudo apt-get -o dir::cache::archives="/path/to/folder/" -d install package

Note :

Vous devez créer un dossier nommé partiel dans le dossier de destination.

5voto

Dans Ubuntu 14.04 ( apt version du paquet 1.0.1ubuntu2 je crois), apt-get comprend le download pour télécharger le paquet donné en tant que .deb dans le répertoire actuel.

Par exemple, supposons que nous voulons télécharger le gestionnaire de fichier Ranger :

$ apt-get download ranger

Résultats dans :

$ ls . | grep ranger
ranger_1.6.0-1_all.deb

3voto

Jayme Tosi Neto Points 161

Si vous voulez télécharger tous les paquets deb d'une liste, vous pouvez le faire :

cat path/to/text/file.txt | xargs apt-get install --reinstall --print-uris -qq $PKG | cut -d"'" -f2 | xargs wget

Il suffit de mettre un nom de paquet par ligne. Comme dans un fichier requirements.txt. Par exemple, avec un contenu comme celui-ci :

apache2-mpm-event
curl
dmidecode
ethtool
libapache2-mod-wsgi
libapache2-mod-python

J'espère que cela vous aidera ;)

2voto

Jeff Atwood Points 8468

sudo apt-get install devscripts

dget [package-name]

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