Installer une version différente d'un package

9

J'exécute un serveur lucide et j'ai installé tomcat. La version qu'il a 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 puis-je 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 également possible de forcer la version à partir d'une alternative en ligne de commande?

Michael Wiles
la source

Réponses:

6

Réponse courte:

À l'aide de l'épinglage, vous pouvez sélectionner les packages provenant de maverick, obtenir automatiquement leurs dépendances et les tenir à jour via votre gestionnaire de packages. https://help.ubuntu.com/community/PinningHowto

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

Vous feriez beaucoup mieux d’explorer l’épinglage, voyez man apt_preferences.

Supposons donc que vous soyez sur Oneiric et que vous souhaitiez obtenir ces packages auprès de Precise.

Si vous lisez l'homme, vous verrez que j'ai copié / collé 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

Puis, je copiais mon /etc/apt/sources.listà /etc/apt/sources.list.d/precise.listet remplacé toutes les occurrences de maverick avec précision. Puis couru apt-get updateet 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 n'ont pas été installés, probablement parce qu'il n'a pas été installé au départ, donc il n'y avait rien à mettre à niveau, ce n'est pas grave, je peux installer exactement cette version en utilisant précise comme référence comme celle-ci.

$ apt-get install opensc pcscd -t precise

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

et il y a les packages que vous voulez, de la dernière version, et seulement ces packages , ils seront également mis à jour automatiquement. Si vous ne les voulez plus, supprimez simplement les entrées de /etc/apt/preferenceset la prochaine fois que vous les exécuterez, apt-get upgrade elles seront supprimées. Si vous supprimez l'intégralité du fichier prefs, assurez-vous de supprimer également ce fichier source precise.list, notre système essaiera de mettre à jour vers le dernier ensemble de packages. De plus, si vous décidez d'effectuer une mise à niveau dist plus tard, vous devrez supprimer l'intégralité du fichier prefs et ce serait probablement une bonne idée de supprimer les autres sources. aucun paquet à mettre à jour.

L'épinglage d'Apt n'est pas si difficile, il vous suffit 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 administrateurs chevronnés se déchaînent et s'enthousiasment pour apt vs yum. Vous pouvez mettre à jour les services de manière concise et les maintenir à jour de manière propre, déterministe et maintenable.

Plus de packages 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 et de lire d'autres guides sur l'épinglage apt avant de continuer avec cette proposition. Bonne chance et amusez-vous bien!

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

Jayen
la source
Cela m'a fourni une réponse plus complète: askubuntu.com/questions/103320/…
François Beausoleil
2

Vous pouvez forcer une version sur la ligne de commande avec apt-get install somepackage = someversion, mais vous ne pouvez pas demander une version qui ne se trouve pas dans les référentiels qu'apt connaît, ce qui signifie généralement la version sur laquelle vous vous trouvez.

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

psusi
la source
merci, je vais essayer de l'obtenir de maverick ... cela pourrait bien fonctionner car il n'a pas vraiment de dépendances
Michael Wiles
1

lucid ne dispose que de 6.0.24 et il est peu probable que cela change. Il est rare de rétroporter un logiciel comme tomcat vers une version plus ancienne.

Mais vous pouvez toujours exécuter le dernier tomcat en utilisant les packages binaires tomcat. J'utilise ça.

aneeshep
la source