私はDebian形式のgitパッケージ(.deb
)を構築するスクリプトを書いています。このパッケージには次の Debian パッケージが必要です。
cmake、libturbojpeg0-dev、libjpeg62-turbo-dev、libglx-dev、opencl-headers、libgl-dev、libegl-dev、libx11-dev、libxtst-dev、libglu1-mesa-dev、libxcb-vs glx0-devとlibx11-xcb-dev
だから私はこれを使用しています:
for file in cmake libturbojpeg0-dev libjpeg62-turbo-dev libglx-dev opencl-headers libgl-dev libegl-dev libx11-dev libxtst-dev libglu1-mesa-dev libxcb-keysyms1-dev libxcb-glx0-dev libx11-xcb-dev; do apt -y install $file;done
私の質問はパッケージがインストールされていることを確認し、そうでない場合はどのようにインストールできますか?このような
dpkg -l packagename
インストールされている場合は次の手順に進み、インストールされていない場合はを使用してくださいapt -y install
。ありがとう
答え1
mk-build-deps
これを行うには、スクリプトを直接作成するのではなく、パッケージ制御ファイルにビルドの依存関係を一覧表示し(またはパッケージ解析ビルドツール)を使用する必要があります。例えば pbuilder
、sbuild
等。 )。バラよりdpkg-checkbuilddepsによって検出された、満たされていないビルド依存関係を自動的にインストールします。もっと学ぶ。
これを望まない場合は、必要な状態を説明し、apt
次のことを処理してください。
sudo apt-get install --no-install-recommends cmake libturbojpeg0-dev libjpeg62-turbo-dev libglx-dev opencl-headers libgl-dev libegl-dev libx11-dev libxtst-dev libglu1-mesa-dev libxcb-keysyms1-dev libxcb-glx0-dev libx11-xcb-dev
apt
インストールされたパッケージは再インストールされませんが、システムで設定されたリポジトリの最新の候補バージョンにすべてのパッケージをアップグレードします(この--no-upgrade
機能はこのオプションを使用して無効にできます)。
もしあなたなら本物dpkg -l
各パッケージに対して実行できるスクリプトを直接作成してフィルタリングする^ii
には、一致しないパッケージをインストールする必要があります。
for package in …; do
if ! dpkg -l "$package" | grep -q ^ii; then
sudo apt-get install --no-install-recommends "$package"
fi
done
(--no-install-recommends
ビルド依存関係に正確に必要な弱い依存関係のインストールをスキップしてください。)