由于某种原因,我成功地向我的目录添加了新目录$PATH
,但是当我在终端中运行命令时,并$PATH
没有调用它们。
我修改了文件$PATH
中的内容~/.bashrc
,并添加了最后一个目录
# Set the default system $PATH:
PATH="/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/usr/games:**/home/aldin/mybin/fasta-35.4.12/bin**"
但当我运行命令时,它显示command not found
。然而,当我输入该实用程序的完整路径时,我能够运行它。
有人遇到过这个问题吗?你知道我该怎么做才能解决这个问题吗?
答案1
首先,请确保重新启动会话。要么关闭终端窗口,要么完全注销并重新登录。
接下来,确保您确实已经修改PATH
了echo $PATH
。
如果您不是aldin
来自该文件的路径(或者即使您是),请确保您有权查看该目录并执行该文件。
最后,确保您尝试运行的命令确实被标记为可执行权限。类似这样的操作chmod a+x /home/aldin/mybin/fasta-35.4.12/bin/file.sh
应该可以正常工作。
此外,您正在尝试以一种非常危险的方式修改PATH
。请尝试:
PATH="$PATH:$HOME/mybin/fasta-35.4.12/bin/"
绝不(有时我希望有一个“超级粗体”)修改$PATH
你的方式,总是在某处引用当前内容$PATH
,否则你将覆盖而不是附加到其中的现有条目。
答案2
我遇到了同样的问题。我无法让 bash 接受库路径,以便我的程序可以使用它。那时我发现了链接器管理器。Linux 有一个名为的链接器管理器ldconfig。我导航到/etc/ld.so.conf.d以 root 用户身份登录。然后我在其中创建了一个配置文件,文件名类似于myLibPaths.conf。我在该文件中添加了一行库路径:like;/home/用户名/lib。您可能可以根据需要在该文件中添加任意数量的路径行。之后,需要一个配置命令。
执行ldconfig在命令行上。使用以下方法验证路径添加:ldconfig -v | 更少或者 ldconfig -v | grep /home/用户名/lib。
&)删除路径: R M/etc/ld.so.conf.d/myLibPaths.conf
&)要编辑路径:编辑myLibPaths.conf然后运行ldconfig再次。
我不再尝试使用 bash 设置库路径。我可能能够使用LD_LIBRARY_PATH=$PATH:$HOME/lib,但链接器管理器工作正常。整个问题在于让 bash 确认LD_LIBRARY_PATH。也许 Linux 根本不以这种方式处理库?