Installa i pacchetti dalla versione più recente senza creare (apt pinning)


34

Ho bisogno di questi pacchetti con l'ultima versione upstream backportata per 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

Ho provato a costruirli dalla fonte con l'aggiornamento ma non è riuscito. Non sono un esperto di packaging e ci sono così tanti tutorial e ricette là fuori.

Conosci un tutorial valido e aggiornato per il backport dei pacchetti Ubuntu?

Come posso ottenere pacchetti da altre versioni senza doverli costruire da solo?

Risposte:


36

Sarebbe molto meglio esplorare l'esplorazione apt, vedi man apt_preferences.

Supponiamo che tu sia su Oneiric e desideri ottenere quei pacchetti da Precise.

Se leggi il messaggio man, vedrai che ho copiato / incollato le sezioni pertinenti e ho appena modificato il nome della versione

/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

Poi, ho copiato il mio /etc/apt/sources.lista /etc/apt/sources.list.d/precise.liste sostituito tutte le occorrenze di onirico con precisione. Quindi corse apt-get updatee infine 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) 

Per qualche ragione, pccd e opensc non sono stati installati, probabilmente perché non è stato installato per cominciare, quindi non c'era nulla da aggiornare, nessun grosso problema, posso installare esattamente quella versione usando preciso come riferimento come questo.

apt-get install opensc pcscd -t precise

Prendi nota dell'uso di -t, packagename/precisefunzionerebbe anche.

e ci sono i pacchetti che vuoi, dall'ultima versione, e solo quei pacchetti , verranno anch'essi aggiornati automaticamente. Se non li desideri più, elimina semplicemente le voci /etc/apt/preferencese alla successiva esecuzione apt-get upgradeverranno rimosse. Se rimuovi l'intero file prefs assicurati di eliminare anche quel precise.listfile sorgente, il nostro sistema proverà ad aggiornare all'ultima serie di pacchetti. Inoltre, se decidi di eseguire l'aggiornamento dist in seguito, dovrai rimuovere l'intero file prefs e sarebbe probabilmente una buona idea rimuovere le altre fonti. Elenca meno l'aggiornamento troverà, grazie alla priorità più alta, che ci sono nessun pacchetto da aggiornare.

Appuntare correttamente non è così difficile, devi solo scavare un po 'e sperimentare. Tutti i verbi per n=ecc. Si trovano esaminando apt-cache policy.

Questo è il motivo per cui gli amministratori esperti si lamentano di apt vs yum. È possibile aggiornare in modo conciso i servizi e mantenerli aggiornati in modo pulito, deterministico e mantenibile.

Niente più pacchetti di compilazione neanche.

Ti consiglio caldamente di leggere l'intera pagina man e di familiarizzare con il concetto e di leggere altre guide sull'appuntamento appropriato prima di continuare con questa proposta. Buona fortuna e buon divertimento!

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


questa è un'ottima risposta, ma non per me. Conosco già il pinning ma alcuni pacchetti non sono la versione più recente in modo preciso e alcuni hanno dei bug (opensc). quindi voglio davvero avere l'ultima fonte.
Janning,

Quindi sei davvero in modalità di sviluppo, vedi la guida UDD. Vedi developer.ubuntu.com/packaging/html/getting-set-up.html . Una volta creati i pacchetti, è possibile inviare le patch e infine eliminare quelle create localmente. L'utilizzo di un tipo di PPA aiuta, ma è davvero necessario prima abbattere le nozioni di base sul packaging o starai solo aspettando 10 minuti per scoprire di aver fatto un errore di build, eliminare il deb dal PPA, risciacquare ripetizione. È ancora possibile utilizzare la cooperativa di risposta precedente con un nuovo PPA per garantire che quei pacchetti abbiano la priorità sulla linea di base fino a quando non trovano la loro strada negli aggiornamenti.
ppetraki,

La guida al packaging di Ubuntu: developer.ubuntu.com/packaging/html/index.html
ppetraki,

Con questo metodo come preferisci le versioni amd64 e i386 dello stesso pacchetto?
Q
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.