淘先锋技术网

首页 1 2 3 4 5 6 7


关于 ruby


macOS 安装 Ruby

官方提示为:

$ brew install ruby


  • 默认情况下,gem安装的二进制文件在 /usr/local/lib/ruby/gems/3.1.0/bin 中,你可能需要将这个地址添加到环境变量(PATH)。
  • ruby 是 keg-only,意味着它不能被软连接到 /usr/local,因为macOS默认提供了 ruby。如果软连接可能会出现各种问题。

如果你想添加环境变量,可以运行以下命令:

echo 'export PATH="/usr/local/opt/ruby/bin:$PATH"' >> /Users/xx/.bash_profile

对于要查找ruby的编译器,您可能需要设置:

export LDFLAGS="-L/usr/local/opt/ruby/lib"
export CPPFLAGS="-I/usr/local/opt/ruby/include"

要想让pkg config找到ruby,您可能需要设置:


安装时有如下提示


By default, binaries installed by gem will be placed into:
  /usr/local/lib/ruby/gems/3.1.0/bin

You may want to add this to your PATH.

ruby is keg-only, which means it was not symlinked into /usr/local,
because macOS already provides this software and installing another version in
parallel can cause all kinds of trouble.

If you need to have ruby first in your PATH, run:
  echo 'export PATH="/usr/local/opt/ruby/bin:$PATH"' >> /Users/xx/.bash_profile

For compilers to find ruby you may need to set:
  export LDFLAGS="-L/usr/local/opt/ruby/lib"
  export CPPFLAGS="-I/usr/local/opt/ruby/include"

For pkg-config to find ruby you may need to set:
  export PKG_CONFIG_PATH="/usr/local/opt/ruby/lib/pkgconfig"

关于 keg-only

转自:https://zhuanlan.zhihu.com/p/196667957

首先, brew 本身是酿造、酿酒的意思,会用这个字的原因是 homebrew 的安装方式为下载 source code 回来做编译,由于是在自己电脑做 local compile 编译套件,所以这个工具叫做 homebrew 自家酿酒。

酿酒需要有配方 formula,当你需要安装套件时,流程就是下 brew 命令去根据配方 formula, 酿造出一桶( keg)酒来。所以 keg 指的是整个编译完成的套件资料夹。

再来,放置套件的位置在 /usr/local/Cellar/Cellar 就是地窖,一桶一桶酿好的酒当然要存放在地窖里囖!所以编译安成的套件资料夹 keg 预设目录在 /usr/local/Cellar/

最后回到「keg-only」整个词,字面上意思现在就很清除,表示这个套件只会存放在桶子里,不会跑出桶子外。实际上的行为是 brew 不会帮你做 symlink/usr/local,避免你的原生系统内还有一套 readline 而打架,所以提示消息说 readline 套件是 keg-only

至此,希望你通过上面的解释了解 Homebrew 相关有趣的命名~


参考资料


2023-06-10(六)