0

そのチュートリアルhttp://www.tellurian.com.au/whitepapers/multiplegcc.phpに従って、ubuntu 10.04 に gcc 4.7.0 をインストールしようとしています。しばらく依存関係をインストールした後、エラーなしで make を実行できましたが、最後のステップである make install は成功したくなく、許可が拒否されてしまいます。

これが私がしたことです:

../gcc-4.7.0/configure --prefix=/usr/local/gcc/4.7.7 --enable-languages=c,c++
make
su -l
cd /groups/gobj
make install

最後のコマンドの結果:

make[1]: Entering directory `/groups/gobj'
/bin/bash ../gcc-4.7.0/mkinstalldirs /usr/local/gcc/4.7.7 /usr/local/gcc/4.7.7
make[2]: Entering directory `/groups/gobj/fixincludes' 
rm -rf /usr/local/gcc/4.7.7/libexec/gcc/x86_64-unknown-linux-gnu/4.7.0/install-tools
/bin/bash ../../gcc-4.7.0/fixincludes/../mkinstalldirs /usr/local/gcc/4.7.7/libexec
...
rm -f /usr/local/gcc/4.7.7/share/info/gccinstall.info
if [ -f doc/gccinstall.info ]; then \
      for f in doc/gccinstall.info*; do \
        realfile=`echo $f | sed -e 's|.*/\([^/]*\)$|\1|'`; \
        /usr/bin/install -c -m 644 $f /usr/local/gcc/4.7.7/share/info/$realfile; \
        chmod a-x /usr/local/gcc/4.7.7/share/info/$realfile; \
      done; \
    else true; fi
if /bin/bash -c 'install-info --version' >/dev/null 2>&1; then \
      if [ -f /usr/local/gcc/4.7.7/share/info/gccinstall.info ]; then \
        install-info --dir-file=/usr/local/gcc/4.7.7/share/info/dir /usr/local/gcc/4.7.7/share/info/gccinstall.info; \
      else true; fi; \
    else true; fi;
build/genhooks -d \
                    ../../gcc-4.7.0/gcc/doc/tm.texi.in > tmp-tm.texi
/bin/bash: tmp-tm.texi: Permission denied
make[2]: *** [s-tm-texi] Error 1
make[2]: Leaving directory `/groups/gobj/gcc'
make[1]: *** [install-gcc] Error 2
make[1]: Leaving directory `/groups/gobj'
make: *** [install] Error 2

私はすでに成功せずに su root、su -、su を試しました。一部のファイルは /usr/local/gcc/4.7.0 に効果的にコピーされますが、プロセスが停止し、root としてログインしているため理由がわかりません。ファイル /groups/gcc-4.7.0/gcc/doc/tm.texi.in が存在することを確認しました。助けはありますか?

4

2 に答える 2

2

スーパーユーザー "root" は通常のユーザーがファイルを作成できるのにファイルを作成できないというのは不可解に聞こえますが、ビルド ディレクトリ (つまり、" make install" を実行したディレクトリ) が NFS サーバーから提供されている可能性があります。サーバーがルートとしてファイルを書き込むというビルドマシンの要求を信頼しないようにマウントされている可能性があります。

touch test簡単なテストとして、 root として実行してビルド ディレクトリに空のファイルを書き込めるかどうかを確認します。それが失敗した場合は、問題の原因を見つけたことになります。それを確認するもう 1 つの方法は、" mount" の出力をチェックして、少なくともビルド ディレクトリが NFS 経由で提供されていることを確認することです。

server:/groups      20G  948M   19G   5% /groups

マウント出力にこのような行が表示された場合、ビルド ディレクトリが NFS マウントされていることが確実にわかります。ただし、ルートが信頼されているかどうかを確認するには、最終的に NFS サーバーの設定を確認する必要があります。

問題の修正

この問題を修正する最速の方法は、ビルド マシンでローカル ファイル システムを見つけ、そこにビルド ディレクトリの内容を移動してから、" make install" を再実行することです。

于 2016-03-19T01:47:47.190 に答える
0

あなたはsudoを試しましたか?

sudo make install

編集:

root として、自分自身を sudoers に追加できます。sudo 経由でルートを取得できない場合は、次のいずれかを試してください。

su - root

また

ssh root@...  
于 2012-05-22T10:18:40.783 に答える