cattyhouse
V2EX  ›  macOS

不小心把 homebrew 搞乱了,于是用 for do done 解决问题了

  •  
  •   cattyhouse · Apr 22, 2015 · 3569 views
    This topic created in 4214 days ago, the information mentioned may be changed or developed.
    一句话:

    for x in `brew list`;do brew install `brew deps $x`;done

    先列出当前安装的app
    然后再用brew deps列出当前安装的app的依赖
    然后再用brew install 安装这些依赖

    for do done 干种事情太方便了。
    Supplement 1  ·  Apr 22, 2015
    @lululau 说用leaves 比list更好一些,我赞同,所以这样

    for x in `brew leaves` ; do brew install `brew deps $x` ; done
    Supplement 2  ·  Apr 22, 2015
    @skywalker 提示了所以再修改一下:

    for x in `brew leaves` ; do echo `brew info $x |grep Required` ; done

    这条命了可以显示当前已经安装的app的必要依赖,输出是这样的:

    Required: pcre ✔



    Required: glib ✔
    Required: openssl ✔, protobuf ✔

    Required: openssl ✔



    Required: libevent ✔



    Required: gdbm ✔, pcre ✔

    于是要安装这些依赖(我就是不小心把其中某些依赖给brew remove了)的方法就是手动输入了

    brew install pcre glib openssl protobuf libevent gdbm
    Supplement 3  ·  Jul 26, 2015
    brew install $(for x in `brew leaves` ; do echo `brew deps --skip-build --skip-optional $x ` ; done | xargs | sort | uniq)
    15 replies  •  2015-04-24 13:55:18 +08:00
    pH
    pH
    Apr 22, 2015
    1
    好几年的OSX用户都不好意思说没用过homebrew,丢人
    ZHenJ
    ZHenJ
    Apr 22, 2015
    2
    hb被认证了,每次用都要开VPN,流量爆表。。
    lululau
    lululau
    Apr 22, 2015❤️2
    3
    用 brew leaves 比 brew list 更好一些
    jy01264313
    jy01264313
    Apr 22, 2015
    4
    没明白为什么把 brew 搞乱了?
    dofine
    dofine
    Apr 22, 2015
    5
    每次 brew install 都出错,原来是被认证的问题啊。。
    skywalker
    skywalker
    Apr 22, 2015
    6
    brew deps 列出了所有的依赖,包括build, recommended, optional,这里很多都不是必须的,你这样会装很多不必要的软件。

    举个例子,brew deps wget列出:

    makedepend
    openssl
    pkg-config
    xz

    其中xz是build的时候需要的(bottle就不用了),openssl是recommended, 另外两个都是optional不是必须的。
    cattyhouse
    cattyhouse
    OP
    Apr 22, 2015
    7
    @skywalker 有道理。。。
    xucheng
    xucheng
    Apr 22, 2015 via iPad
    8
    直接运行 brew doctor 它会列出所有缺失的依赖的
    xucheng
    xucheng
    Apr 22, 2015 via iPhone
    9
    还有brew deps 加参数是可以过滤掉optional 和build的deps的。
    cattyhouse
    cattyhouse
    OP
    Apr 22, 2015 via iPhone
    10
    @xucheng 加什么参数?我研究半天没发现。brew doctor不能发现缺失的依赖,只能发现不完整的环境和缺失的文件。
    xucheng
    xucheng
    Apr 23, 2015 via iPhone
    11
    --skip--build --skip-optional

    我才发现manpage没有更新 明天把这补上
    FrankFang128
    FrankFang128
    Apr 23, 2015 via Android
    12
    怎么把hb搞乱?
    cattyhouse
    cattyhouse
    OP
    Apr 23, 2015 via iPhone
    13
    @xucheng 是啊,man pages上没有,本地的man也没有这俩参数。
    jsfaint
    jsfaint
    Apr 23, 2015
    14
    brew missing不是就会提示缺那个依赖么?
    alangz
    alangz
    Apr 24, 2015
    15
    不知道为何,正常使用,但有时候也会提示依赖缺失
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1313 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 47ms · UTC 21:05 · PVG 05:05 · LAX 13:05 · JFK 16:05
    ♥ Do have faith in what you're doing.