ローカル担当者から Debian パッケージをインストールする CI ビルドプロセスがあります。
Makefile
以下のように、独自のリポジトリからパッケージをインストールするために適性を呼び出す方法があります。
sudo aptitude -y install foobar >> aptitude.log 2>&1
aptitudeに解決できない競合があるか、リポジトリが "foobar"パッケージの新しいバージョンを提供しない場合が発生する可能性があります。どちらの場合も、適性は何もインストールしません。しかし、
echo $?
aptitudeが呼び出された後はMakefile
常にを返します0
。適性が実際に何もインストールしているかどうかを確認するにはどのような方法をお勧めしますか?終了コードが常にある場合、私が考えることができる唯一の方法は、aptitude出力の最後の行を見つけることです0
。
答え1
を試してくださいdpkg-query
。インストールされているパッケージに関する情報が印刷されます。
例:
dpkg-query -W -f='${Status} ${Version}\n' foobar
結果は次のとおりです。
No packages found matching foobar.
dpkg-query --help
詳細については、実行してください。
答え2
/var/lib/dpkg/info
アップグレードではなくインストールがスムーズに行われたことを確認したいので、実行前後にファイル数を数えてみてくださいaptitude
。しかし、これは特に強力ではありません。