即使将 --prefix 传递给配置,也使安装权限被拒绝

Posted

技术标签:

【中文标题】即使将 --prefix 传递给配置,也使安装权限被拒绝【英文标题】:make install permission denied even with --prefix passed to configure 【发布时间】:2010-07-11 04:44:06 【问题描述】:

我正在尝试安装 gcc(gcc 的一个分支,而不是 svn 中的主干),我将其配置为:

./configure --prefix=/home/user/myroot/ --enable-languages=c,c++ \
    --disable-multilib --libexecdir=/usr/lib --without-included-gettext \
    --enable-threads=posix --disable-werror --with-arch-32=i486 \
    --with-tune=generic --enable-checking=release --build=i486-linux-gnu \
    --host=i486-linux-gnu --target=i486-linux-gnu

/home/user/myroot 是一个存在的目录。

当我运行 make 时,它​​可以很好地构建 gcc。

但是,当我进行 make install 时,我得到的是:

make[1]: Entering directory `/home/user/gcc/gcc-cjung'
/bin/bash ./mkinstalldirs /home/user/myroot /home/user/myroot
make[2]: Entering directory `/home/user/gcc/gcc-cjung/host-i486-linux-gnu/fixincludes'
rm -rf /usr/lib/gcc/i486-linux-gnu/4.5.0/install-tools
/bin/bash ../.././fixincludes/../mkinstalldirs /usr/lib/gcc/i486-linux-gnu/4.5.0/install-tools
mkdir -p -- /usr/lib/gcc/i486-linux-gnu/4.5.0/install-tools
mkdir: cannot create directory `/usr/lib/gcc/i486-linux-gnu/4.5.0': Permission denied
make[2]: *** [install] Error 1
make[2]: Leaving directory `/home/user/gcc/gcc-cjung/host-i486-linux-gnu/fixincludes'
make[1]: *** [install-fixincludes] Error 2
make[1]: Leaving directory `/home/user/gcc/gcc-cjung'
make: *** [install] Error 2

为什么我指定前缀为 /home/user/myroot 时,它还想复制东西到 /usr/lib?

顺便说一句,如果这很重要,我正在使用 Ubuntu 9.10。我已经安装了 build-essential、gawk、flex、bison 和 libmpfr。

【问题讨论】:

【参考方案1】:

为什么将libexecdir 设置为/usr/lib?这意味着它必须将东西安装到/usr/lib,这是一个您无法写入的目录。

你可能想要--libexecdir=/home/user/myroot/usr/lib

【讨论】:

啊,我看到我失败了。我只是从某个地方复制/粘贴,并没有意识到额外的标志。谢谢!

以上是关于即使将 --prefix 传递给配置,也使安装权限被拒绝的主要内容,如果未能解决你的问题,请参考以下文章

CSS:即使在滚动时也使页脚始终位于页面底部

CSS - 即使行未满也使图像大小相同[重复]

即使在滚动时,也使侧边栏(在 React 中)占据页面高度的 100%

将自定义尾风配置文件传递给 postcss 加载器

如何将权限传递给 Broadcastreceiver?

php 事件日历PRO:即使对于tribe_events短代码,也使tribe_is_week()返回TRUE。