【发布时间】:2023-03-26 13:26:01
【问题描述】:
我有一个基于 CentOS 6.6 并安装了 perl 版本 5.10.1 的网络服务器。
是否可以将 perl 及其所有模块(mod_perl,...)更新到 5.16 或更高版本?
直到现在 CentOS 存储库中还没有可用的更新
非常感谢您的帮助。
约翰
【问题讨论】:
我有一个基于 CentOS 6.6 并安装了 perl 版本 5.10.1 的网络服务器。
是否可以将 perl 及其所有模块(mod_perl,...)更新到 5.16 或更高版本?
直到现在 CentOS 存储库中还没有可用的更新
非常感谢您的帮助。
约翰
【问题讨论】:
这个版本的 Perl 是否必须可供所有用户访问?如果没有,您可以尝试使用PerlBrew。 PerlBrew 允许您构建用户拥有的 Perl 版本。事实上,您可以为该用户安装多个版本的 Perl 并在它们之间切换。 (可能 5.20.1 版本存在影响您的错误,您需要回退到 Perl 5.18)。
由于它是用户安装的,因此很容易保持最新状态。您可以安装新版本或在一个版本的 Perl 或另一个版本之间切换,只需一个命令。
CentOS 与 RHEL 保持同步,而不是 Fedora,后者是 Red Hat 的前沿发行版。因为它是企业版,CentOS 中的软件包版本通常比当前可用的版本要旧得多。这是出于稳定性原因。您不希望您的业务因为最新更新中引入的错误而崩溃。至少现在是 5.10 版本,而不是多年来的 5.8.9。
【讨论】:
标准 Red Hat 存储库已经过时了。这是一个大问题,也是现在有这么多付费/订阅回购的主要原因。但别担心,也有很好的免费的。 Here are a few 得到 CentOS 的支持。您应该能够在其中之一中找到您正在寻找的 Perl 版本。
您也可以自己构建 Perl(只能作为最后的手段!!!),但正如 Sam Varshavchik 所说,请确保以不干扰系统的方式构建它。通常,您希望使用make altinstall 而不是make install。这个方法适用于我的 Python,它也应该转换为 Perl。
【讨论】:
/usr/local/bin 而不是/usr/bin 中,因此不会篡改'system perl'。我已经这样做了好几次了。 (使用“system perl”可能是个坏消息,因为您可能会破坏一些系统处理脚本)。
如果没有更新版本的 Perl 作为 CentOS 更新,您有两种选择:
1) 将您的服务器更新到较新版本的 CentOS 以安装您需要的较新版本 Perl。
2) 将源代码下载到 Perl,然后自己构建。
请注意#2。如果你这样做,你必须配置和安装 Perl 的更新版本,使其不会以任何方式覆盖或干扰现有的 CentOS perl 包。 CentOS 中的许多其他软件包都依赖于 Perl,除非您在这些方面有足够的经验,否则几乎可以保证构建您自己的 Perl 版本,然后将其转储到现有系统 Perl 软件包之上,覆盖它,将导致系统不稳定,出现随机、偶然、神秘的故障。
【讨论】: