EhevuTov Asked: 2012-07-07 20:12:12 +0800 CST2012-07-07 20:12:12 +0800 CST 2012-07-07 20:12:12 +0800 CST 使用端口系统在 FreeBSD 9 上将我现有的 Perl 5.14 升级到 Perl 5.16 的最简单方法是什么? 772 我在 FreeBSD 上使用 ports 系统。使用端口升级 Perl 的最简单方法是什么?我目前卸载所有 perl 及其依赖项。我认为会有一种很酷的方法来升级 Perl 及其所有依赖项。那会是什么? perl freebsd 2 个回答 Voted Best Answer arved 2012-07-08T03:18:05+08:002012-07-08T03:18:05+08:00 请参阅 /usr/ports/UPDATING 20120630 中的条目详细描述了如何使用 portmaster 或 portupgrade 进行更新 antiduh 2013-06-18T07:52:13+08:002013-06-18T07:52:13+08:00 这是 .. 更手动的方法。 perl-after-upgrade 应该可以解决大多数文件的问题(像 irssi 这样的二进制文件除外),但是,我发现它不再那么有效了,所以我只是手动完成所有操作。 在升级 perl 之前,我会关闭任何依赖它的东西,因为这些东西很可能在升级过程运行时中断。对我来说,这通常意味着关闭 SpamAssassin,这实际上意味着我只需关闭 postfix 几分钟即可。 我还会将当前的依赖列表转储到 perl - 上pkg info -r perl,以防万一您不得不回退到手动升级所有内容。 首先,构建并安装 perl 版本。你所有的 perl 模块都将被破坏,因为它们仍然安装在旧的 perl 目录中。使用 portmaster 或 portupgrade 强制重建所有 perl 模块:portmaster p5-对我有用。 然后去寻找依赖于 perl 的二进制文件,这些二进制文件已损坏 - 我为此使用 libchk。只需运行它并查找对 libperl.so 具有不可解析引用的二进制文件。用于pkg which找出哪个端口安装了该二进制文件,如果从名称上看不明显,然后使用 portmaster 或 portupgrade 重建该端口。 您可能可以开始恢复基于 perl 的服务,例如 SpamAssassin。 然后我浏览 /usr/local/lib/perl5 目录,看看是否还有不应该存在的文件。pkg which再次找出它们的来源,升级这些端口,重复直到它为空或每个文件都无人认领。 portmaster -r perl-将是执行此操作的廉价且简单的方法,但这可能会花费数小时来重建实际上不需要重建的东西。这种方式可能要快得多,但它需要更多的工作并且需要更多的摆弄。
请参阅 /usr/ports/UPDATING 20120630 中的条目详细描述了如何使用 portmaster 或 portupgrade 进行更新
这是 .. 更手动的方法。
perl-after-upgrade 应该可以解决大多数文件的问题(像 irssi 这样的二进制文件除外),但是,我发现它不再那么有效了,所以我只是手动完成所有操作。
在升级 perl 之前,我会关闭任何依赖它的东西,因为这些东西很可能在升级过程运行时中断。对我来说,这通常意味着关闭 SpamAssassin,这实际上意味着我只需关闭 postfix 几分钟即可。
我还会将当前的依赖列表转储到 perl - 上
pkg info -r perl
,以防万一您不得不回退到手动升级所有内容。首先,构建并安装 perl 版本。你所有的 perl 模块都将被破坏,因为它们仍然安装在旧的 perl 目录中。使用 portmaster 或 portupgrade 强制重建所有 perl 模块:
portmaster p5-
对我有用。然后去寻找依赖于 perl 的二进制文件,这些二进制文件已损坏 - 我为此使用 libchk。只需运行它并查找对 libperl.so 具有不可解析引用的二进制文件。用于
pkg which
找出哪个端口安装了该二进制文件,如果从名称上看不明显,然后使用 portmaster 或 portupgrade 重建该端口。您可能可以开始恢复基于 perl 的服务,例如 SpamAssassin。
然后我浏览 /usr/local/lib/perl5 目录,看看是否还有不应该存在的文件。
pkg which
再次找出它们的来源,升级这些端口,重复直到它为空或每个文件都无人认领。portmaster -r perl-
将是执行此操作的廉价且简单的方法,但这可能会花费数小时来重建实际上不需要重建的东西。这种方式可能要快得多,但它需要更多的工作并且需要更多的摆弄。