我们想尝试一下生物片工具,需要一定的依赖,比如ruby和perl,ao运行后安装人员,并因此安装了一些 ruby gems,我们无法再运行常规的 linux 'make' 命令:
~$ make
/var/lib/gems/1.9.1/gems/make-0.3.1/bin/make:1:in `top (required)>': uninitialized constant ELF (NameError)
from /usr/local/bin/make:23:in `load'
from /usr/local/bin/make:23:in `<main>'
如果我们指定根目录/usr/bin/make,它就可以工作。
目前,我们没有使用biopieces,我们可以卸载所有内容。是否有可能解决这个问题,回到之前的状态?
答案1
如果您查看ruby_installer.sh
您提到的链接,您会发现它以以下内容结尾:
echo "All done. Now append the following to your ~/.bashrc file:"
echo "export PATH=\"$ruby_dir/bin:\$PATH\""
echo "Done"
这意味着$ruby_dir/bin
(例如: /usr/local/myruby/bin
) 现在是 shell 尝试查找程序的第一个位置。
要更改它,只需回显您的 PATH 变量并更改它,这样/usr/local/myruby/bin
它将成为最后一个检查的位置。例如:
# echo $PATH
/usr/local/myruby/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
# export PATH=/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/myruby/bin
# echo $PATH
/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/myruby/bin
并且不要忘记将.bashrc
脚本中指定的 PATH 改回。
答案2
结合我们收到的答案和评论,我们解决了这个问题。首先,我们确认“make”是从 中调用的/usr/local/bin
,它确实出现/usr/bin
在之前PATH
。然后我们从 中删除了 ruby 'make' /usr/local/bin
。这是一步一步的:
$ which make
$ echo $PATH
$ gem uninstall -a -x make; hash -r;
现在我们的 Linux 'make' 可以正常工作了;-)