将新的可执行文件添加到PATH环境变量中?


16

我正在尝试安装名为phantomjs的库。

说明包括以下行:

http://code.google.com/p/phantomjs/wiki/BuildInstructions

为了方便起见,将可执行文件bin / phantomjs.app / Contents / MacOS / phantomjs复制到PATH中的某个目录中。

我该怎么做呢?


我认为您不必担心将其放入路径中,因为bin已在其中。但是,如果你愿意,你可以找到如何实现,在这里:troubleshooters.com/linux/prepostpath.htm

@cksum,但这是相对路径;我们不知道“ bin”之前是什么。
12

@bneely是的,但是没有〜/ bin。唯一的位置是/ bin,/ usr / bin和/ usr / local / bin。所有这些都已经存在。如果您运行path,则默认情况下会看到以下内容:PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin我没有浏览过相关程序的安装脚本,但极不可能将其安装到自己的“ bin”文件夹中。而且您无法添加相对路径AFAIK。我倾向于认为草率指南中的错字。

我知道不能添加相对路径;我说的是问题中的路径是相对路径,因为它不是以/或〜开头。
2012年

Answers:


10

要找出PATH中的内容,请打开“终端”窗口并运行以下命令:echo $PATH。输出是用冒号分隔的目录列表,您可以在不指定完整路径的情况下运行目录的内容。

由于/ usr / bin在我的路径中,因此我w只需键入w而不是full 即可运行命令/usr/bin/w

另外,您不必将可执行文件移至列出的PATH目录之一。其他选项包括

  • 将可执行文件保留在原处,并从PATH目录之一对其进行符号链接
  • 通过在Shell的登录脚本中显式设置目录,将目录添加到PATH中

请在另一个答案中遵循@Gerry的建议,并将其符号链接。这是最干净的方法!
cregox

如果碰巧需要在中提供完整目录PATH,因为其中需要访问许多可执行文件,则没有其他选择,就是PATH目的。当前,我们使用〜/ .bash_profile添加到path
cregox 2014年

20

实现此目的的最简单方法是在/ usr / local / bin目录(默认情况下包含在PATH中)中对二进制文件进行符号链接。如果该目录尚不存在,则可能需要创建它。您可以通过打开Terminal.app并键入以下命令来查看这些目录是否已在PATH中:

echo $PATH

这将生成一个用冒号分隔的列表,列出您PATH中的所有目录。

如果目录/ usr / local或/ usr / local / bin尚不存在,请执行以下操作:

sudo mkdir -p /usr/local/bin

符号链接二进制文件,如果不同,则将(/ Applications)替换为phantomjs.app的路径:

sudo ln -s /Applications/phantomjs.app/Contents/MacOS/phantomjs /usr/local/bin

现在,从命令行执行phantomjs应该没有问题。


+ 1,ls /usr/local/bin/ || sudo mkdir /usr/local/bin/ ; sudo ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql
何塞·卡洛斯·拉莫斯·卡门尼斯斯

3

回到问题的根源,如果要安装phantomjs,则可以使用npm使其变得更容易。

如果这样做,则可以运行:

npm install -g phantomjs-prebuilt

它将二进制文件安装在正确的bin目录中。(-g标志指示npm该软件包将在全局安装)


0

从另一个目录对文件进行符号链接时,我更喜欢将文件实际复制/移动到usr/local/bin,而不是“两次”。

cp bin/phantomjs.app/Contents/MacOS/phantomjs /usr/local/bin
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.