关于 ruby
- ruby 官网:https://www.ruby-lang.org/zh_cn/
支持多种语言,包括简体中文 - ruby 官方安装:https://www.ruby-lang.org/en/documentation/installation/#homebrew
macOS 安装 Ruby
官方提示为:
$ brew install ruby
- 关于brew,可参考:macOS 工具 - Homebrew
https://blog.csdn.net/lovechris00/article/details/121613647 - brew 安装的 ruby,位于
/usr/local/Cellar/ruby
,没有软连接到/usr/local/bin
下。需要参考安装的打印信息进行设置。
- 默认情况下,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 相关有趣的命名~
参考资料
- 有趣的Homebrew 命名及 keg-only 的意思
https://zhuanlan.zhihu.com/p/196667957 - macOS 工具 - Homebrew
https://blog.csdn.net/lovechris00/article/details/121613647 - What is a keg, PATH, and symlink
https://github.com/orgs/Homebrew/discussions/239
2023-06-10(六)