zypperはマイナーバージョンを指定せずに特定のメジャーバージョンをインストールします。

zypperはマイナーバージョンを指定せずに特定のメジャーバージョンをインストールします。

いくつかのパッケージをインストールし、いくつかの構成タスクを実行するスクリプトを作成しています。スクリプトを使用してパッケージの特定のメジャーバージョンをインストールしたいのですが、パッケージのマイナーバージョンが何であるかは関係ありません。

さらに重要なのは、1.yzまたは3.yz(または他のメジャーバージョン番号)ではなく、最新の2.yzバージョンのパッケージをインストールしたいということです。

私は試しました(成功しませんでした)

  • zypper install 'mypackage=2'
  • zypper install 'mypackage>1<3'
  • zypper install 'mypackage>1' 'mypackage<3'
  • zypper install 'mypackage>=2.0.0' 'mypackage<3.0.0'

zypperが文句を言うので、最後は有望に見えます。

パッケージ名に「mypackage> = 2.0.0」がありません。試す能力。 'mypackage> = 2.0.0'のプロバイダが見つかりません。

ただし、そのメッセージの後も指定された2番目のパッケージバージョンを満たしているため、mypackage-1.5.0のインストールを続行します。

ベストアンサー1

より良いもの

最初はここでSailorCireの答えを試して、改善されたバージョンを考えました。

zypper search -t package -x -s PACKAGE | grep " MIN_NUM" | cut -d '|' -f 4 | tr -d '[:space:]zypper installzypper install PACKAGE、バックティックで囲まれた上記のコマンドを実行して入力できます。

たとえば、次のようにインストールされますphp7-pear 1.*

zypper -n in --details php7-pear-`zypper search -t package -x -s php7-pear | grep " 1." | cut -d '|' -f 4 | tr -d '[:space:]'`

最高

しかし、より良い解決策を見つけました。zypper addlockこのように、特定のバージョンをターゲットにする代わりに、バージョン制限核を使用しないバージョンを除外できます。

したがって、OPが望むのは実際には次のようになります。

zypper addlock "mypackage < 2"
zypper addlock "mypackage >= 3"

これにより、mypackage バージョン <2 または >=3 はインストールされません。

おすすめ記事