パッケージが欠落している場合にエラーを生成するYumオプションはありますか?

パッケージが欠落している場合にエラーを生成するYumオプションはありますか?

私はローカルyumリポジトリセットを使用しており、これらのリポジトリからパッケージセットをインストールしたいと思います。コマンドラインに特定のパッケージが存在しない場合、Yumはそのパッケージが見つからないと印刷し、続行することを確認しました。

このようなことが起こったら、Yumにやめるように言うことができますか?私のリポジトリとパッケージを提供し、問題があるかどうかを知らせるために使用できる他のYumユーティリティはありますか?

yum --disablerepo=* --enablerepo=myrepo --nogpgcheck \
   --installroot=/var/some/place/test install \
   abasdfasfeafseasfeasef bash coreutils utils-linux

Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
No package **abasdfasfeafseasfeasef** available.
No package **utils-linux** available.

<snip>

Complete!

私は別のスクリプトでYumを呼び出していますが、私がインストールしたパッケージが次のようなものかどうかはわかりません。本物インストールする。

答え1

yumの最新バージョン(yum-3.4.3-133.el7+、チケット)は、このユースケースに役立つ2つのオプションを提供します。

インストール時に欠落している名前をスキップするFalseに設定すると、指定された名前(パッケージ、グループ、rpmファイル)のいずれかが見つからない場合、「yum install」は失敗します。ブール(1、0、真、偽、はい、いいえ)。デフォルトはTrueです。

更新時に不足している名前をスキップするFalseに設定すると、指定された名前(パッケージ、グループ、rpmファイル)のいずれかが見つからない場合、「yum update」は失敗します。指定された名前が使用可能であるがインストールされていないパッケージの名前であっても失敗します。ブール(1、0、真、偽、はい、いいえ)。デフォルトはTrueです。

源泉:マニュアルページ

使用法:

yum --setopt=skip_missing_names_on_install=False <commands-here>

答え2

yumの代わりにdnfを試してください。以前のようにパッケージが利用できない場合は失敗します。 CentOSでは、以下からインストールできます。

yum -y install epel-release && \
yum -y install dnf

その後、欠落しているパッケージでエラーが発生します。

dnf -y install foobar
Error: no package matched: foobar

答え3

yumについてはわかりませんがrpm -q my_package ...。パッケージが見つからない場合はエラー状態で終了します。

$ rpm -q abasdfasfeafseasfeasef bash coreutils utils-linux
package abasdfasfeafseasfeasef is not installed
bash-4.1.2-9.el6_2.x86_64
coreutils-8.4-19.el6.x86_64
package utils-linux is not installed
$ echo $?
1
$ rpm -q bash
bash-4.1.2-9.el6_2.x86_64
$ echo $?
0

関連情報