Je dois utiliser apt-get download
pour récupérer une version spécifique d'un .deb
fichier, mais pas nécessairement la version exacte. .deb
les dépendances sont autorisées à utiliser des expressions telles que >=0.3.0
et je voudrais apt-get download
récupérer la même version que celle qui serait téléchargée à l'aide d'une telle dépendance.
Pour résumer, ce que je veux travailler est la suivante:
$ apt-get download package='>=0.3.0'
Une idée de comment obtenir cette fonctionnalité?
Réponses:
Vous pouvez le faire en découvrant d'abord quelle version est la version la plus récente qui est également supérieure ou égale à la version minimale souhaitée. Ensuite, vous téléchargez exactement cette version en utilisant
apt-get download
. Voici un script qui fait ça (c'est un peu moche, mais vous avez l'idée):Vous devrez ajouter une vérification des erreurs au cas où le paquet n'existe pas, etc. mais cela contient la solution principale. En outre, j'ai supposé ici que vous vouliez le dernier package disponible qui soit au moins une certaine version. Si vous souhaitez plutôt le plus ancien package disponible qui est au moins une certaine version, vous devez ajuster le script pour arrêter la recherche une fois qu'il a trouvé quelque chose qui est au moins la version souhaitée.
la source
Puisque vous voulez exactement ce
apt-get install
que vous obtiendriez, il pourrait être utile de l'exécuterapt-get install
en «mode téléchargement uniquement» à l'aide d'un répertoire d'archives personnalisé:Comment changer le répertoire des archives? Il s'agit d'une option de configuration:
Ceux-ci peuvent être modifiés temporairement avec le
--option
paramètre:Résumer:
Cette commande va télécharger (et seulement télécharger, d' installer) les pertinents
.deb
fichiers pour<package>
à/some/cache/dir
. Le répertoire contiendra les.deb
fichiers du paquet, ses dépendances, un fichier de verrouillage et un répertoire 'partiel' (qui devrait être vide). Filtrer le.deb
fichier exact dont vous avez besoin devrait être trivial.la source
apt-get install
nécessite un accès superutilisateur.apt-get download
vous permet également de définir la version cible. Cela n'aiderait-il pas?Commentaire à # 1 (ne peut pas utiliser de commentaires) - l'ajout de paramètre
--print-uris
àapt-get install
ne nécessite pas de droits root (mais vous devez le télécharger lui-même - mieux avec wget -i FILE_LIST).la source
Sans les privilèges SU, vous pouvez toujours exécuter apt-cache et combiner avec le filtrage pour obtenir ces informations. Utilisez quelque chose comme:
Sur Debian 5:
Le 6, vous pouvez utiliser:
Apt-cache semble avoir changé le comportement dans l'ordre de la liste entre 5 et 6 de sorte que sur 6, la plus récente arrive en dernier.
Une mise en garde est que si vous utilisez cette sortie comme vous le dites "pour récupérer la même version que celle qui serait téléchargée en utilisant une telle dépendance", la version du package disponible peut changer si vous exécutez apt-get update (avec su privs bien sûr), ou si celui-ci a été configuré pour s'exécuter automatiquement et se produit entre le moment où vous avez rassemblé la version et le moment où vous exécutez le script qui installe des choses en attendant que ce soit la version.
la source