【问题标题】:Why do I get permission denied when I try use "make" to install something?当我尝试使用“make”安装某些东西时,为什么我的权限被拒绝?
【发布时间】:2012-02-24 18:22:21
【问题描述】:

我正在尝试安装一些东西,当我尝试在其上运行 make 时,它给我一个错误:Permission denied

我不太喜欢 unix/linux 的通用规则,也不太喜欢用户权限。我最好的猜测是我登录的用户没有运行make 命令的权限,但希望它是其他不允许我安装的东西。

为什么我会得到Permission denied,我应该检查或配置什么才能尝试授予权限?

编辑

错误信息:

gcc -I. -O3 -o pp-inspector  pp-inspector.c
make: execvp: gcc: Permission denied
make: [pp-inspector] Error 127 (ignored)
gcc -I. -O3 -c tis-vnc.c -DLIBOPENSSL -DLIBOPENSSLNEW -DLIBIDN -DHAVE_PR29_H -DLIBMYSQLCLIENT -DLIBPOSTGRES -DHAVE_MATH_H -I/usr/include/mysql
make: execvp: gcc: Permission denied
make: *** [tis-vnc.o] Error 127

【问题讨论】:

  • 我试过了,但得到了与 Jarryd 回答的第一条评论相同的错误

标签: linux command-line permissions makefile


【解决方案1】:

执行chmod 777 -R scripts/,对我来说效果很好;)

【讨论】:

  • 工作!!!只需执行chmod 777 -R yourDirName 其中yourDirName 是包含makeFile 的目录的路径
【解决方案2】:

在许多源代码包中(例如,对于大多数 GNU 软件),构建系统可能知道 DESTDIR make 变量,因此您通常可以这样做:

 make install DESTDIR=/tmp/myinst/
 sudo cp -va /tmp/myinst/ /

这种方法的优点是 make install 不需要以 root 身份运行,因此您不能以 root 身份编译文件(或构建树中的 root 拥有的文件)。

【讨论】:

    【解决方案3】:

    给我们完整的错误信息会更有用。如果它是用于 make install ,那么您可能正在尝试将某些东西安装到系统目录并且您不是 root。如果你有 root 访问权限,那么你可以运行

    sudo make install
    

    或以root身份登录并以root身份执行整个过程。

    【讨论】:

    • 谢谢,更新了我的问题并尝试了sudo,但收到了错误消息ccq is not allowed to run sudo on cpanel03
    • 我想我现在得到了我的问题的答案
    • 所以它说你不允许运行 gcc。看起来您正在安装 cpanel,甚至可能不允许您运行 gcc。
    • 是的,我在 cpanel 上...还有其他方法可以“制作”安装吗?还是只能通过命令行实现
    • 我不知道你的设置是什么。您是在您拥有的机器上还是网络主机的机器上。如果您在自己的机器上,那么总有办法。如果您使用的网络主机已授予您 cpanel 访问权限以管理您的网络服务器,那么您可能无法安装这样的软件。
    【解决方案4】:

    问题通常与挂载点的“安全”设置有关,例如 /tmp

    如果它们已挂载noexec(与cat /etc/mtab 和/或sudo mount 核对),则无权从(临时)文件夹中执行任何二进制文件或构建脚本。

    例如临时重新安装:

     sudo mount -o remount,exec /tmp
    

    要永久更改,请删除 /etc/fstab 中的 noexec

    【讨论】:

    • 谢谢,这很有帮助!你打了一个小错字 'mounte' -> 'mount'
    • @FrankMartin 干杯,修复!
    【解决方案5】:

    虽然列出了一个特定文件,但我收到了与您非常相似的错误消息:

    $ make
    make: execvp: ../HoughLineExtractor/houghlineextractor.hh: Permission denied
    make: *** [../HoughLineAccumulator/houghlineaccumulator.o] Error 127
    
    $ sudo make
    make: execvp: ../HoughLineExtractor/houghlineextractor.hh: Permission denied
    make: *** [../HoughLineAccumulator/houghlineaccumulator.o] Error 127
    

    在我的例子中,我忘了添加一个斜杠来表示该行的继续,如图所示:

    ${LINEDETECTOR_OBJECTS}:\
        ../HoughLineAccumulator/houghlineaccumulator.hh  # <-- missing slash!!
        ../HoughLineExtractor/houghlineextractor.hh
    

    希望对通过搜索引擎登陆这里的其他人有所帮助。

    【讨论】:

      猜你喜欢
      • 2020-05-01
      • 1970-01-01
      • 2022-11-06
      • 1970-01-01
      • 2011-11-11
      • 2016-03-13
      • 1970-01-01
      • 1970-01-01
      • 2012-01-01
      相关资源
      最近更新 更多