以非特权用户身份交叉编译 FreeBSD 软件包

以非特权用户身份交叉编译 FreeBSD 软件包

我的目标是将二进制文件从 amd64 FreeBSD 主机交叉编译到 armv6 RaspberryPi FreeBSD 目标。

我遇到的问题是我需要成为 root 才能make install执行我的命令make PREFIX=/home/arm/install_dir NO_PKG_REGISTER=1 install。更好的是使用make package它更容易转移到目标。

问题是,虽然我系统的唯一管理员和具有 root 功能,我想确保不会因错误make install(例如我省略PREFIX=或 的地方NO_PKG_REGISTER=1)而损害主机系统。

作为预防措施,我以单独的用户身份进行所有构建,arm以帮助防止我无意中在主机上安装arm二进制文件。此外,该用户还有自己的 FreeBSD 源代码和 ports 树的副本,与 和/usr/src分开/usr/ports

有没有办法make在没有 root 访问权限的情况下创建包?

或者我可以有信心PREFIXNO_PKG_REGISTER/或make package将防止我的主机被不适当的二进制文件污染吗?

编辑:根据http://forums.freebsd.org/showpost.php?p=1518&postcount=7, PREFIX 方法不好......嗯。我的意思是 DESTDIR 吗?

答案1

端口的交叉编译不是受支持的配置。作为非特权用户构建软件包也是如此。

它可能有效,但有时却无效。

我认为设置 chroot 是一个好主意,因为它可以防止您意外地在主机系统上安装 ARM 二进制文件。监狱也可以,但不是必需的。

相关内容