私はローカル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