Comment rétrograder des packages sur Ubuntu?

14

Update Manager conserve les packages à la dernière version, mais parfois une nouvelle version de package peut ne pas fonctionner comme prévu ou correctement. Comment rétrograder un package installé et le verrouiller sur une version spécifique pour éviter sa mise à jour? Comment puis-je le faire en utilisant l'interface graphique ou en utilisant un terminal ?

Radu Rădeanu
la source

Réponses:

17

Dans l'interface graphique - en utilisant Synaptic

L'interface simplifiée d'Ubuntu Software Center n'offre pas la possibilité de rétrograder les packages. Synaptic, une interface de gestionnaire de paquets graphiques plus avancée qu'Ubuntu incluait, offre cette option. Pour rétrograder graphiquement un package, installez d'abord l' application Synaptic :

Centre logiciel Ubuntu

Après cela, ouvrez le gestionnaire de packages Synaptic à partir du tableau de bord:

synaptis

Recherchez le package dont vous souhaitez installer une ancienne version dans Synaptic, sélectionnez-le et utilisez l' option Package > Forcer la version :

Version forcée

Sélectionnez la version que vous souhaitez installer et cliquez sur Forcer la version. Synaptic ne vous montrera que les versions disponibles dans vos référentiels:

Sélectionnez la version

Cliquez sur le bouton Appliquer pour appliquer vos modifications et installer l'ancienne version du package, en supposant que tout fonctionne correctement.

Appliquer

Après avoir rétrogradé le package, sélectionnez-le et utilisez l' option Package > Lock Version . Si vous ne le faites pas, Ubuntu essaiera de mettre à niveau le package installé la prochaine fois que vous mettrez à jour vos packages installés:

Version serrure

Dans le terminal - utilisation apt-get

Vous pouvez installer une version spécifique d'un package avec apt-getdans le terminal . Tout d'abord, déterminez les versions disponibles que vous pouvez installer avec la commande suivante (utilisez pour packagename le nom du programme que vous souhaitez rétrograder):

apt-cache showpkg [packagename]

Ensuite, exécutez la commande apt-get install et spécifiez la version du package que vous souhaitez installer (utilisez pour la version le numéro de version précédemment déterminé du programme que vous souhaitez rétrograder):

sudo apt-get install [packagename]=[version]

Une fois installé, exécutez la commande suivante pour conserver votre version installée, empêchant le gestionnaire de packages de la mettre à jour automatiquement à l'avenir:

sudo echo "[packagename] hold" | sudo dpkg --set-selections

Source : http://www.howtogeek.com/117929/how-to-downgrade-packages-on-ubuntu/

Radu Rădeanu
la source
4
si vous avez basé votre réponse sur ce site howtogeek.com/117929/how-to-downgrade-packages-on-ubuntu veuillez fournir le lien source. Je ne pense pas que cela vous dérange, mais ils ont certainement besoin du lien source approprié pour obtenir le crédit.
Luis Alvarado
Lorsque j'ai essayé de le faire, j'ai rencontré toutes sortes de problèmes avec des dépendances non satisfaites. J'ai trouvé préférable d'utiliser aptitude car cela résolvait toutes les dépendances, par exemple sudo aptitude install smbclient = 2: 4.1.6 + dfsg-1ubuntu2. Voir askubuntu.com/questions/770789/how-to-downgrade-smbclient
Lance Holland
3

Une autre possibilité:

Permet de trouver le package archivé sur http://packages.ubuntu.com/ :

Par exemple, rétrograder php5:

Chercher:

entrez la description de l'image ici

Trouver un hit exact permet de regarder la page du package pour php5:

entrez la description de l'image ici

Nous pouvons voir les différentes versions des versions d'Ubuntu ici, nous sommes à confiance:

entrez la description de l'image ici

Permet de passer à une version qui exécutait php (5.3) ... 12.04 (précis) par exemple:

entrez la description de l'image ici

téléchargez le tar.gz

entrez la description de l'image ici

Et puis extrayez le fichier tar et installez-le:

cd /path/to/download
tar -xzvf name_of_package
cd name_of_extracted_folder
./configure
make
sudo make install

Problèmes possibles que l'on pourrait rencontrer lors de l'exécution ./configure:

  • Dépendances manquantes (à installer libxm2-dev): entrez la description de l'image ici

Problèmes en cours d'exécution make:

  • des erreurs lors de la compilation pourraient inclure des indicateurs non définis correctement ou des problèmes avec le code lui-même.
  • Un tas d'ordures lors de la compilation, puis un problème dans le code?
  • Dans mon cas, j'ai dû trouver les fichiers sources / tarball à jour pour php ( http://php.net/downloads.php )
  • et réessayer l'extraction et faire
jmunsch
la source