怎样在 Linux 中从源代码编译和安装软件

您想修复软件包中的错误,还是只想修改软件包以满足您的需求? Linux 已为您服务。

大多数 Linux 软件包都是免费和开源的,让您可以根据自己的喜好自由定制或修改任何软件。 此外,您还可以免费查看 Linux 软件包的源代码,以从其他软件项目中学习良好的架构实践和编码模式。

让我们探索怎样在 Linux 上从源代码编译和安装包。

第 1 步:安装所需工具

Linux 为您提供了从源代码编译、构建和安装软件所需的所有必要工具。

大多数 Linux 软件都是用 C 或 C++ 编程语言编写的,因此,您需要 C 或 C++ 编译器。 为了 example、GNU 编译器集合 (GCC) 和 CMake 用于构建您的包。

除此之外,您还需要其他软件包,例如 curl 和获取文本。 根据您的 Linux 发行版,您可以在单个命令中安装所需的工具,如下所示。

在基于 Debian 的发行版(例如 Ubuntu)上:

sudo apt install libz-dev libssl-dev libcurl4-gnutls-dev libexpat1-dev gettext cmake gcc curl

在 Arch Linux 及其衍生产品上:

sudo pacman -S base-devel

在基于 RPM 的发行版上,例如 FedoraRHEL 等:

sudo dnf install dh-autoreconf curl-devel expat-devel gettext-devel openssl-devel perl-devel zlib-devel gcc curl cmake

第 2 步:下载包源代码

对于本指南,我们将从源代码安装 Git 包。 我们之所以选择 Git,是因为它在软件工程师和开发人员中广泛使用。

您可以编译的大多数软件包都可以在相关软件包的官方网站上找到。 您可以使用以下方式下载源代码文件 curl 命令行工具。 或者,您可以使用 wget 或图形用户界面。

将源代码下载到 PC 上的 Downloads 文件夹中,然后使用 cd 命令切换到 Downloads 目录。

cd ~/Downloads

进入 Downloads 文件夹后,您可以使用以下命令下载 Git 源代码 curl 如下。 在本指南中,我们将下载 Git 版本 2.26.2,但您可以随意选择任何版本。

curl --output git.tar.gz https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.26.2.tar.gz

这 curl 命令指定它应该将源代码放在一个名为 git.tar.gz.

下载适用于 Linux 的 Git 源代码

在大多数情况下,源代码将打包在一个压缩文件夹中,以便于下载并更好地组织源代码文件。

要提取压缩文件的内容,您可以使用 柏油 命令。

tar -zxf git.tar.gz

第三步:编译源代码

接下来,转到新提取的文件夹。 在这种情况下,名称将是“git-2.26.2”,当然,如果您下载了不同版本的 Git,文件夹名称会有所不同。

cd git-2.26.2

看一看总是一个好主意 自述文件.md 要么 安装 文件,因为它们包含有关怎样编译和安装软件包的宝贵信息。 这些文件通常位于源代码的根文件夹中。

另一个重要的文件是 配置 脚本。 它检查您要编译的软件包的软件依赖项,如果脚本发现缺少依赖项,您将看到一条错误消息。

通过执行脚本来配置和准备您的源代码。 该命令将创建 制作 您将要编译和安装的软件的文件和配置。

./configure

第 4 步:构建软件包

现在源代码已经配置和编译好了,你可以按如下方式构建软件:

make

make 命令使用 Makefile,其中包含有关怎样构建软件包的必要说明。

编译过程将需要一些时间,具体取决于您计算机的处理能力和包的大小。

第 5 步:安装软件包

如果您已经走到了这一步,那么恭喜您,您已经成功地从源代码编译和构建了 Linux 软件。

在这最后一步中,您将安装刚刚从源代码构建的 Git 软件包。 此命令通过将构建文件复制到 PC 上的正确位置来安装新编译的包。

sudo make install

使用以下命令检查您刚刚安装的 Git 版本:

git --version

输出应该类似于下面的输出。 版本号可能因您下载的软件包而异。

在 Linux 上安装软件的替代方法

本指南研究了怎样使用 Git 作为研究案例在 Linux 上从源代码编译和构建软件。 从源代码安装软件让您可以自由地根据自己的喜好自定义软件,这是一件了不起的事情。

大多数 Linux 发行版在安装软件时为您提供了许多选项。 为了 example,在 Arch Linux 上,你可以使用 Pacman 和 Yay 包管理器。