当我执行“make install”时,它不会创建目录

Posted

技术标签:

【中文标题】当我执行“make install”时,它不会创建目录【英文标题】:when I do a 'make install' it does not create Directory 【发布时间】:2014-01-15 22:44:20 【问题描述】:

这是我第一次尝试使用 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

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

【问题讨论】:

【参考方案1】:

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

没错。它无法创建/usr/local/bin/mhsetroot

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

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

另外,我需要在“local/bin”上设置什么权限,这样“make install”才能工作,而不必先处于“sudo”模式?

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

make DESTDIR=/some/writable/path install

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

【讨论】:

是的,这就是大脑放屁而已-我忘了-我正在安装而不是 sudo install-问题已解决【参考方案2】:

尝试使用 sudo make install 命令,因为您需要为此具有 root 访问权限。 所以不要在命令中输入make install,只要你 获取权限错误,尝试将sudo 放在命令开头,然后输入root 密码。有用。 :)

【讨论】:

【参考方案3】:

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 两个部分。

【讨论】:

以上是关于当我执行“make install”时,它不会创建目录的主要内容,如果未能解决你的问题,请参考以下文章

Berkeley DB:“make install”在 Linux 上失败

使用 make install 安装 libssh 构建时出错

redis执行make后就能用了,无需执行make install

当可执行文件派生另一个可执行文件时,不会创建 gmon.out

apt-get install 与 make install 的区别 linux

为啥linux下要configure然后make make install