私はヘッドレスのFreeBSDサーバーを持っており、いくつかのポートに大量のX11関連のパッケージがインストールされています。不要なX関連のパッケージを取り除くことができるように、これらのポートが何であるかを知りたいと思います。これを理解する方法はありますか?
現在受け入れられている回答は古くなっています。 FreeBSDは、従来のパッケージツールを pkgng に置き換えました。
パッケージの逆依存関係を照会する新しい方法は次のとおりです。
pkg info -r <pkg name>
例:
root@server:/usr/ports # pkg info -r python27
python27-2.7.6_4:
python2-2_2
talloc-2.0.8
tevent-0.9.18
tdb-1.2.12,1
ldb-1.1.16
glib-2.36.3_2
xcb-proto-1.9
gobject-introspection-1.36.0_2
samba4-4.0.13
pkg_info
はこのような質問に答えます。 -R
オプションを使用すると、インストールされているポートの名前が必要であり、そのポートに依存するすべてのポートが表示されます。
pkg_info -R libXfont-1.4.3,1
ワイルドカードを使用して、バージョン番号で名前を指定しないようにすることができます。
pkg_info -R libXfont-\*
これは再帰的には機能しないため、結果のリストの各ポートに対して、最後までpkg_info -R
を再度実行する必要があることに注意してください。
サーバーでは、/etc/make.conf
に次のように入力することをお勧めします。
WITHOUT_X11=yes
これにより、ほとんど(すべて?)のポートがX11関連のものへの依存関係をスキップするようになります。
受け入れられた答えは正しいですが、より柔軟性を提供できる、より堅牢で機能豊富なバリアントがあります。
# pkg query %ro python27
misc/mc
devel/talloc
lang/python2
lang/python
devel/git
devel/tevent
databases/tdb
devel/py-setuptools
dns/py-dnspython
devel/py-iso8601
net/samba48
これにより、ローカルにインストールされたポートの依存関係が逆になります。場合によっては、そのポートの既存の依存関係をすべて一覧表示したいことがあります。その場合、pkg rquery
はその情報を提供できます。
# pkg rquery %ro python27|wc -l
3758
可能なクエリフラグの完全なリストについては、man pkg-query
を参照してください。これらはpkg-rquery
でも機能するはずです。