我知道有一系列标准命令用于编译和安装仅以源代码形式提供的软件包。它是什么?
答案1
通常都是这样的。
./configure
这(在源代码所在目录中执行时)会创建一个 Makefile,其中包含用于构建程序的规则。在这里您可以更改编译的行为(即使用非默认选项编译程序)。
make
这将根据 Makefile 中指定的规则构建程序。
make install
这通常以 root 身份执行(或用来sudo make install
避免以 root 身份登录),并在系统中安装已编译的程序。
[编辑]
作为米哈伊·林巴桑值得注意的是,通常可以将 --prefix 选项传递给 ./configure 来确定程序的安装位置。如果您在目标目录中拥有必要的权限,您甚至不需要使用 sudo(或以 root 身份)运行 make install。
例如,如果你这样做
--prefix=/home/username/whatever/directory/here
您应该能够在没有 root 权限的情况下安装此程序。我应该指出,这将限制只有那些在您指定的目录中具有执行权限的人才能使用该程序。因此,如果您需要系统范围的安装,您可能应该使用默认解决方案(使用 root 权限运行 make install)。
Mihai 还提醒你可以通过运行
make uninstall
(同样,如果您在 configure 中使用了默认选项,则需要以 root 身份或使用 sudo),但这要求您在安装程序后保留构建目录。也就是说,删除已编译程序的源目录,以便稍后再删除它,这不是最佳做法。
答案2
当我获得应用程序源代码时,我做的第一件事就是阅读非常标准的 README/INSTALL 文件。它们通常会告诉我需要做什么。它们告诉我在编译之前需要安装哪些依赖项才能获得我想要的所有功能。它们告诉我需要做什么来确保安装安全。
less INSTALL
less README
花 3-5 分钟阅读这些文档,它们可以为您节省大量时间。
答案3
- tar -xzvf 软件包.tar.gz
- cd 包/
- 更少 安装
- ./configure --with-options
- 制作
- 进行检查
- 安装
- 使清洁
这些步骤假设包正确编译,所有依赖关系都得到满足,并且“检查”目标存在并通过。
答案4
对于 ./configure,您可能希望首先使用 ./configure --help,因为这将显示可以传递给 configure 的配置选项。如果您在编译时遇到问题或不想要软件包提供的某些支持,这将特别有用。
make check 有时也会被 make test 替代。我建议在安装之前对要编译的任何软件尝试这些操作。