port installed
显示本地机器上所有已安装的包,但是有没有办法列出每个包的大小?谢谢!
问问题
1032 次
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 命令,这可能是您能做的最好的事情。
想到的一种替代方法是创建一个脚本,该脚本将输出
port installed
并回显每次安装的大小。
编辑:
我错了。/opt/local/var/macports/software/* 包含从中提取安装的tarbell,因此大小会更小。
如果你做 du -sh /opt/local,它应该列出所有东西的大小,但列表中可能有一些非 macports 包。
该命令port contents installed
将向您显示 macports 已安装的所有内容的目录。
于 2013-04-15T04:37:41.953 回答
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)"
}
我只用 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
or outdated
.
于 2014-03-02T19:39:46.897 回答