web-dev-qa-db-fra.com

Installer une version différente d'un paquet

J'exécute le serveur lucide et ai installé Tomcat. La version installée est 6.0.24-2ubuntu1.6.

Est-ce la version à laquelle je suis lié? Est-il possible d'installer une version plus récente? Celui disponible chez maverick est 6.0.28.

Peut-être que je peux ajouter une source pour fournir mon installation lucide avec cette version? Dans l'interface utilisateur du gestionnaire de paquets, je peux "forcer la version". Est-il possible de forcer la version à partir d'une alternative en ligne de commande également?

9
Michael Wiles

Réponse courte:

En utilisant pinning, vous pouvez sélectionner les paquets qui proviennent de maverick, obtenir automatiquement leurs dépendances et les mettre à jour via votre gestionnaire de paquets. https://help.ubuntu.com/community/PinningHowto

Réponse longue copiée de https://askubuntu.com/a/103338/42024 :

Vous feriez bien mieux d’explorer l’épinglage, voir man apt_preferences.

Supposons donc que vous êtes sur Oneiric et que vous souhaitez obtenir ces packages auprès de Precise.

Si vous lisez l'homme, vous verrez que je copie/colle les sections pertinentes et que je viens de modifier le nom de la version.

/etc/apt/preferences

Package: libccid
Pin: release n=precise
Pin-Priority: 990

Package: libpcsclite*
Pin: release n=precise
Pin-Priority: 990

Package: libusb*
Pin: release n=precise
Pin-Priority: 990

Package: opensc
Pin: release n=precise
Pin-Priority: 990

Package: pcscd
Pin: release n=precise
Pin-Priority: 990


Explanation: Uninstall or do not install any Ubuntu-originated
Explanation: package versions other than those in the oneiric release
Package: *
Pin: release n=oneiric
Pin-Priority: 900

Package: *
Pin: release o=Ubuntu
Pin-Priority: -10

Ensuite, j'ai copié mon /etc/apt/sources.list dans /etc/apt/sources.list.d/precise.list et remplacé toutes les occurrences de Oneiric par des caractères précis. Puis couru apt-get update et enfin apt-get upgrade.

# apt-get upgrade
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages will be upgraded:
  libpcsclite1 libusb-0.1-4 libusb-1.0-0 libusbmuxd1
4 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 86.0 kB of archives.
After this operation, 88.1 kB disk space will be freed.
Do you want to continue [Y/n]? y
Do you want to continue [Y/n]? y
Get:1 http://us.archive.ubuntu.com/ubuntu/ precise/main libusb-0.1-4 AMD64 2:0.1.12-20 [17.6 kB]
Get:2 http://us.archive.ubuntu.com/ubuntu/ precise/main libusb-1.0-0 AMD64 2:1.0.9~rc3-2 [30.9 kB]
Get:3 http://us.archive.ubuntu.com/ubuntu/ precise/main libpcsclite1 AMD64 1.7.4-2ubuntu1 [23.5 kB]
Get:4 http://us.archive.ubuntu.com/ubuntu/ precise/main libusbmuxd1 AMD64 1.0.7-2 [14.1 kB]
Fetched 86.0 kB in 0s (124 kB/s) 

Pour une raison quelconque, pcscd et opensc ne se sont pas installés, probablement parce qu’ils n’avaient pas été installés au début, il n’y avait donc rien à mettre à niveau, ce n’était pas grave, je peux installer exactement cette version en utilisant la référence précise comme celle-ci.

$ apt-get install opensc pcscd -t precise

Prenez note de l'utilisation de - t , packagename/precise fonctionnerait également.

et il y a les paquets que vous voulez, de la dernière version, et seulement ces paquets , ils seront également mis à jour automatiquement. Si vous n'en voulez plus, supprimez simplement les entrées de /etc/apt/preferences et la prochaine fois que vous exécuterez apt-get upgrade elles seront supprimées. Si vous supprimez l'intégralité du fichier de préférences, veillez à supprimer ce fichier de sources precise.list. Notre système essaiera de mettre à jour le dernier ensemble de packages. De même, si vous décidez de procéder à une mise à niveau ultérieure, vous devrez supprimer le fichier de préférences dans son intégralité. Ce serait probablement une bonne idée de supprimer les autres sources.list moins la mise à niveau trouvera, grâce à la priorité plus élevée, qu'il y a pas de paquets à mettre à jour.

Bien épingler n'est pas si difficile, vous avez juste besoin de creuser un peu et d'expérimenter. Tous les verbes pour n= etc sont trouvés en examinant apt-cache policy.

C'est pourquoi les admins chevronnés s'emparent de propos d'apt vs yum. Vous pouvez mettre à jour vos services de manière concise et les maintenir à jour de manière propre, déterministe et maintenable.

Pas plus de paquets de compilation non plus.

Je vous suggère fortement de lire l'intégralité de la page de manuel et de vous familiariser avec le concept, ainsi que de lire d'autres guides sur l'ajout d'orthographe avant de poursuivre avec cette proposition. Bonne chance et amusez-vous bien!

https://help.ubuntu.com/community/PinningHowto

6
Jayen

Vous pouvez forcer une version sur la ligne de commande avec apt-get install somepackage = une variation, mais vous ne pouvez pas demander une version qui ne se trouve pas dans les référentiels dont apt est au courant, ce qui signifie généralement la version que vous utilisez.

Vous pouvez essayer de télécharger manuellement le fichier maverick deb à partir du tableau de bord et de l’installer. Parfois, cela fonctionne, mais parfois, cela dépend des versions les plus récentes de diverses bibliothèques et ne s’installe donc pas. L'autre option consiste à télécharger la dernière source et à la compiler vous-même.

2
psusi

lucid ne dispose que de 6.0.24 et il est peu probable que cela change. Il est rare que des logiciels tels que Tomcat soient rétroportés dans une version plus ancienne.

Mais vous pouvez toujours exécuter la dernière version de Tomcat à l'aide des packages binaires Tomcat. Je l'utilise.

1
aneeshep