私の目標は、amd64 FreeBSDホストからarmv6 RaspberryPi FreeBSDターゲットにバイナリをクロスコンパイルすることです。
make install
私が経験している問題は、コマンドを実行するにはルートでなければならないということですmake PREFIX=/home/arm/install_dir NO_PKG_REGISTER=1 install
。より良い方法make package
は、ターゲットに簡単に転送するために使用することです。
問題は、私がはいシステムの単独管理者であり、するmake install
ルート機能を使用すると、間違い(たとえば、PREFIX=
省略)によってNO_PKG_REGISTER=1
ホストシステムが破損しないようにしたいと思います。
arm
予防策として、ホストコンピュータにarmバイナリを誤ってインストールするのを防ぐために、すべてのビルドを別々のユーザーとして実行してください。さらに、ユーザーは/usr/src
FreeBSDソースコードとポートツリーの独自のコピーを別々に持っています/usr/ports
。
make
ルートアクセスなしでパッケージを作成する方法はありますか?
それとも、私のホストPREFIX
が不適切なバイナリで汚染されるのを防ぎますか?NO_PKG_REGISTER
make package
編集:によるとhttp://forums.freebsd.org/showpost.php?p=1518&postcount=7、PREFIXの方法は良くありません...うーん。私の言葉は、デスティル?
答え1
ポートクロスコンパイルはサポートされている構成ではありません。権限のないユーザーでパッケージをビルドする場合も同様です。
うまくいくかもしれませんが、時にはうまくいかないかもしれません。
chrootを設定すると、誤ってホストシステムにARMバイナリをインストールするのを防ぐことができるので、良いアイデアだと思います。刑務所は利用可能ですが、必須ではありません。