port installed
ローカル マシンにインストールされているすべてのパッケージが表示されますが、それぞれのサイズを一覧表示する方法はありますか? ありがとう!
3 に答える
port space --units MB installed
素晴らしく簡単で、2011 年のバージョン 2.0から利用できます。
インストールのサイズを一覧表示するための Macports からの組み込みコマンドがあるとは思いませんが、これを実行できます。
ターミナルで次のコマンドを試してください。
du -sh /opt/local/var/macports/software/*
これにより、/opt/local/var/macports/software/* 内のすべてのパッケージのサイズがわかります。これがデフォルトのインストール場所だと思います。
明らかに、ポートを別の場所にインストールすると、使用できます
du -sh [directory]
Macports コマンドが組み込まれていない場合、これがおそらく最善の方法です。
頭に浮かぶ1つの代替案は、の出力を取得するスクリプトを作成することです
port installed
各インストールのサイズをエコーします。
編集:
私は間違っていました。/opt/local/var/macports/software/* には、インストールが抽出されたtarbellが含まれているため、サイズは小さくなります。
du -sh /opt/local を実行すると、すべてのサイズが一覧表示されますが、一覧には macports 以外のパッケージがいくつか含まれている場合があります。
このコマンドport contents installed
は、macports がインストールしたすべてのディレクトリを表示します。
これは、有効な macports クエリを受け取る小さな bash 関数です。
function port_size {
size=0
pkg_size=0
for pkg in $(port $@ | tail -n +2 | awk '{ print $1 }')
do
pkg_size=$(port contents $pkg \
| sed -r 's/^[[:space:]]*(.*)[[:space:]]*$/\1/g;s/ /\\ /g' \
| tail -n +2 | xargs du | cut -f1 | paste -sd '+' | bc)
size=$(( $size + $pkg_size ))
printf "%10d %s\n" $pkg_size $pkg
done
printf "%10d %s\n" $size "Total Size (KB)"
}
sed と awk の GNU バージョンでのみテストしましたが、関係なく動作するはずです。
port_size installed # will print out all installed packages and their size
port_size installed gcc* # will print out all packages matching gcc* wildcard
繰り返しになりますが、有効な macports クエリはすべて機能します (installed inactive
またはoutdated
.