2

这是我第一次尝试使用 autoconf,我在实用程序中更改并添加了一些不同的代码,然后我将 make.am 和我需要的其他文件,我修改它们以使用我编写的内容到同一个程序中。因为它与那个一起工作,所以我需要更改的只是名称和版本以及 main.c 和头文件名。当我这样做时,配置,然后,制作,一切都很顺利。当我进入“make install”时,我得到了这个错误,我不知道为什么。

Making install in src
make[1]: Entering directory `/home/userx/Dropbox/mhsetroot-MAKE/src'
make[2]: Entering directory `/home/userx/Dropbox/mhsetroot-MAKE/src'
/bin/bash ../config/mkinstalldirs /usr/local/bin
/usr/bin/install -c mhsetroot /usr/local/bin/mhsetroot
/usr/bin/install: cannot create regular file `/usr/local/bin/mhsetroot': Permission denied
make[2]: *** [install-binPROGRAMS] Error 1
make[2]: Leaving directory `/home/userx/Dropbox/mhsetroot-MAKE/src'
make[1]: *** [install-am] Error 2
make[1]: Leaving directory `/home/userx/Dropbox/mhsetroot-MAKE/src'
make: *** [install-recursive] Error 1

它不允许它创建一个目录。所以,我累了。

mkdir /usr/local/bin/mhsetroot

我得到同样的错误,因此这只是一个权限问题,对吧 如果仅此而已,那么它应该可以在其他人的计算机上运行,​​而不是我的计算机?另外,那么我需要在我的“local/bin”上设置什么权限,以便“make install”可以工作而不必先处于“sudo”模式?

4

3 回答 3

2

尝试使用 sudo make install 命令执行此操作,因为您需要对此具有 root 访问权限。make install因此,每当您收到权限错误时,请尝试sudo输入命令的开头,然后输入 root 密码,而不是输入命令。有用。:)

于 2015-03-11T16:21:45.150 回答
1

我得到同样的错误,因此这只是一个权限问题,对吧?

正确的。它无法创建/usr/local/bin/mhsetroot.

如果仅此而已,那么它应该可以在其他人的计算机上运行,​​而不是我的计算机?

这取决于权限/usr/local/bin是什么。

另外,那么我需要在我的“local/bin”上设置什么权限,以便“make install”可以工作而不必先处于“sudo”模式?

这取决于权限/usr/local/bin是什么。通常您需要root 权限才能在那里安装(例如sudo make install)。或者,您可以设置DESTDIRmake install

make DESTDIR=/some/writable/path install

但这也可能需要更多设置(例如LD_LIBRARY_PATH)。

于 2013-12-30T05:53:28.977 回答
0

make && make install不是一个命令,而是两个。
sudo make && install将以make超级用户身份执行,但该&&部分告诉make install要等到第一部分完成。'make install' 是它自己的命令,所以你需要的是:

sudo make && sudo make install  

这就是我需要在 slackware 上做的事情来构建 efl。我有与 OP 完全相同的错误(搜索它把我带到了这里)。

一个更常见的例子是

sudo apt update && sudo apt upgrade  

其中这些更常见地写为没有“&&”的 2 行。你必须 sudo 两个部分。

于 2018-09-15T20:46:33.300 回答