为什么有些软件包使用“ make install”,而另一些软件包使用“ sudo make install”


8

我最近在服务器上安装了LAME编码器,以将wav转换为mp3,并且可以使用./configure; make; make install

然后我尝试安装OGG编码器,并且需要'./configure,make,sudo make install'-我没有VPS(我宁愿不每月为VPN支付15美元,我也无法这样做)安装编解码器)。

我不熟悉sudo,但我知道sudo授予您权限-但我一直在尝试找出为什么有些make installs需要sudo访问而其他人则不需要sudo访问。我还没有找到答案。


您应该能够更改Makefile(或生成Makefile的某些模板)或将命令行选项传递给某些内容(可能是./configure),以使其安装在其他目录中(大概是您不需要sudo访问的目录) )。

Answers:


7

通常,我总是尝试不运行它sudo-有时它可以工作。有时,程序包创建者认为这sudo是必需的,他们会根据自己的喜好使用它,或者选择将其安装在系统的非用户区域中。有时这是必要的,但很多时候不是必须的。

我看到使用的另一个常见原因sudo是在第三方的博客文章中,他们解释了如何安装软件,而不是费力地向您解释如何在没有sudo特权的情况下安装软件,而是告诉您要使用sudo该软件。撰写帖子只是将sudo所有内容用于所有用途,这并不是一个好主意。

从理论上讲,程序包唯一需要的原因sudo是它是否需要(或决定)将自身安装到系统中/否则只能通过管理员访问权限进行修改的系统区域。

一般而言,随着用户安装一些无法sudo访问的软件的需求不断增长,仍然有越来越少的软件包在执行此操作。


2
大多数软件包应该在某处具有配置选项,以便您可以将它们安装在其他位置。使用它们可能需要花费更多的精力,但是如果不能sudo,那就是您所要坚持的。

6

这取决于您是为自己还是为所有用户安装。(通常。诸如内核模块之类的某些东西需要root用户访问权限,而不管谁将使用最终功能。)

提供./configure脚本的大多数程序也接受--prefix=~/bin或,--prefix=~/Local/以便您可以将其安装到主目录中。不是所有的程序提供./configure,但大部分提供一些的机制Makefile,允许您配置安装目标。

那么:您的库/程序是为还是系统上的所有用户使用的?


它们只是供我使用..和,brill!..我使用了./configure --exec-prefix = / home / username / folder --prefix = / home / username / folder,似乎已经通过了对于libogg,libvorbis没有sudo(仅在使用./configure时没有),libtheora和vorbis-tools遇到了一些麻烦,但是还不确定那是什么。我应该能够得到它。谢谢!

3
然后,您可能需要使用命令行选项,例如--theora-path=/home/username/folder在编译其他程序时-请务必阅读README或类似文件,以了解可能需要更改的变量。
sarnold 2011年

0

它主要归结为读取/写入/执行文件权限。Sudo没有受限制的权利。

考虑一下Windows中的管理员帐户,而不是具有受限权限的用户或来宾帐户。一样。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.