在 Ubuntu 14.04 中将程序永久添加到路径

在 Ubuntu 14.04 中将程序永久添加到路径

我正在尝试使用 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 中。丢失桌面上某些内容的风险实在太大了。

相关内容