Instal paket dari rilis baru tanpa bangunan (apt pinning)

34

Saya membutuhkan paket-paket ini dengan versi upstream terbaru yang di-backport untuk 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

Saya mencoba membangunnya dari sumber dengan pembaruan tetapi gagal. Saya bukan ahli dalam hal pengemasan dan ada begitu banyak tutorial dan resep di luar sana.

Apakah Anda tahu tutorial yang bagus dan terkini untuk membuat backport paket Ubuntu?

Bagaimana cara saya mendapatkan paket dari rilis lain tanpa harus membuatnya sendiri?

Janning
sumber

Jawaban:

36

Anda akan jauh lebih baik menjelajahi pinning yang tepat, lihat man apt_preferences.

Mari kita asumsikan Anda menggunakan Oneiric dan Anda ingin mendapatkan paket-paket itu dari Precise.

Jika Anda membaca, manAnda akan melihat bahwa saya menyalin / menempel bagian yang relevan dan baru saja memodifikasi nama rilis

/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

Kemudian, saya menyalin /etc/apt/sources.listke saya /etc/apt/sources.list.d/precise.listdan mengganti semua kejadian oneiric dengan tepat. Lalu berlari apt-get updatedan akhirnya 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) 

Untuk beberapa alasan, pcscd dan opensc tidak dapat diinstal, mungkin karena itu tidak diinstal untuk memulai sehingga tidak ada yang perlu ditingkatkan, tidak masalah, saya dapat menginstal versi itu menggunakan referensi yang tepat seperti ini.

apt-get install opensc pcscd -t precise

Perhatikan penggunaan -t,packagename/precise juga akan berfungsi.

dan ada paket yang Anda inginkan, dari rilis terbaru, dan hanya paket itu , mereka juga akan diperbarui secara otomatis. Jika Anda tidak menginginkannya lagi, hapus saja entri dari /etc/apt/preferencesdan saat berikutnya Anda menjalankannya apt-get upgradeakan dihapus. Jika Anda menghapus seluruh file prefs pastikan untuk menghapusnyaprecise.list file sumber tersebut. Sistem kami akan mencoba memperbarui ke paket paket terbaru. Juga jika Anda memutuskan untuk meng-upgrade-nya nanti, Anda harus menghapus seluruh file prefs dan mungkin akan menjadi ide yang baik untuk menghapus sumber-sumber lain. tidak ada paket untuk diperbarui.

Pemasangan pin tidak terlalu sulit, Anda hanya perlu menggali sedikit dan bereksperimen. Semua kata kerja untuk n=dll ditemukan dengan memeriksa apt-cache policy.

Inilah sebabnya mengapa admin berpengalaman berteriak-teriak dan rave tentang apt vs yum. Anda dapat secara singkat memperbarui layanan dan tetap memperbaruinya dengan cara yang bersih, deterministik, dan terpelihara.

Tidak ada lagi paket kompilasi.

Saya sangat menyarankan Anda membaca seluruh halaman manual dan merasa nyaman dengan konsep itu dan membaca panduan lain tentang menyematkan sebelum melanjutkan dengan proposal ini. Semoga berhasil dan selamat bersenang - senang!

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

ppetraki
sumber
ini adalah jawaban yang bagus, tetapi tidak untuk saya. Saya sudah tahu menyematkan tetapi beberapa paket bukan versi terbaru secara tepat dan beberapa memiliki bug (opensc). jadi saya benar-benar ingin memiliki sumber terbaru.
Janning
Maka Anda benar-benar dalam mode pengembangan, lihat panduan UDD. Lihat developer.ubuntu.com/packaging/html/getting-set-up.html . Setelah Anda membuat paket, Anda dapat mengirimkan tambalan dan akhirnya menghapus yang dibuat secara lokal. Menggunakan PPA agak membantu tetapi Anda benar-benar harus mendapatkan dasar-dasar pengemasan terlebih dahulu atau Anda hanya akan menunggu 10 menit untuk mengetahui bahwa Anda telah membuat kesalahan build, menghapus deb dari PPA, bilas ulangi. Anda masih dapat menggunakan jawaban co-op sebelumnya dengan PPA baru untuk memastikan paket-paket itu mendapat prioritas di atas baseline sampai mereka menemukan jalan mereka ke -perbaruan.
ppetraki
Panduan pengemasan Ubuntu: developer.ubuntu.com/packaging/html/index.html
ppetraki
Dengan metode ini bagaimana Anda lebih suka versi amd64 dan i386 dari paket yang sama?
qed