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

ale*_*ots 8 make sudo software-installation

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

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

我是这一切的新手,我知道 sudo 为您提供了权限 - 但我一直试图找出为什么有些make installs 需要 sudo 访问权限而其他人不需要。我还没有找到答案。

小智 8

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

我看到使用的另一个常见原因sudo是在 3rd 方的博客文章中解释如何安装软件,而不是加倍努力向您解释如何在没有sudo特权的情况下安装它,他们告诉您使用,sudo因为该人写这篇文章只是sudo用于所有事情,这不是一个好主意。

从理论上讲,一个包应该需要的唯一原因sudo是它是否需要(或决定)将自己安装到/以其他方式修改系统的区域,这些区域只能通过管理员访问进行修改。

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

  • 大多数软件包应该在某处具有配置选项,以便您可以将它们安装在其他位置。使用它们可能需要更多的努力,但如果你不能`sudo`,那就是你的问题所在。 (2认同)

sar*_*old 6

这取决于您是为还是为所有用户安装它。(大多数情况下。无论谁使用最终功能,内核模块之类的东西都需要 root 访问权限。)

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

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

  • 在编译其他程序时,您可能需要使用命令行选项,例如 `--theora-path=/home/username/folder` -- 请务必阅读 `README` 或类似文件以了解可能需要哪些变量改变了。 (3认同)