我目前支持运行 FreeBSD 9.2 和 10 的设备。我需要以某种方式安装比这些 FreeBSD 版本可用的版本更新的 archivers/libarchive 版本(3.2.1 似乎首先在 11.0 中可用)。我也无法更改 /usr/ports 中的任何内容(也就是说,我需要将新的 libarchive 端口保存在完全不同的目录中)。此外,make
据我所知,组装设备环境的构建脚本只能用于编译端口。
我自己构建libarchive 3.2.1的想法是:
从 SVN 的 ports/tags/RELEASE_11_0_0/ 中检出 ports 树,然后只留下 libarchive 及其依赖项,以及 ports/Mk 目录的内容。
cd path/to/new/ports/arhivers/libarchive 并运行,可能通过 指定 d .mk 文件
make
的备用搜索路径。是否还可能更改变量的值?.include
-I
PORTSDIR
我是否遗漏了什么 (我的方法是否有效..?)?有没有更好的方法来实现这一点?
答案1
1)无需升级基础系统的标准方法。 zfs snapshot
旧港口,从新港口检查头。尝试构建它。不幸的是,这有 80% 的失败几率,因为 FreeBSD 端口树本身从 9.x 到 10.x 发生了很大变化。如果失败,请回滚端口树。
2)Solaris 方式。从源代码构建到自定义PREFIX
。获取源代码 tarball,将其解压到〜/ src / libarchive, 安装开发/gmake,语言/gcc48,开发/autoconf269如果合适,tar xvzf
或者其他什么,则 cwd 到提取的路径,./configure --prefix /usr/local/libarchive && gmake all install
(简短讨论)。然后以相同的方式使用二进制文件或与本地安装的库链接。
4)为 9.2 端口树创建您自己的端口版本。将端口复制到〜/ ports / libarchive,将 tarball 版本替换为 3.2.1,在 Makefile 中编辑端口版本(可能还有CONFIGURE_ARGS
)并pkg-plist
相应地编辑 。这将需要一些时间,并且很可能在第一次或第二次尝试时会失败,但似乎是可行的(我简要查看了端口)。
5)最方便的方式。将旧版 9.2 升级到 10.3,因为拥有这个博物馆古董的唯一原因是拥有一组封闭代码的自定义二进制文件,这些二进制文件已被证明在新的 ABI 下会崩溃,即使misc/compat9x
安装了端口也是如此。我从未见过这样的事情。