为什么有些软件包使用“make install”,而其他软件包则使用“sudo make install”

为什么有些软件包使用“make install”,而其他软件包则使用“sudo make install”

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

然后我尝试安装 OGG 编码器,这需要 './configure, make,须藤make install' - 我不能这样做,因为我没有 VPS(而且我不想每月为 VPN 支付 15 美元只是为了安装编解码器)。

我对这一切都很陌生,我知道 sudo 给了你权限 - 但我一直在试图找出答案为什么确切地说,有些make install需要 sudo 访问权限,有些则不需要。我还没有找到答案。

答案1

通常我会尝试不加sudo任何操作就运行它——有时它会起作用。有时,软件包创建者认为sudo这是必需的,他们根据自己的喜好使用它,或者选择将东西安装在系统的非用户区域。有时这是必要的,但很多时候却不是。

我看到的使用的另一个常见原因sudo是第三方的博客文章,这些文章解释了如何安装软件,他们并没有花更多的精力向您解释如何在没有sudo特权的情况下安装它,而是告诉您使用,sudo因为这个人写这篇文章只是sudo为了一切用途,这并不是一个好主意。

从理论上讲,软件包需要的唯一原因sudo是它是否需要(或决定)将自身安装到/以其他方式修改只能通过管理员访问权限修改的系统区域。

一般来说,越来越少的软件包仍在这样做,因为用户在没有访问权限的情况下安装某些软件的需求sudo正在增长。

答案2

这取决于您是否安装它或对于所有用户。 (大多数情况下。无论谁将使用最终功能,某些东西(例如内核模块)都需要 root 访问权限。)

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

那么:您的库/程序是用于或者对于您系统上的所有用户?

答案3

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

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

相关内容