この問題与えられたDebianパッケージはすでにインストールされていますがapt-get
。
たとえば、試してみると、apt-get install libncurses-dev
apt-getは次のように応答します。
Note, selecting 'libncurses5-dev' instead of 'libncurses-dev'
その後、パッケージ(libncurses5-dev
)をインストールします。これは私に適しています。
しかし、パッケージがすでにインストールされていることを検出するスクリプトを書くにはどうすればよいですか?
dpkg -s libncurses-dev
応答はパッケージがインストールされていないと言いますが、これは実際にインストールされているlibncurses5-dev
ため正確です。しかし、私のスクリプトはそれを検出したいと思っています。この場合、それ以上インストールする必要はありませんlibncurses-dev
。
apt-get
特定のパッケージが存在することを確認するオプションが見つかりません。またはそのプロバイダの1つlibncurses-dev
すでにインストールされているので、私のスクリプトもチェックインされますlibncurses5-dev
。
答え1
libncurses-dev
パッケージまたはエイリアスがインストールされていることを確認するスクリプトを作成するには、次のプログラムフローを検討してください。
- その場合は、
dpkg
パッケージが正しい名前でインストールされていることを確認してください。libncurses-dev
上記がtrueと評価されていない場合は、
apt
エイリアスではなく名前を使用して探しているパッケージを検索してください。$ apt-cache search libncurses-dev libncurses5-dev - developer's libraries for ncurses
apt-cache search
パッケージに「エイリアス」がある場合は、「エイリアス」を返すようです。
- #1がfalseと評価され、#2がエイリアスを返す場合は、パッケージのエイリアスを取得して#1を再試行してください。
パッケージのエイリアスを再確認してください。dpkg
この場合、別名でパッケージが見つからない場合(実際に置き換えられたパッケージ)、インストールしないでください。libncurses5-dev
dpkg
答え2
これは職業だと思います。資格検索。
$ aptitude -F %p search '~Plibncurses-dev'
libncurses5-dev
libncurses5-dev:i386
$ aptitude -F %p search '~Plibncurses-dev ~rnative'
libncurses5-dev
$ aptitude -F %p search '~Plibncurses-dev ~rnative ~i'
libncurses5-dev
libncurses5-dev
インストールされていない場合、最後の項目は何も印刷しません。