我的目标是将二进制文件从 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 访问权限的情况下创建包?
或者我可以有信心PREFIX
和NO_PKG_REGISTER
/或make package
将防止我的主机被不适当的二进制文件污染吗?
编辑:根据http://forums.freebsd.org/showpost.php?p=1518&postcount=7, PREFIX 方法不好......嗯。我的意思是 DESTDIR 吗?
答案1
端口的交叉编译不是受支持的配置。作为非特权用户构建软件包也是如此。
它可能有效,但有时却无效。
我认为设置 chroot 是一个好主意,因为它可以防止您意外地在主机系统上安装 ARM 二进制文件。监狱也可以,但不是必需的。