为什么安装 Perl 后所有 Linux 命令都被破坏了?

Kas*_*hif 7 linux perl

我使用以下命令安装了 perl:

curl -L http://xrl.us/installperlnix | bash
Run Code Online (Sandbox Code Playgroud)

之后我运行以下命令来创建软链接

ln -sf /usr/local/bin/perl /usr/bin/perl
Run Code Online (Sandbox Code Playgroud)

现在我正在尝试运行诸如dir, mkdir, ll, 之类的命令rmvi但似乎没有任何效果。同样,当我尝试登录我的 shell 时,我在启动时收到以下消息:

Last login: Wed Apr  4 21:50:12 2012 from x.y.z.ip
-bash: perl: command not found
Run Code Online (Sandbox Code Playgroud)

请帮忙。

这是系统详细信息:

cat /proc/version
Linux version 2.6.18-274.18.1.el5.028stab098.1 (root@rhel5-build-x64) (gcc version 4.1.2 20080704 (Red Hat 4.1.2-46)) #1 SMP Sat Feb 11 15:30:41 MSK 2012

cat /etc/issue
CentOS 5.7 32 bit
Kernel \r on an \m
Run Code Online (Sandbox Code Playgroud)

不知道 perl 是否已经安装。现在我无法检查。

EEA*_*EAA 12

Perl 可能已经安装了,谁知道安装脚本对您的环境做了什么,把它搞砸了。

这里有两个教训:

  1. 永远不要使用上述“pipe to bash”方法安装软件,除非先验证 1) 安装是否有效,2) 不会搞砸,3) 不会做任何恶意的事情。
  2. 在去第三方之前,总是,总是,总是检查一个包是默认提供的还是由你的发行版的默认包存储库提供的。

您可以通过将~/.bashrc文件修复为已知良好状态来恢复,但老实说,我建议您重新安装操作系统并重试。

  • @user115079 这是在没有必要理解的情况下盲目遵循教程的危险:他们告诉你做某事,你去做(诚实地相信编写教程的人不会做任何破坏性的事情),而作者认为是无辜的除了你的`.bashrc` 产生的问题。[我们有一个专门用于 Unix/Linux 的完整站点](http://unix.stackexchange.com),它可能会为您提供好的(可能是 *** 安全的***)教程,并帮助您通过任何在不损坏系统的情况下克服初始障碍... (8认同)

Chr*_*s S 8

登录时的错误来自 bashrc 脚本中的以下行:

~/perl5/perlbrew/etc/bashrc

您可以通过删除来修复 perl,/usr/bin/perl因为安装脚本/usr/local/bin/perl默认情况下没有将其放入...不确定该ln命令的灵感来自何处。您可能需要咨询您的发行版来修复 Perl,但不确定。

perlbrew 的安装脚本比我愿意阅读的要长得多。如果您仍然遇到问题,最好的办法是从备份中擦除和恢复。