V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
trueGate
V2EX  ›  macOS

Mac Homebrew 使用疑惑

  •  
  •   trueGate · 2018-10-22 16:13:38 +08:00 · 3554 次点击
    这是一个创建于 2231 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近在使用 brew install rabbitmq 时,遇到了安装路径问题。brew 默认安装在 /usr/local/Cellar/rabbitmq/x.x.x/ 下,无法使用命令行 rabbitmq-server 直接运行。

    目前考虑有两种方案: 1、软连接,将 /usr/local/Cellar/rabbitmq/x.x.x/ link 到环境变量中的有效路径,例如 /usr/local/sbin/ 2、将 /usr/local/Cellar/rabbitmq/x.x.x/ 添加到环境变量

    出于对环境变量的洁癖,倾向方案一。但是问题来了,


    在使用 brew link rabbitmq 时,遇到了权限问题:

    $ brew link rabbitmq
    Linking /usr/local/Cellar/rabbitmq/3.7.8...
    Error: Could not symlink sbin/cuttlefish
    /usr/local/sbin is not writable.
    
    $ sudo brew link rabbitmq
    Password:
    Error: Running Homebrew as root is extremely dangerous and no longer supported.
    As Homebrew does not drop privileges on installation you would be giving all
    build scripts full access to your system.
    

    求问~~~ brew link 具体该怎么使用呢?或者是不是安装的姿势不太对 T.T

    16 条回复    2018-10-23 19:51:37 +08:00
    ZavierXu
        1
    ZavierXu  
       2018-10-22 16:19:51 +08:00   ❤️ 1
    brew doctor 了没有
    ech0x
        2
    ech0x  
       2018-10-22 16:20:35 +08:00 via iPhone
    homebrew 好像在 /usr/local/portal 下有做一个最新版的软连接的,具体路径记不清了,你可以找一下。
    lululau
        3
    lululau  
       2018-10-22 16:22:34 +08:00   ❤️ 1
    用 hombrew services: https://github.com/Homebrew/homebrew-services

    brew services start rabbitmq

    brew services list
    trueGate
        4
    trueGate  
    OP
       2018-10-22 16:26:50 +08:00
    @ZavierXu
    多谢老法师!找到原因了,原来是系统没有 /usr/local/sbin,导致 rabbitmq 的默认安装路径不存在
    liuzelei
        5
    liuzelei  
       2018-10-22 16:27:24 +08:00
    在 mac 上如果不想把自己的系统搞乱,建议这些都全部用 docker 吧。
    hguandl
        6
    hguandl  
       2018-10-22 16:28:41 +08:00   ❤️ 1
    我这里无法复现这个情况,推测应该是你那边的设置有些问题。

    Homebrew 的思想是将 /usr/local 内容下的权限设置为用户的。所以会在安装过程中有一次权限请求,就是用来设置文件夹的所有者。你这种问题应该是 /usr/local/sbin 的权限不是自己的,可以检查一下:

    /usr/local/bin
    /usr/local/sbin
    /usr/local/Cellar
    /usr/local/Caskroom
    /usr/local/etc
    /usr/local/var
    /usr/local/include
    /usr/local/lib
    /usr/local/share
    /usr/local/opt

    以上这些文件夹不出意外的话应该都是 你的用户名:admin 这个所有者权限。如果是其他的,比如 root:wheel 的话需要修改一下。或者使用 brew doctor 看看有没有什么提示。
    trueGate
        7
    trueGate  
    OP
       2018-10-22 16:29:17 +08:00
    @lululau 嗯嗯,这个方法是很实用,可以在 brew 内部实现管理。但是有些应用还是依赖 rabbitmq-server,手动启还是不太方便
    yikyo
        8
    yikyo  
       2018-10-22 16:33:26 +08:00
    你肯定没有洁癖,有洁癖的都用 docker.
    trueGate
        9
    trueGate  
    OP
       2018-10-22 16:33:57 +08:00
    @hguandl 是的,找到出问题的原因,是我的文件系统创建的不完善。手动创建再重新安装就好了,感谢关注~
    trueGate
        10
    trueGate  
    OP
       2018-10-22 16:34:24 +08:00
    @ech0x 找到原因了,感谢关注
    trueGate
        11
    trueGate  
    OP
       2018-10-22 16:35:08 +08:00
    @yikyo 洁癖 2.0,该打怪升级了。学习学习
    trueGate
        12
    trueGate  
    OP
       2018-10-22 16:36:33 +08:00
    @liuzelei docker 还是有点陌生,去研究下`
    ZavierXu
        13
    ZavierXu  
       2018-10-22 16:36:40 +08:00
    @trueGate 客气客气,一般来说这种情况出现在重装系统 /Time Machine 恢复之后……(来自一个经常重装系统的人的回复
    trueGate
        14
    trueGate  
    OP
       2018-10-22 16:38:05 +08:00
    @ZavierXu 还真是...换了电脑直接迁移的。 一直都没留意这块,受教啊!
    bjfane
        15
    bjfane  
       2018-10-22 20:49:50 +08:00
    bife git:(dev) >brew info rabbitmq
    ===============================
    rabbitmq: stable 3.7.8
    Messaging broker
    https://www.rabbitmq.com
    Not installed
    From: https://github.com/Homebrew/homebrew-core/blob/master/Formula/rabbitmq.rb
    ==> Dependencies
    Required: erlang ✘
    ==> Caveats
    Management Plugin enabled by default at http://localhost:15672

    To have launchd start rabbitmq now and restart at login:
    brew services start rabbitmq
    Or, if you don't want/need a background service you can just run:
    rabbitmq-server
    ==> Analytics
    install: 12,853 (30 days), 35,628 (90 days), 140,857 (365 days)
    install_on_request: 11,741 (30 days), 32,646 (90 days), 121,922 (365 days)
    build_error: 0 (30 days)

    有说按什么方式启动,我也是经常忘了 怎么启动,就 info 一下。mysql、mongo 什么的
    inoki
        16
    inoki  
       2018-10-23 19:51:37 +08:00 via Android
    sbin 是 super user 的 binary 路径吧我记得。
    usr local bin 应该是自己的吧
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   974 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 23:02 · PVG 07:02 · LAX 15:02 · JFK 18:02
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.