如何通过MacPort获取已安装软件包的大小?

时间:2013-04-15 04:16:53

标签: macports

port installed显示本地计算机上所有已安装的软件包,但有没有办法列出每个软件包的大小?谢谢!

3 个答案:

答案 0 :(得分:6)

I0423 02:49:39.286489       1 kube2sky.go:436] Etcd server found:  http://127.0.0.1:4001
I0423 02:49:40.295909       1 kube2sky.go:503] Using http://172.17.0.1:8080 for kubernetes master
I0423 02:49:40.296183       1 kube2sky.go:504] Using kubernetes API v1

简单易用,自2011年version 2.0以来一直可用!

答案 1 :(得分:1)

我不相信Macports有一个内置命令来列出你的安装大小,但你可以这样做:

在终端中尝试此命令:

du -sh /opt/local/var/macports/software/*

这将为您提供/ opt / local / var / macports / software / *中每个包的大小,我相信是默认的安装位置。

显然,如果您在其他地方安装端口,则可以使用

 du -sh [directory]

如果没有内置的Macports命令,这可能是您可以做的最好的。

我想到的一个替代方案是创建一个可以获取

输出的脚本
 port installed

并回显每次安装的大小。

编辑:

我错了。 / opt / local / var / macports / software / *包含从中提取安装的 tarbells ,因此大小会更小。

如果您使用-sh / opt / local,它应该列出所有内容的大小,但列表中可能会有一些非macports包。

命令port contents installed将显示macports已安装的所有目录。

答案 2 :(得分:1)

这是一个小型bash函数,可以进行任何有效的macports查询

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)"
}

我只用GNU版本的sed和awk测试过,但无论如何都应该可以使用。

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 inactiveoutdated