cattyhouse
V2EX  ›  macOS

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

  •  
  •   cattyhouse · Apr 22, 2015 · 3181 views
    This topic created in 4066 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
        1
    pH  
       Apr 22, 2015
    好几年的OSX用户都不好意思说没用过homebrew,丢人
    ZHenJ
        2
    ZHenJ  
       Apr 22, 2015
    hb被认证了,每次用都要开VPN,流量爆表。。
    lululau
        3
    lululau  
       Apr 22, 2015   ❤️ 2
    用 brew leaves 比 brew list 更好一些
    jy01264313
        4
    jy01264313  
       Apr 22, 2015
    没明白为什么把 brew 搞乱了?
    dofine
        5
    dofine  
       Apr 22, 2015
    每次 brew install 都出错,原来是被认证的问题啊。。
    skywalker
        6
    skywalker  
       Apr 22, 2015
    brew deps 列出了所有的依赖,包括build, recommended, optional,这里很多都不是必须的,你这样会装很多不必要的软件。

    举个例子,brew deps wget列出:

    makedepend
    openssl
    pkg-config
    xz

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

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