如何更改程序路径/别名?


1

我不确定它在Linux上是如何工作的,但你可以输入程序名,例如 lsman等等,在任何目录中执行程序。

我卸载了旧版本的ImageMagick并构建了新版本,现在当我尝试执行时 convert 命令(运行ImageMagick)我收到以下错误:

/usr/bin/convert: No such file or directory

所以我跑了:

find / -name convert

这显示了这个:

/usr/local/bin/convert

所以看起来由于某种原因,ImageMagick这次将实际的可执行文件放在不同的目录中,但是当我尝试运行程序时,它会在旧目录中查找。

我怎样才能更新 convert 路径/别名/快捷方式(术语失败)与新路径?


您可以尝试在新路径和旧路径之间建立符号链接。这感觉有点像黑客,但它可能不会破坏事情而不是尝试移动。或者,您可以查看ImageMagick的构建选项,并查看构建时是否有可以更改的路径
Crippledsmurf

/usr/local/bin 在你的路上?
DavidPostill

@DavidPostill你的意思是 $PATH 变量?如果是这样,它已经在那里: /usr/local/jdk/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin:/usr/X11R6/bin:/root/bin
Nate

1
什么是输出 ls -al /usr/local/bin/convert?什么是输出 alias
DavidPostill

@DavidPostill该命令的输出是 -rwxr-xr-x 1 root root 24743 Nov 28 21:57 /usr/local/bin/convert*。别名的输出很长,但没有任何内容 convert 在里面。
Nate

Answers:


1

你应该确保你的 /usr/local/bin/ 目录在你的 $PATH

echo $PATH

这应该返回您的Bash搜索可执行文件的所有目录,以冒号分隔( : )。输出应该类似于:

/usr/local/bin:/opt/local/bin:/opt/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/usr/texbin

Bash shell使用 '哈希表' 记住可执行文件的完整路径名。详情见 man bash 并搜索 'SHELL BUILTIN COMMANDS'

在新安装程序之后,可能会发生此哈希表未自动更新的情况。要在当前终端中强制执行此更新,请使用以下命令:

hash -r

现在     哪个转换

应该回来

/usr/local/bin/convert

我想就是这样。谢谢!
Nate
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.