如何在古老的 FreeBSD 版本上使用新的端口?

如何在古老的 FreeBSD 版本上使用新的端口?

所以我公司里仍然运行着一些旧的 FreeBSD 版本(6.4、8.4),我想安装和更新一堆工具,比如 Python 2.7、Midnight Commander、Tmux、Vim 等等。不管怎样,我似乎没有机会使用pkg(pkgng)。对于这个问题的范围,我们只考虑 FreeBSD 6.4。

现在可以轻松获取最新端口http://ftp.freebsd.org/pub/FreeBSD/ports/ports/并用它替换本地 ports 文件夹,但这只会带来痛苦。

显然pmake已经过时了,应该首先“以某种方式”更新。当我刚刚尝试时任何 make/usr/ports替换原来的后,/usr/ports我最终会遇到如下错误:

[root@fbsd6_32 /usr/ports/editors/vim-lite]# make
"/usr/ports/Mk/bsd.options.mk", line 287: Need an operator
Unknown modifier 't'

Unknown modifier 't'

Unknown modifier 't'

Unknown modifier 't'

Unknown modifier 't'

"/usr/ports/Mk/bsd.sites.mk", line 1049: Malformed conditional (!empty(_PERL_CPAN_ID) && ${_PERL_CPAN_FLAG:tl} == "cpan")
Unknown modifier 't'

Unknown modifier 't'

Unknown modifier 't'

"/usr/ports/Mk/bsd.port.mk", line 2955: warning: Missing closing parenthesis for defined()
Unknown modifier 't'

"/usr/ports/Mk/bsd.port.mk", line 2955: Malformed conditional (((!defined(OPTIONS_DEFINE) && !defined(OPTIONS_SINGLE) && !defined(OPTIONS_MULTI))  && !defined(OPTIONS_GROUP) && !defined(OPTIONS_RADIO)  || defined(CONFIG_DONE_${PKGBASE:tu}) ||  defined(PACKAGE_BUILDING) || defined(BATCH)))
Unknown modifier 't'
# [...] many many more lines
7 open conditionals:
        at line 5797 (evaluated to true)
       at line 5797 (evaluated to true)
      at line 5797 (evaluated to true)
     at line 5797 (evaluated to true)
    at line 5797 (evaluated to true)
   at line 4910 (evaluated to true)
  at line 4910 (evaluated to true)
make: fatal errors encountered -- cannot continue

make search name=...相应地失败。

我怎样才能从中恢复并开始安装一些最新的端口?假设我需要pmake首先了解最新情况并从中找到它是否正确?http://distcache.freebsd.org/ports-distfiles/,构建并安装它?

答案1

对于 FreeBSD 8.4,您可以升级到论坛帖子中所述的最终补丁级别pkg 命令的问题:

首先升级到目前最新的补丁级别 8.4,即 8.4-RELEASE-p9,看看是否可以解决问题。根据提交消息,8.4 中的 make(1) 应该支持 :tu 和 :tl 修饰符。如果没有,那么这是 portmgr@ 团队的疏忽,应该报告。 8.4 承诺支持至 2015 年 6 月 30 日。

我为我的一台机器这样做了。兼容性很好,特别是在基础设施方面。

该线程的评论之一提出了一种解决方法(请参阅评论#13)通过从发布 tarball 复制 make 程序。

但这可能不适用于像 FreeBSD 6.3 这样古老的东西

或者,你可以按照建议重建您的端口树如何降级 FreeBSD 上的所有端口(也不是一个好的解决方案)。

相关内容