4

port installedローカル マシンにインストールされているすべてのパッケージが表示されますが、それぞれのサイズを一覧表示する方法はありますか? ありがとう!

4

3 に答える 3

11
port space --units MB installed

素晴らしく簡単で、2011 年のバージョン 2.0から利用できます。

于 2016-04-23T03:17:06.187 に答える
1

インストールのサイズを一覧表示するための 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 がインストールしたすべてのディレクトリを表示します。

于 2013-04-15T04:37:41.953 に答える
1

これは、有効な 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.

于 2014-03-02T19:39:46.897 に答える