我通过Homebrew安装了Node。路径是/opt/homebrew/Cellar/node/21.1.0。我已经安装了Prettier Sublime Text插件(JSPrettier),它需要定义Node路径。将其定义为/opt/homebrew/Cellar/node/21.1.0可以让它工作。但是,每当我更新Node时,路径就会发生变化。我如何设置这个,以便Prettier Sublime Text插件配置和生存节点更新?手动更新路径可以工作,但效率不是很高。
ltskdhd11#
当你使用homebrew安装一个软件包时,它会在它的 “Cellar” 中放置一个版本控制的副本,并在它的bin目录中创建一个指向它的非版本控制的链接。这样,你只需要将bin目录添加到你的PATH中,你的shell就可以总是找到你安装的每个软件包的最新版本-所以你通常应该避免使用特定版本的可执行文件。
bin
/opt/homebrew/Cellar
/opt/homebrew/bin
/usr/local/Cellar
/usr/local/bin
您可以通过运行以下命令来判断它正在使用两个位置中的哪一个:
brew --prefix # prints "/opt/homebrew" on Apple Silicon and "/usr/local" on Intel
字符串因此,如果您在Apple Silicon上获得htop包的/opt/homebrew/bin的长列表,您可以看到:
htop
ls -l /opt/homebrew/bin lrwxr-xr-x 1 mark admin 29 Jul 9 15:35 htop -> ../Cellar/htop/3.2.2/bin/htop
型这意味着/opt/homebrew/bin/htop中有一个未版本化的普通htop,它只指向 “Cellar” 中的最新v3.2.2 htop。
/opt/homebrew/bin/htop
TL;DR
使用/usr/local/bin或opt/homebrew/bin中的非版本化链接,除非你真的需要任何东西的特定版本。请注意,如果你是程序员/开发人员,这个故事稍微复杂一些。你将使用 “包含文件”(也称为 “头文件”)和库(例如libxyz.so)以及pkgconfig文件(即扩展名为.pc)。这些文件的链接方式与可执行文件完全相同,所以你用途:
opt/homebrew/bin
libxyz.so
pkgconfig
.pc
gcc/clang -I /opt/homebrew/include -L /opt/homebrew/lib # Apple Silicon
型或
gcc/clang -I /usr/local/include -L /usr/local/lib # Intel Macs
型或者,如果你想让你的编译/链接在任何一个架构上工作:
gcc/clang -I "$(brew --prefix)/include" -L "$(brew --prefix)/lib" ...
型
1条答案
按热度按时间ltskdhd11#
当你使用homebrew安装一个软件包时,它会在它的 “Cellar” 中放置一个版本控制的副本,并在它的
bin
目录中创建一个指向它的非版本控制的链接。这样,你只需要将bin
目录添加到你的PATH中,你的shell就可以总是找到你安装的每个软件包的最新版本-所以你通常应该避免使用特定版本的可执行文件。bin
目录的位置根据Mac上的CPU架构而有所不同:/opt/homebrew/Cellar
和/opt/homebrew/bin
/usr/local/Cellar
和/usr/local/bin
您可以通过运行以下命令来判断它正在使用两个位置中的哪一个:
字符串
因此,如果您在Apple Silicon上获得
htop
包的/opt/homebrew/bin
的长列表,您可以看到:型
这意味着
/opt/homebrew/bin/htop
中有一个未版本化的普通htop
,它只指向 “Cellar” 中的最新v3.2.2htop
。TL;DR
使用
/usr/local/bin
或opt/homebrew/bin
中的非版本化链接,除非你真的需要任何东西的特定版本。请注意,如果你是程序员/开发人员,这个故事稍微复杂一些。你将使用 “包含文件”(也称为 “头文件”)和库(例如
libxyz.so
)以及pkgconfig
文件(即扩展名为.pc
)。这些文件的链接方式与可执行文件完全相同,所以你用途:型
或
型
或者,如果你想让你的编译/链接在任何一个架构上工作:
型