Installer les paquets de la nouvelle version sans construire (apt pinning)

34

J'ai besoin de ces paquets avec la dernière version en amont rétroportée pour 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

J'ai essayé de les construire à partir du source avec update mais cela a échoué. Je ne suis pas un expert en conditionnement et il y a tellement de tutoriels et de recettes sur le marché.

Connaissez-vous un bon tutoriel à jour sur la rétroportation des paquets Ubuntu?

Comment obtenir des packages d'autres versions sans avoir à les construire moi-même?

Janning
la source

Réponses:

36

Vous feriez bien mieux d’explorer d’épingler, vous voyez man apt_preferences.

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

Si vous lisez le, manvous 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à /etc/apt/sources.list.d/precise.listet remplacé toutes les occurrences de oniric avec précise. Puis couru apt-get updateet finalement 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) 

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/precisefonctionnerait é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 ne les voulez plus, supprimez simplement les entrées /etc/apt/preferenceset apt-get upgradeelles seront supprimées lors de votre prochain lancement . Si vous supprimez l'intégralité du fichier prefs, assurez-vous de supprimer ce precise.listfichier source. 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. 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’exaltent à propos d’apt vs yum. Vous pouvez mettre à jour de manière concise des services 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

Ppetraki
la source
C'est une excellente réponse, mais pas pour moi. Je sais déjà épingler mais certains paquets ne sont pas la dernière version précise et certains ont des bogues (opensc). donc je veux vraiment avoir la dernière source.
Janning
Ensuite, vous êtes vraiment en mode développement, voir le guide UDD. Voir developer.ubuntu.com/packaging/html/getting-set-up.html . Une fois que vous avez construit les paquetages, vous pouvez soumettre les correctifs et éventuellement supprimer ceux qui ont été construits localement. Utiliser un PPA aide un peu, mais vous devez vraiment obtenir les bases de l'emballage en premier ou vous allez simplement attendre 10 minutes pour découvrir que vous avez commis une erreur de compilation, supprimer le deb du PPA, répéter le rinçage. Vous pouvez toujours utiliser la coopération de réponse précédente avec un nouveau PPA pour vous assurer que ces packages ont la priorité sur la référence jusqu'à ce qu'ils trouvent leur chemin dans les mises à jour.
Ppetraki
Le guide de packaging Ubuntu: developer.ubuntu.com/packaging/html/index.html
ppetraki
Avec cette méthode, comment préférez-vous les versions amd64 et i386 du même package?
Qed