apt - 同様のパッケージがすでにインストールされていることを確認する

apt - 同様のパッケージがすでにインストールされていることを確認する

この問題与えられたDebianパッケージはすでにインストールされていますがapt-get

たとえば、試してみると、apt-get install libncurses-devapt-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パッケージまたはエイリアスがインストールされていることを確認するスクリプトを作成するには、次のプログラムフローを検討してください。

  1. その場合は、dpkgパッケージが正しい名前でインストールされていることを確認してください。libncurses-dev
  2. 上記がtrueと評価されていない場合は、aptエイリアスではなく名前を使用して探しているパッケージを検索してください。

    $ apt-cache search libncurses-dev
    libncurses5-dev - developer's libraries for ncurses
    

apt-cache searchパッケージに「エイリアス」がある場合は、「エイリアス」を返すようです。

  1. #1がfalseと評価され、#2がエイリアスを返す場合は、パッケージのエイリアスを取得して#1を再試行してください。

パッケージのエイリアスを再確認してください。dpkgこの場合、別名でパッケージが見つからない場合(実際に置き換えられたパッケージ)、インストールしないでください。libncurses5-devdpkg

答え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インストールされていない場合、最後の項目は何も印刷しません。

関連情報