web-dev-qa-db-ja.com

別のバージョンのパッケージをインストールする

Lucidサーバーを実行していて、Tomcatをインストールしました。インストールしたバージョンは6.0.24-2ubuntu1.6です。

これは私が関連付けられているバージョンですか?より新しいバージョンをインストールすることは可能ですか? maverickから入手できるものは6.0.28です。

このバージョンで明快なインストールを提供するソースを追加できますか?パッケージマネージャーのユーザーインターフェイスでは、「バージョンを強制する」ことができます。コマンドラインの代替からバージョンを強制することも可能ですか?

9
Michael Wiles

簡潔な答え:

ピン留めを使用すると、maverickからのパッケージを選択し、自動的に依存関係を取得し、パッケージマネージャーを通じて最新の状態に保つことができます。 https://help.ubuntu.com/community/PinningHowto

https://askubuntu.com/a/103338/42024 からコピーされた長い回答

適切なピン留めを検討する方がはるかに良いでしょう。man apt_preferencesを参照してください。

あなたがOneiricにいて、Preciseからそれらのパッケージを取得したいと仮定しましょう。

あなたが男を読むと、関連するセクションをコピー/ペーストし、リリース名を変更しただけであることがわかります

/ 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を実行しました。

# 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
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

-tの使用に注意してください。packagename/preciseも機能します。

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

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

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

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

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

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

6
Jayen

Apt-get install somepackage = someversionを使用してコマンドラインでバージョンを強制することはできますが、aptが認識しているリポジトリにないバージョンを要求することはできません。これは通常、リリースを意味します。

ランチパッドからmaverick debを手動でダウンロードしてインストールしてみてください。これは動作する場合もありますが、場合によってはさまざまなライブラリの新しいバージョンに依存するため、インストールされません。もう1つのオプションは、最新のソースをダウンロードして自分でコンパイルすることです。

2
psusi

lucidには6.0.24しか使用できず、変更されることはほとんどありません。 Tomcatのようなソフトウェアを古いリリースにバックポートすることはまれです。

ただし、Tomcatバイナリパッケージを使用すると、最新のTomcatを実行できます。私はそれを使用しています。

1
aneeshep