Installieren Sie eine andere Version eines Pakets

9

Ich verwende einen luziden Server und habe Tomcat installiert. Die installierte Version ist 6.0.24-2ubuntu1.6.

Ist das die Version, an die ich gebunden bin? Ist es möglich, eine neuere Version zu installieren? Die von Maverick erhältliche ist 6.0.28.

Vielleicht kann ich eine Quelle hinzufügen, um meine übersichtliche Installation mit dieser Version bereitzustellen? In der Benutzeroberfläche des Paketmanagers kann ich "Version erzwingen". Ist es möglich, die Version auch über die Befehlszeilenalternative zu erzwingen?

Michael Wiles
quelle

Antworten:

6

Kurze Antwort:

Mithilfe von Pinning können Sie auswählen, welche Pakete von Maverick stammen, ihre Abhängigkeiten automatisch abrufen und über Ihren Paketmanager auf dem neuesten Stand halten. https://help.ubuntu.com/community/PinningHowto

Lange Antwort von /ubuntu//a/103338/42024 kopiert :

Sie wären viel besser dran, wenn Sie Apt Pinning erkunden würden man apt_preferences.

Nehmen wir also an, Sie sind auf Oneiric und möchten diese Pakete von Precise erhalten.

Wenn Sie den Mann lesen, werden Sie sehen, dass ich die relevanten Abschnitte kopiert / eingefügt und nur den Versionsnamen geändert habe

/ etc / apt / Einstellungen

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

Dann kopierte ich meine /etc/apt/sources.listauf /etc/apt/sources.list.d/precise.listund ersetzt alle Vorkommen von precise mit präziser. Dann lief apt-get updateund schließlich 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) 

Aus irgendeinem Grund wurden pcscd und opensc nicht installiert, wahrscheinlich weil es von Anfang an nicht installiert war, sodass es kein Upgrade gab, keine große Sache. Ich kann genau diese Version installieren, indem ich präzise als Referenz wie diese verwende.

$ apt-get install opensc pcscd -t precise

Beachten Sie die Verwendung von -t , packagename/precisewürde auch funktionieren.

und es gibt die gewünschten Pakete ab der neuesten Version, und nur diese Pakete werden ebenfalls automatisch aktualisiert. Wenn Sie sie nicht mehr möchten, löschen Sie einfach die Einträge aus /etc/apt/preferencesund beim nächsten Ausführen werden apt-get upgrade sie entfernt. Wenn Sie die gesamte Prefs-Datei entfernen, müssen Sie auch diese präzise.list-Quelldatei löschen. Unser System wird versuchen, auf die neuesten Pakete zu aktualisieren. Auch wenn Sie sich für ein späteres Dist-Upgrade entscheiden, müssen Sie die gesamte Prefs-Datei entfernen. Es ist wahrscheinlich eine gute Idee, die anderen Quellen zu entfernen. Liste weniger, die das Upgrade aufgrund der höheren Priorität findet, die es gibt Keine zu aktualisierenden Pakete.

Apt Pinning ist nicht so schwer, Sie müssen nur ein wenig graben und experimentieren. Alle Verben für n=usw. werden durch Untersuchen gefunden apt-cache policy.

Dies ist der Grund, warum erfahrene Admins von apt vs yum schwärmen und schwärmen. Sie können Services präzise aktualisieren und auf saubere, deterministische und wartbare Weise auf dem neuesten Stand halten.

Auch keine Kompilierungspakete mehr.

Ich empfehle Ihnen dringend, die gesamte Manpage zu lesen, sich mit dem Konzept vertraut zu machen und andere Anleitungen zum Pinning zu lesen, bevor Sie mit diesem Vorschlag fortfahren. Viel Glück und hab Spaß!

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

Jayen
quelle
Dies lieferte eine vollständigere Antwort für mich: askubuntu.com/questions/103320/…
François Beausoleil
2

Sie können eine Version in der Befehlszeile mit apt-get install somepackage = someversion erzwingen, aber Sie können nicht nach einer Version fragen, die nicht in den Repositorys enthalten ist, über die apt Bescheid weiß. Dies bedeutet normalerweise, dass Sie sich in der Version befinden.

Sie können versuchen, das Maverick Deb manuell vom Launchpad herunterzuladen und zu installieren. Manchmal funktioniert dies, aber manchmal hängt es von neueren Versionen verschiedener Bibliotheken ab und wird daher nicht installiert. Die andere Möglichkeit besteht darin, die neueste Quelle herunterzuladen und selbst zu kompilieren.

psusi
quelle
Danke, ich werde versuchen, es von Maverick zu bekommen ... es könnte gut funktionieren, da es keine wirklichen Abhängigkeiten hat
Michael Wiles
1

lucid hat nur 6.0.24 zur Verfügung und das wird sich wahrscheinlich nicht ändern. Es ist selten, Software wie Tomcat auf eine ältere Version zurück zu portieren.

Trotzdem können Sie den neuesten Tomcat mithilfe der Tomcat-Binärpakete ausführen. Ich benutze das.

aneeshep
quelle