首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何通过MacPort获取已安装包的大小?

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

Stack Overflow用户
提问于 2013-04-15 12:16:53
回答 3查看 1K关注 0票数 4

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-04-15 12:37:42

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

在终端中尝试此命令:

代码语言:javascript
复制
du -sh /opt/local/var/macports/software/*

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

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

代码语言:javascript
复制
 du -sh [directory]

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

我想到的另一种方法是创建一个脚本,该脚本将接受

代码语言:javascript
复制
 port installed

并回显每个安装的大小。

编辑:

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

如果你做了du -sh /opt/local,它应该列出所有东西的大小,但列表中可能有一些非macports包。

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

票数 1
EN

Stack Overflow用户

发布于 2016-04-23 11:17:06

代码语言:javascript
复制
port space --units MB installed

又好又简单,从2011年的version 2.0开始就可以使用了!

票数 11
EN

Stack Overflow用户

发布于 2014-03-03 03:39:47

下面是一个小bash函数,它将接受任何有效的macports查询

代码语言:javascript
复制
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版本对其进行了测试,但无论如何它都应该可以工作。

代码语言:javascript
复制
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 )。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16007574

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档