4

私はシェルスクリプトの完全な初心者です。私が欲しいのは、ユーザーの許可なしにそれらをインストールしない場合に、現在インストールされているライブラリ/パッケージのリストを決定するシェルスクリプトです

私が欲しいのは、ライブラリ/パッケージが現在システムにインストールされているかどうかを判断することです

aptitude searchコマンドを認識していますが、より良い解決策を探しています

たとえば、(シェル スクリプトで) readline ライブラリ/パッケージのチェックを定義しています (作成したい) シェル スクリプト内から、readline パッケージが現在インストールされているかどうかを確認するにはどうすればよいですか。

どんなアイデアや提案も確かに役立ちます

4

4 に答える 4

9

私が欲しいのは、ライブラリ/パッケージが現在システムにインストールされているかどうかを判断することです

dpkg -sroot 権限は不要で、パッケージのステータスの詳細が表示されます。

シェルスクリプトの例:

#!/bin/sh

for P; do
    dpkg -s "$P" >/dev/null 2>&1 && {
        echo "$P is installed."
    } || {
        echo "$P is not installed."
    }
done

使用法は次のとおりです。

script.sh package1 package2 .... packageN

于 2012-05-15T05:40:01.050 に答える
2

単純にテストを行うには、目的のライブラリの ldconfig -p などのコマンドの出力を grep できるように思われます。

または、目的のライブラリにリンクされた小さなテスト プログラムを提供し、それを実行してみて、失敗しないかどうかをテストすることもできます。

于 2012-05-13T05:18:03.373 に答える
0

依存関係チェックを設定しようとしている場合、適切な解決策は、Depends:インストールする必要があるパッケージにダミー パッケージを作成することです。これに多少役立つequivsというツールがあります。(ただし、「過剰に設計されている」と批判されています。確かに、Debian パッケージの形式に精通している場合、要件がこれほど単純であれば、別のツールは必要ないかもしれません。) 次に、このパッケージをインストールして、依存関係として指定されたパッケージを取り込みます。

提供するライブラリlibreadline.solibreadline5-dev. Debian パッケージ検索は、入れる必要があるパッケージ名を見つけるのに役立ちますDepends:

于 2012-05-15T12:45:40.400 に答える
-1

あなたはおそらくあなたがやりたいことをすることができますdpkg

于 2012-05-13T13:39:10.393 に答える