BashでDebianにパッケージがあるかどうかを確認する方法

BashでDebianにパッケージがあるかどうかを確認する方法

MySQL サーバーをインストールするインストール bash スクリプトを作成したいと思います。

Linux Mintでは、次のコードに従いました。

apt-get -y --force-yes install mysql-server-5.6

しかし、新しいDebian 8をインストールしましたが、インストールされませんでした。mysql-server代わりに。mariadb

パッケージが存在するかどうかを確認するには?

dpkg -sはパッケージがインストールされたかどうかを知ることができることを知っています。

ベストアンサー1

(次はUbuntuからのものですが、同じ技術がDebianにも当てはまります。)

$ apt-cache show screen
Package: screen
Priority: optional
Section: misc
Installed-Size: 950
Maintainer: Ubuntu Developers <[email protected]>
Original-Maintainer: Axel Beckert <[email protected]>
Architecture: amd64
Version: 4.1.0~20120320gitdb59704-9
Depends: libc6 (>= 2.15), libpam0g (>= 0.99.7.1), libtinfo5
Suggests: iselect (>= 1.4.0-1) | screenie | byobu
Filename: pool/main/s/screen/screen_4.1.0~20120320gitdb59704-9_amd64.deb
Size: 645730
...

パッケージがある場合、情報が表示されます。それ以外の場合は、次の内容が表示されます。

$ apt-cache show foobar
N: Unable to locate package foobar
E: No packages found

また、一致するパッケージがない場合、終了コードはapt-cacheゼロではありません。

追加情報:apt-cache show packageダミーパッケージ(存在しませんが他のパッケージで参照)を使用している場合は、次のようになります。

N: Can't select versions from package 'package' as it is purely virtual
N: No packages found

これはexit codeゼロです。 (少し誤解を招くようです。)

おすすめ記事