リポジトリに新しいバージョンがあるときに特定のバージョンをインストールしますか?


13

次のパッケージに依存するメタパッケージを用意しましょう

Depends: A (=2),
 B (=2),
 C (=2)

「=」に注意してください-最新バージョンではなく、これらの特定のバージョンをインストールします。

さらに:

BAに依存(> = 1)

CB(> = 1)およびA(> = 1)に依存します

リポジトリ内のA、B、Cの最新バージョンが2の場合、これは機能します。

レポsudo apt-get install my-meta-packageにバージョン3のAとバージョン3のBを入れたので、次の情報で終了することを拒否します。

The following packages have unmet dependencies:
  my-meta-package: Depends: B (= 2) but 3 is to be installed
                   Depends: A (= 2) but 3 is to be installed

AとBのバージョン2を手動でインストールすると、メタパッケージが正しくインストールされます。これは、A3またはB3に隠された依存関係がないことを強く示唆しています。メタパッケージは多くのマシンに自動的にインストールされるため、これは問題の解決策ではありません。

質問: sudo apt-get install my-meta-package installバージョン2,2,2を作成するにはどうすればよいですか?

さらに、Aのバージョン3とBのバージョン3の必要性を実際に作成する拡張情報を取得する方法はありますか?


ああ、答える前に質問全体を読んだことがありません。メタパッケージを再パッケージできますか?
int_ua

2
@int_uaメタパッケージを再パッケージ化するとどうなるかわかりません。
ティムタム

@belacqua-私はあなたと一緒にいますが、復帰や壊れた依存関係などがあるときに何が起こるかをカバーする確かな答えが必要です
-RobotHumans

メタパッケージの制御ファイルには、次のような依存パッケージの明示的なバージョンが含まれてい(a=2), (b=2)ませんか?
アンワール

回答:


11

インストールする特定のバージョンを選択し、メタパッケージのインストールと同時にそれらをすべてインストールする必要があります。

sudo apt-get install meta-package package1=2 package2=2 package3=2

同様int_uaの答えあなたはこれで逆の依存関係を見つけることができ、こう述べています。

apt-cache rdepends package

これらのパッケージの詳細(利用可能なバージョン、依存関係など)を知りたい場合は、これを使用します。

apt-cache show package

それらのインストールを完了し、システムのアップグレード中にそれらのバージョンを維持したい場合は、belacquaが提案するapt-pinningを使用する必要があります。

APTピニング

APTのピン留め機能により、管理者はAPTに、異なるリポジトリの異なるバージョンで利用可能なパッケージの特定のバージョンを選択させることができます。これにより、管理者は、パッケージがシステム上の他のパッケージと競合する可能性のあるバージョンにアップグレードされないこと、または望ましくない変更について十分にテストされていないことを確認できます。これを行うには、APTの設定ファイル(/ etc / apt / preferences)のピンを変更する必要があります。


これは正しい答えだと思います。=とパッケージ名にバージョンを付けて
LnxSlck

1
私はティメックの同僚であり、これは実際に問題を解決します。残念なことに、メタパッケージをリバースエンジニアリングして実現する必要があります。いくつかの創造的なPythonが整っています。答えてくれてありがとう。
イゴールゼヴァカ

1
時間が経ってからもっと良い解決策が現れたのだろうか?
ygrek

1

最初に依存関係のインストールを試すことができます

sudo apt-get install package=2 2はバージョンです

どのパッケージがパッケージに依存しているかを調べるには

apt-cache rdepends package


1
rdependsはバージョンに関する詳細情報を提供しませんよね?
ティムタム

2
依存関係を最初にインストールすると、メタパッケージを使用できなくなります。それは解決策ですが、私が探しているものではありません。
ティムタム

1
これが機能するためには、リポジトリが指定したバージョンの利用可能なバージョンを持っている必要があることに注意してください。
トーマス・ウォード
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.