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 服务器提供服务,并且它可能已安装,因此服务器不信任您的构建机器以root身份写入文件的请求。

touch test作为一个简单的测试,看看您是否可以通过以 root 身份运行将一个空文件写入构建目录。如果失败,那么您已经找到了问题的根源。确认它的另一种方法是检查“ mount”的输出,至少确认您的构建目录是通过 NFS 提供的。

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

如果您在挂载输出中看到这样的一行,那么您肯定知道您的构建目录正在被 NFS 挂载。但是,要判断 root 是否受信任,您最终必须检查 NFS 服务器上的设置。

解决问题

解决这个问题的最快方法是在你的构建机器上找到一个本地文件系统并将你的构建目录的内容移动到那里,然后重新运行“ make install”。

于 2016-03-19T01:47:47.190 回答
0

你试过sudo吗?

sudo make install

编辑:

作为 root,您可以将自己添加到 sudoers。如果您无法通过 sudo 获取 root,请尝试

su - root

或者

ssh root@...  
于 2012-05-22T10:18:40.783 回答