apt-get(またはdpkgのその他のフロントエンド)でパッケージを直接インストールし、すぐに削除して依存関係を除外するのではなく、パッケージの必要な依存関係のみをインストールするより良い方法はありますか?
apt-get(またはdpkgのその他のフロントエンド)でパッケージを直接インストールし、すぐに削除して依存関係を除外するのではなく、パッケージの必要な依存関係のみをインストールするより良い方法はありますか?
回答:
apt-getは、まさにそのためのコマンドを提供します...
apt-get build-dep <package name>
あなたが得るマニュアルページから
build-depを使用すると、ソースパッケージのビルド依存関係を満たすために、apt-getがパッケージをインストール/削除します。デフォルトでは、パッケージをネイティブにビルドするための依存関係が満たされています。必要に応じて、代わりに--host-architectureオプションを使用してホストアーキテクチャを指定できます。
aptitudeでは、インストール時にパッケージ名の代わりにクエリを指定できます。という名前のパッケージの依存関係をインストールする場合foo
は、以下に逆の依存関係があるパッケージをインストールできますfoo
。
aptitude install '?reverse-depends(foo)'
または
aptitude install '~Rfoo'
パッケージをインストールしてから削除する際の問題は、依存関係としてインストールされるすべてのパッケージが「自動インストール」としてマークされ、aptitudeによるインストール/削除/アップグレードアクションまたは実行しapt-get autoclean
ない限り削除されることです。aptitude mark
またはapt-mark
コマンドを使用して手動でインストールされたものとしてマークします。
しかし、これはなぜあなたがこれをしたいのかという疑問を請います。あなたが手作業でコンパイルしようとしているいくつかのソフトウェアの依存関係をインストールしようとしているということです。その場合、最初にビルド依存関係をインストールしますがapt-get build-dep packagename
、equiv
パッケージを使用して適切な依存関係を持つダミーパッケージをビルドすることにより、ランタイム依存関係(通常はビルド依存関係とは異なる)を持つダミーパッケージを作成する必要があります手動でコンパイルされたプログラム。情報を参照してくださいequivs
にAPT HOWTO
build dependencies
ありdependencies
ませんか?同様に、通常プログラムをインストールすると、実際に実行する必要のある依存関係が得られます。ビルド依存関係では、ライブラリ、コンパイラーなどについてもっと考えます。だから私は確信していませんが(この答えには賛成票があります)、ビルド依存関係を取得することはパッケージが持っている(実行する)依存関係を取得することと同じことは簡単ではないようです?