私は次のように構築しているコンパイラのソースコードを持っています:
/path/to/srcdir/configure --prefix=/path/to/installdir
make
make install
結果として得られる「installdir」を他のマシンに配布したいと考えています。これは、3 段階のビルド プロセスを経ることなく、誰でもコンパイラ バイナリを使用できるようにするためです (配布 tarball に installdir を含めているだけです)。
テストのために、インストールディレクトリを別のユーザーの別のマシンにコピーし、次のように、コピーしたばかりのバイナリを使用してテストプログラムをコンパイルしようとしています:
installdir/bin/ucc -mp -o test load_bl.c
次に、次のようなエラーが表示されます。
cc1: error: /home/sghosh/normalbuild/installdir/open64-gcc-4.2.0/include: Permission denied
cc1: error: /home/sghosh/normalbuild/installdir/open64-gcc-4.2.0/lib/gcc/x86_64-redhat-linux/4.2.0/include: Permission denied
cc1: error: /home/sghosh/normalbuild/installdir/open64-gcc-4.2.0/x86_64-redhat-linux/include: Permission denied
これは、ビルド マシンで/home/sghosh/normalbuild/install
指定されているものです--prefix
。バイナリはinstalldir の下のディレクトリにいくつかのファイルを必要としますが、それは に記載されているパスでconfigure
あるため、まだそこを探しているので、現在のマシンの同じディレクトリを調べたいと思っています。参考までに、私は sudo/root 権限を持っていません。installdir/bin/ucc
open64-gcc-4.2.0
--prefix
--prefix
この場合、初期パスを調べずに、どのマシンでも動作する (一度ビルドすると、どこでもソートを使用する) バイナリ ディストリビューションを作成するにはどうすればよいでしょうか?
スーパーユーザーで同様の質問がありましたが、多くの編集が行われ、新しい質問への回答が得られなかったため、ここに書きます。