为什么我在尝试使用“make”安装某些东西时被拒绝?

我试图安装的东西,这是抛出一个错误:当我尝试运行make Permission denied

我不太喜欢unix / linux的普遍规则,也不太喜欢用户权限。 我最好的猜测是,我login的用户没有运行make命令的权限,但希望这是别的,不允许我安装。

为什么我会获得Permission denied ,我应该检查或configuration什么来尝试授予权限?

编辑

错误信息:

 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 

Solutions Collecting From Web of "为什么我在尝试使用“make”安装某些东西时被拒绝?"

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

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

这种方法的优点是make install不需要以root身份运行,所以你不能以root身份编译文件(或者在你的构建树中拥有root权限的文件)。

给我们整个错误信息会更有用。 如果是用于make install,那么你可能试图安装一些东西到系统目录,而你不是root用户。 如果你有root权限,那么你可以运行

 sudo make install 

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

执行chmod 777 -R scripts/ ,对我来说工作正常;)

我有一个非常类似的错误信息,虽然列出了一个特定的文件:

 $ 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 

希望能帮助从搜索引擎登陆的其他人。

这个问题通常是“安全”设置挂载点,比如/ tmp

如果挂载了noexec (使用cat /etc/mtabcat /etc/mtabsudo mount ),则没有权限执行(临时)文件夹中的任何二进制文件或生成脚本。

例如暂时重新安装:

  sudo mounte -o remount,exec /tmp 

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