从源头构建的正确方法


12

我以普通用户身份登录。我应该使用:

./configure && make && make install

要么

sudo ./configure && sudo make && sudo make install

要么

./configure && make && sudo make install

安装软件包时。

有人可以解释这些差异。

我希望所有用户都能使用它。



1
您应该从ubuntu存储库或PPA安装软件。如果遇到了尚未打包的内容,请随时考虑开始自己的PPA。这样,您将保持系统清洁,也将为其他人提供软件包,并且免费赠金最终将吸引更多测试人员。
vtest 2010年

Answers:


15

您的第三个版本是正确的,./configure && make && sudo make install。由于您不尝试在系统目录中写入文件,因此可以以普通用户的身份进行制作和配置,make install通常会尝试将二进制文件复制到/ root / bin或/ bin,这需要root用户权限才能进行写入。


...,并且不应将其写入,因为它们的内容由软件包管理来管理。
reinierpost 2010年

2
您甚至可能会创建一个用户local,然后发布一个chown -R local /usr/local,然后使用来安装软件,sudo local make install这样一来,当软件包写在下面/usr/local而不是其他地方时,系统会警告您(这可能会破坏软件包管理)。
reinierpost 2010年

如果该软件包是根据gnu编码标准构建的,则原始的“ configure && make && sudo make install”将仅安装在/ usr / local中,而不安装在/ usr / bin或/ bin中。
威廉·珀塞尔2011年

4

您需要最新版本:

./configure && make && sudo make install

可以在您的本地文件夹中进行配置和制作,但是您需要root权限才能安装。该命令完成了它。

确保要安装的应用程序不在软件包管理器中。通常,为系统使用预编译的软件要比查找所有依赖项进行编译要容易得多。




2

&&由原始shell解析。将一个sudo放在前面只会影响配置。最后一个选项最有意义,因为它将以常规用户身份进行配置和编译,然后安装结果供所有人使用。

一个警告是,某些配置脚本将检测到它们正在以非root用户身份运行,并创建安装到$ HOME或类似文件中的makefile。在这种情况下,您也希望“ sudo ./configure”。如果您运行configure或make作为root用户,则您在常规用户目录中会遇到一些root拥有的文件的烦恼。


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.