Je souhaite configurer une nouvelle machine virtuelle avec certains packages spécifiés (nom et version) fournis.
Par exemple, apache2 en version 2.2.20-1ubuntu1
avec toutes les dépendances. Même s'il existe une nouvelle version de ce paquet sur les serveurs, celle-ci doit être installée.
La solution doit fonctionner / évoluer avec plusieurs (n) "configurations". Une autre machine virtuelle peut nécessiter une version plus ancienne d’apache2.
Je connais actuellement certaines possibilités d'installer les packages exacts, mais je ne fais pas une bonne mise à l'échelle:
- Copiez
*.deb
manuellement tous les éléments requis sur chaque machine virtuelle et entrez:dpkg -i
... -> Peut fonctionner, mais il est très sujet aux erreurs. (Scripts manuels, etc.) - Créez et utilisez un nouveau référentiel Ubuntu pour chaque configuration. -> Ne fonctionne pas car j'aurais besoin de n référentiels.
- Configurez l’appareil une fois et copiez la machine virtuelle / créez un instantané. -> Ne fonctionne pas car il me faudrait stocker n machines virtuelles.
Mon problème pourrait être qualifié de gestion des correctifs, mais je ne souhaite pas mettre à jour mes packages avec la version actuelle. Mon but est d'installer d'anciens paquets.
la source
apt
"Pour vérifier quelles versions sont disponibles, vous pouvez vérifier via:
Si cela ne fonctionne pas, pensez à exécuter
sudo apt-get update
avant de mettre à jour la liste de paquets.Ensuite, copiez la version ou utilisez la syntaxe suivante:
Pour vérifier quelle version vous avez installée, lancez:
la source
=2.2\*
option comme moyen d'utiliser un caractère générique pour sélectionner une subversion disponible. C'est ce que je voulais savoir, mais je ne savais pas comment demander :)dpkg -l <packageName>
, le numéro de version est parfois tronqué. Pour éviter cela, utilisezCOLUMNS=100 dpkg -l <packageName>
N: Unable to locate package ^apache2
sudo apt-get update
premier. Assurez-vous d'avoir les bonnes sources d'Apt configurées.Je développerai les réponses précédentes avec d'autres commandes de gestion de versions pratiques de la
apt
famille. Pour voir quelles versions sont disponibles, lancezapt-cache policy
:Ensuite, comme mentionné ailleurs, installez une version spécifique avec
apt-get
:Vous pouvez maintenant voir quelle version vous avez installée en exécutant à
apt-cache policy
nouveau:Si vous ne voulez pas que les nouvelles versions soient installées sur les mises à jour, épinglez le paquet avec
apt-mark
:Supposons qu'une nouvelle version d'apache2 soit ajoutée à l'index du paquet et que votre ordinateur soit synchronisé avec
apt-get update
. Vous verrez ceci lors de votre prochaine courseapt-get upgrade
:la source
En pratique, cela n’est pas possible, car les anciennes versions ne sont pas conservées dans les archives. Par conséquent, vous ne pouvez pas l’installer à moins d’avoir une copie de l’ancienne version quelque part. Vous devriez vous demander pourquoi vous souhaitez installer une version plus ancienne en premier lieu. Sur une version stable, la raison principale pour laquelle une nouvelle version est publiée est la correction d’une faille de sécurité. Vous ne voulez pas exécuter un serveur vulnérable, n'est-ce pas?
la source
Comme l'explique psusi, les anciennes versions ne sont pas conservées dans le référentiel Ubuntu, mais apparemment, vous pouvez toujours les trouver sur le tableau de bord. Donc, vous allez à (remplacez trusty et amd64 par votre version et architecture ubuntu):
https://launchpad.net/ubuntu/trusty/amd64/apache2
et sélectionnez la version que vous désirez. Ensuite, vous téléchargez le fichier deb sous forme de fichier et l'installez avec:
Encore une fois, remplacez le nom de fichier par votre fichier. Cela devient fastidieux si vous devez déclasser beaucoup de paquets, mais c'est mieux que rien si vous êtes désespéré.
la source