我正在尝试使用 ubuntu 14.04 解决“如何永久添加路径”。如果我有一个程序说samtools-1.2
我想添加到路径,我想我会这样做:
export PATH=$PATH:home/cmccabe/Desktop/NGS/samtools-1.2 >> .bashrc
然后验证:
cat ~/.bashrc
答案1
为了实现这一点,您需要创建一个新文件,并/etc/profiles.d/
以您想要的名称结尾,但要确保它以.sh
例如...结尾samtools.sh
,然后在文件内放置以下内容:
#!/bin/sh
export PATH=$PATH:/home/cmccabe/Desktop/NGS/samtools-1.2
之后您将需要source /etc/profile
通过命令行运行。
注意:字符export PATH=$PATH:home/cmccabe/Desktop/NGS/samtools-1.2
后缺少斜线:
。
答案2
简短的回答。
那么,即使命令有效,您 100% 确定您知道自己在这里做什么吗?因为在我看来,在用户的桌面上添加目录永久sudo make install
对我来说,添加到系统 PATH 似乎有点不对劲。这类东西应该在源代码编译后作为系统范围的安装来安装。
话虽如此,以下是我对您正在尝试做的事情的分析,为什么它不起作用,可以做些什么来补救它,以及 — — 就像我刚才说的 — — 为什么这不是一个好主意。
较长的答案。
首先,此命令不会执行任何操作:
export PATH=$PATH:home/cmccabe/Desktop/NGS/samtools-1.2 >> .bashrc
它错误地混淆了一些概念。
- 首先,如果您以以下命令启动该命令
export PATH=
,则所做的就是分配一个新PATH
值。 - 接下来,您添加的路径不正确:
home/cmccabe/Desktop/NGS/samtools-1.2
。如果有的话应该是/home/cmccabe/Desktop/NGS/samtools-1.2
;请注意该路径前面的斜杠。 - 最后, 在
>> .bashrc
某种程度上是正确的,但是它之前发生的事情是如此不正确,以至于无关紧要。 告诉>>
Bash 将其前面的内容附加到.bashrc
。由于第一个命令是export PATH=
,因此不会输出任何内容。因此,附加到 的所有内容.bashrc
都是一个空行。 并且 应该.bashrc
是您的用户的主目录,因此请务必将 添加~/
到名称前面,如下所示:~/.bashrc
。
这真实的命令如果这是你想要的命令会是这样的;但请不要运行它:
echo export PATH=$PATH:/home/cmccabe/Desktop/NGS/samtools-1.2 >> ~/.bashrc
这里的关键是,echo
它只会打印后面的内容(而不对其执行任何操作).bashrc
。然后运行source ~/.bashrc
,如果你运行,echo $PATH
它应该全部设置好。
尽管如此,这似乎不是一个好主意。
这是你的系统,所以随心所欲地使用它。但是看看samtools-1.2
就是,这只是程序的源代码。如果你编译了它,那么或许PATH 设置/home/cmccabe/Desktop/NGS/samtools-1.2
是有意义的。但即便如此,处理二进制文件的最佳方式是通过sudo make install
它将所有相关文件放置在正确的位置,然后将samtools
二进制文件安装到/usr/local/bin
其中应该已经成为你的 PATH 的一部分。
也就是说,如果你只是做了一个基本的编译samtools-1.2
并想测试一下,那么将它设置为指向用户桌面上的目录是有意义的。但除此之外,你的问题是关于永久将程序添加到路径中。在这种情况下,我会永远不会推荐您是否曾经将用户桌面上的目录永久添加到您的 PATH 中。丢失桌面上某些内容的风险实在太大了。