ビルドせずに新しいリリースからパッケージをインストールする(apt pinning)


34

これらのパッケージは、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

アップデートからソースからビルドしようとしましたが、失敗しました。私はパッケージングの専門家ではなく、非常に多くのチュートリアルとレシピがあります。

Ubuntuパッケージをバックポートするための優れた最新のチュートリアルを知っていますか?

パッケージを自分でビルドせずに他のリリースから取得するにはどうすればよいですか?

回答:


36

適切なピン留めを検討することをお勧めしますman apt_preferences

あなたがOneiricを使用していて、Preciseからそれらのパッケージを取得したいとします。

を読むmanと、関連するセクションをコピー/貼り付けし、リリース名を変更したことがわかります。

/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

その後、私は自分のコピー/etc/apt/sources.list/etc/apt/sources.list.d/precise.listかつ正確にoneiricのすべての出現を置き換えます。それから走りapt-get update、ついに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) 

何らかの理由で、pcscdとopenscがインストールされなかったのは、おそらく最初からインストールされていなかったため、アップグレードするものがなく、大したこともなかったためです。

apt-get install opensc pcscd -t precise

使用に注意してください-tpackagename/preciseまた働くだろう。

また、最新リリースから必要なパッケージがあり、それらのパッケージのみが自動的に更新されます。不要になった場合は、エントリを削除するだけ/etc/apt/preferencesで、次回実行するapt-get upgradeときに削除されます。prefsファイル全体を削除する場合は、そのprecise.listソースファイルも必ず削除してください。システムは最新のパッケージセットに更新しようとします。また、後でdist-upgradeすることにした場合、prefsファイル全体を削除する必要があります。他のsources.listを削除することをお勧めします。更新するパッケージはありません。

Aptピン留めはそれほど難しくありません。少し掘り下げて実験するだけです。n=etcのすべての動詞は、を調べることで見つかりapt-cache policyます。

これが、ベテランの管理者がapt vs yumについてり、絶賛する理由です。サービスを簡潔に更新し、クリーンで確定的で保守可能な方法でサービスを最新の状態に保つことができます。

パッケージをコンパイルする必要もありません。

この提案を続ける前に、manページ全体を読み、コンセプトに慣れ、適切なピン留めに関する他のガイドを読むことを強くお勧めします。頑張って楽しんでね!

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


これは素晴らしい答えですが、私にとってはそうではありません。ピン留めは既に知っていますが、一部のパッケージは正確な最新バージョンではなく、バグ(opensc)があります。だから私は本当に最新のソースを持ちたいです。
ジャニング

その後、実際に開発モードになります。UDDガイドを参照してください。developer.ubuntu.com/packaging/html/getting-set-up.htmlを参照してください。パッケージをビルドしたら、パッチを送信し、最終的にローカルでビルドしたものを廃止できます。PPAを使用すると役立ちますが、最初にパッケージの基本を理解する必要があります。さもなければ、ビルドの間違いを見つけ、PPAからdebを削除し、繰り返しすすぐために10分待つだけです。以前の回答協力と新しいPPAを使用して、それらのパッケージが-updatesに到達するまでベースラインよりも優先されるようにすることができます。
ペペラキ

Ubuntuパッケージングガイド:developer.ubuntu.com/packaging/html/index.html
ppetraki

この方法では、同じパッケージのamd64バージョンとi386バージョンの両方をどのように好みますか?
19:12にqed
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.