Je suis souvent intéressé par les déclencheurs d'installation (postinst, postrm) ou par certaines parties de paquets (comme /usr/share
et /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 volumineux que le paquet binaire et ne reflète pas l'arborescence d'installation.
En ce moment, je télécharge les packages via http://packages.ubuntu.com/ :
[package-name]
Cela prend trop de temps pour moi et en tant que personne qui aime vraiment Shell, j'aimerais faire quelque chose comme la commande suivante ( imaginaire ):
apt-get get-deb-file [package-name]
Je ne pouvais pas trouver quelque chose comme ça dans le page de manuel d'apt-get . Le plus proche que j'ai trouvé était le commutateur --download-only
, mais cela place le paquet dans /var/cache/apt/archives
(ce qui nécessite des autorisations root) et non dans le répertoire en cours.
Vous pouvez utiliser la sous-commande download
de apt
, apt-get
ou aptitude
. Par exemple, si $ PKG est le package que vous souhaitez, l'un de ceux-ci fera:
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 approchée en utilisant apt-get
et wget
:
wget $(apt-get install --reinstall --print-uris -qq $PKG | cut -d"'" -f2)
Cependant, tous les packages nécessaires à son installation seront récupérés. Vous pourrez donc tenter de le limiter:
wget $(apt-get install --reinstall --print-uris -qq $PKG | cut -d"'" -f2 | grep "/${PKG}_")
Vous pouvez aussi mettre une ligne wget dans une fonction pour pouvoir l'utiliser comme 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: $ PKG est remplacé par $ 1 et le paramètre -c permet la poursuite des téléchargements interrompus.
Sudo apt-get -o dir::cache::archives="/path/to/folder/" -d install package
Remarque:
Vous devez créer un dossier nommé partial dans le dossier de destination.
Dans Ubuntu 14.04 (apt
version du paquet 1.0.1ubuntu2
, je crois), apt-get
inclut la commande download
pour télécharger le paquet donné en tant que .deb
dans le répertoire en cours.
Par exemple, supposons que nous voulions télécharger le gestionnaire de fichiers Ranger
name__:
$ apt-get download ranger
Résulte en:
$ ls . | grep ranger
ranger_1.6.0-1_all.deb
Si vous voulez télécharger tous les paquets deb d'une liste, vous pouvez faire ceci:
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 t'aides. ;)
Sudo apt-get install devscripts
dget [package-name]
/var/cache/apt/archives
est lisible dans le monde entier. Après apt-get -d
, extrayez-le dans votre répertoire personnel. Exécutez dpkg -e /var/cache/apt/archives/foo_version.deb foo
dans votre répertoire personnel et les fichiers de contrôle seront sauvegardés dans foo/
.