FreeBSD 如何重建所有 p5-* Perl 5 端口

Son*_*ton 6 freebsd

在 FreeBSD 系统上,说明说要重建所有 p5-* 端口- 我该怎么做?

一点背景知识...我是一名经验丰富的 Linux 人,正在试用(并喜欢)最新的 PC-BSD (PCBSD9.2-RELEASE-x64)。我之前已经安装了简单的包和端口,我想我会尝试一些更奇特的 - 单声道和 F#:

cd /usr/ports/lang/mono && make install clean BATCH=yes && \ 
cd /usr/ports/lang/fsharp && make install clean BATCH=yes
Run Code Online (Sandbox Code Playgroud)

我得到这个错误输出:

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".
Run Code Online (Sandbox Code Playgroud)

第一个链接不起作用(为什么不?)但第二个链接(http://www.freebsd.org/cgi/query-pr.cgi?pr=ports/184276)解释说“Perl所在的目录结构安装也已修改.... [作为] 20130612 布局更改的结果”,修复方法是:

rebuild all p5-* ports
Run Code Online (Sandbox Code Playgroud)

我假设所有p5-*端口都意味着所有 Perl 5 端口。如何找到我安装的 Perl 5 端口?并重建所有这些?

use*_*776 7

通常,您可以查阅/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
Run Code Online (Sandbox Code Playgroud)

第一条指令针对使用ports-mgmt/portmaster端口的系统,第二条指令针对使用端口的系统ports-mgmt/portupgrade,第三条指令针对使用二进制 pkgng 包的系统。

恐怕如果您想避免安装端口管理器/帮助器工具,您的工作会更加困难,因为您必须手动检查每个 Perl 5 端口并运行make deinstall && make reinstall.


Vin*_*inz 5

试试portupgrade -f /var/db/pkg/p5*。这将重建所有已安装的p5*端口。

portupgrade不是基本系统的一部分。您可以在ports-mgmt/portupgrade.