Installiere Pakete von neueren Releases ohne zu bauen (apt pinning)

34

Ich brauche diese Pakete mit der neuesten Upstream-Version für Ubuntu / Natty

  • libccid_1.4.5-0ubuntu1_amd64.deb
  • libpcsclite1_1.8.1-0ubuntu1_amd64.deb
  • libpcsclite-dev_1.8.1-0ubuntu1_amd64.deb
  • libusb-1.0-0_1.0.9-0ubuntu1_amd64.deb
  • libusb-1.0-0-dev_1.0.9-0ubuntu1_amd64.deb
  • opensc_0.12.2-1ubuntu1ppa1 ~ natty1_amd64.deb
  • pcscd_1.8.1-0ubuntu1_amd64.deb pcsc-tools_1.4.18-0ubuntu1_amd64.deb

Ich habe versucht, sie mit update aus dem Quellcode zu erstellen, aber es ist fehlgeschlagen. Ich bin kein Experte für Verpackung und es gibt so viele Tutorials und Rezepte.

Kennen Sie ein gutes und aktuelles Tutorial zum Backportieren von Ubuntu-Paketen?

Wie bekomme ich Pakete aus anderen Releases, ohne sie selbst erstellen zu müssen?

Janning
quelle

Antworten:

36

Sie sind viel besser dran, wenn Sie sich mit dem richtigen Anheften befassen man apt_preferences.

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

Wenn Sie das lesen, werden manSie sehen, dass ich die relevanten Abschnitte kopiert / eingefügt und nur den Release-Namen geändert habe

/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

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 endlich apt-get upgrade.

$ sudo 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
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 anfangs nicht installiert war, also gab es nichts zu aktualisieren, 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 aus der neuesten Version und nur diese Pakete , sie werden auch automatisch aktualisiert. Wenn Sie sie nicht mehr möchten, löschen Sie einfach die Einträge aus /etc/apt/preferencesund beim nächsten Start werden apt-get upgradesie entfernt. Wenn Sie die gesamte Prefs-Datei entfernen, müssen Sie sicherstellen, dass auch diese Quelldatei gelöscht wird. precise.listIhr 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, und es wäre wahrscheinlich eine gute Idee, die andere sources.list zu entfernen, wenn das Upgrade aufgrund der höheren Priorität keine findet Keine zu aktualisierenden Pakete.

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

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

Keine weiteren Kompilierungspakete.

Ich empfehle dringend, dass Sie die gesamte Manpage lesen, sich mit dem Konzept vertraut machen und andere Leitfäden zum Thema Apt Pinning lesen, bevor Sie mit diesem Vorschlag fortfahren. Viel Glück und hab Spaß!

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

ppetraki
quelle
Das ist eine großartige Antwort, aber nicht für mich. Ich kenne das Pinning bereits, aber einige Pakete sind nicht in der neuesten Version und einige haben Fehler (opensc). Also möchte ich wirklich die neueste Quelle haben.
Janning
Dann bist du wirklich im Entwicklungsmodus, siehe UDD-Anleitung. Siehe developer.ubuntu.com/packaging/html/getting-set-up.html . Sobald Sie die Pakete erstellt haben, können Sie die Patches einreichen und schließlich Ihre lokal erstellten entfernen. Die Verwendung eines PPA hilft ein bisschen, aber Sie müssen wirklich zuerst die Grundlagen der Verpackung durcharbeiten, oder Sie warten nur 10 Minuten, um herauszufinden, dass Sie einen Fehler beim Erstellen gemacht haben. Sie können die vorherige Antwortkooperation weiterhin mit einer neuen PPA verwenden, um sicherzustellen, dass diese Pakete Vorrang vor der Baseline haben, bis sie in -updates eingehen.
ppetraki
Der Ubuntu-
Paketleitfaden
Wie bevorzugen Sie bei dieser Methode sowohl die amd64- als auch die i386-Version desselben Pakets?
Qed