在 FreeBSD 系统上,说明重建所有 p5-* 端口- 我怎么做?
介绍一下背景...我是一位经验丰富的 Linux 用户,正在试用(并且喜欢)最新的 PC-BSD(PCBSD9.2-RELEASE-x64)。我之前安装了简单的包和端口都确定了,我想我会尝试一些更奇特的东西——mono 和 F#:
cd /usr/ports/lang/mono && make install clean BATCH=yes && \
cd /usr/ports/lang/fsharp && make install clean BATCH=yes
我收到此错误输出:
configure: error: perl module Locale::gettext required
===> Script "configure" failed unexpectedly.
Please read UPDATING entry 20130612
(http://svnweb.freebsd.org/ports/head/UPDATING?r1=320405&r2=32067) and
PR/184276 (http://www.freebsd.org/cgi/query-pr.cgi?pr=ports/184276) to fix
your Perl installation if you got the error message "configure: error: perl
module Locale::gettext required".
第一个链接不起作用(为什么?)但第二个链接(http://www.freebsd.org/cgi/query-pr.cgi?pr=ports/184276) 解释说“由于 20130612 布局更改,安装 Perl 的目录结构也已被修改...”并且修复方法是:
rebuild all p5-* ports
我认为所有p5-*ports 表示所有 Perl 5 端口。如何找到我已安装的 Perl 5 端口?并重建所有端口?
答案1
通常,您可以查阅文件内容/usr/ports/UPDATING
以了解如何处理非平凡升级。通常,它为使用 portupgrade、portmaster 或二进制 pkgng 包的用户提供解决方案。
以下是 20130612 条目中的说明更新文件:
...
Please rebuild all Perl ports and all ports that depend on it:
# portmaster -r perl
or
# portupgrade -rf perl
or
# pkg install -fR perl
第一条指令针对的是使用ports-mgmt/portmaster
端口的系统,第二条指令针对的是使用ports-mgmt/portupgrade
端口的系统,第三条指令针对的是使用二进制 pkgng 包的系统。
恐怕如果您想避免安装端口管理器/辅助工具,您的工作会更加困难,因为您必须手动检查每一个 Perl 5 端口并运行make deinstall && make reinstall
。
答案2
尝试一下portupgrade -f /var/db/pkg/p5*
。这将重建所有已安装的p5*
端口。
portupgrade
不是基本系统的一部分。您可以在 中找到此移植ports-mgmt/portupgrade
。