Je voulais une solution similaire à apt-get --print-uris
mais malheureusement, apt-cyg ne le fait pas. Ce qui suit est une solution qui m'a permis de télécharger uniquement les paquets dont j'avais besoin, avec leurs dépendances, et de les copier sur la cible pour l'installation. Voici un bash script qui analyse la sortie de apt-cyg
en une liste d'URIs :
#!/usr/bin/bash
package=$1
depends=$( \
apt-cyg depends $package \
| perl -ne 'while ($x = /> ([^>\s]+)/g) { print "$1\n"; }' \
| sort \
| uniq)
depends=$(echo -e "$depends\n$package")
for curpkg in $depends; do
if ! grep -q "^$curpkg " /etc/setup/installed.db; then
apt-cyg show $curpkg \
| perl -ne '
if ($x = /install: ([^\s]+)/) {
print "$1\n";
}
if (/\[prev\]/) {
exit;
}'
fi
done
Ce qui précède imprimera les chemins des paquets qui ont besoin d'être téléchargés, par rapport à la racine du miroir cygwin, en omettant les paquets qui sont déjà installés. Pour les télécharger, j'ai écrit la sortie dans un fichier cygwin-packages-list
et ensuite utilisé wget :
mirror=http://cygwin.mirror.constant.com/
uris=$(for line in $(cat cygwin-packages-list); do echo "$mirror$line"; done)
wget -x $uris
Le programme d'installation peut ensuite être utilisé pour installer à partir d'un répertoire de cache local. Notez que pour que cela fonctionne, j'ai dû copier le fichier setup.ini
d'un cache de paquetage cygwin précédent vers le répertoire avec les fichiers téléchargés (sinon l'installateur ne sait pas ce qui est quoi).
2 votes
Stack Overflow est un site pour les questions de programmation et de développement. Cette question semble être hors sujet car elle ne concerne pas la programmation ou le développement. Voir Quels sont les sujets sur lesquels je peux poser des questions ici dans le centre d'aide. Peut-être Super utilisateur serait un meilleur endroit pour demander. Voir aussi Où puis-je poster des questions sur le Dev Ops ?
8 votes
@jww, Ce n'est pas du devops.