3

私は次のように構築しているコンパイラのソースコードを持っています:

/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/uccopen64-gcc-4.2.0--prefix

--prefixこの場合、初期パスを調べずに、どのマシンでも動作する (一度ビルドすると、どこでもソートを使用する) バイナリ ディストリビューションを作成するにはどうすればよいでしょうか?

スーパーユーザーで同様の質問がありましたが、多くの編集が行われ、新しい質問への回答が得られなかったため、ここに書きます。

4

1 に答える 1

0

このツールを確認してください: https://github.com/pgbovine/CDE

CDE は、一連の Linux コマンドの実行に関連するコード、データ、および環境を自動的にパッケージ化して、インストールや構成を行わなくても別のコンピューターで同じように実行できるようにするツールです。

于 2013-05-27T11:30:23.030 に答える