如何在Ubuntu上从源代码编译和安装

Ubuntu和其他Linux发行版有广泛的软件包存储库,以节省您自己编译任何东西的麻烦。 但是,有时你会发现一个模糊的应用程序或一个程序的新版本,你必须从源代码编译。

你不必是一个程序员从源代码​​构建一个程序并将其安装在您的系统上; 你只需要知道基本知识。 只需几个命令,你可以从源代码像一个亲。

安装所需的软件

在Ubuntu的软件包仓库中安装build-essential软件包会自动安装从源代码编译所需的基本软件,如GCC编译器和其他实用程序。 通过在终端中运行以下命令来安装它:

sudo apt-get install build-essential

键入Y,然后按提示以确认安装。

获取源程序包

现在你需要你想要的应用程序的源代码。 这些包通常是具有.tar.gz或.tar.bz2文件扩展名的压缩文件。

例如,让我们尝试从源代码编译Pidgin - 也许有一个更新的版本,还没有打包,我们现在想要它。 找到程序的.tar.gz或.tar.bz2文件,并将其保存到您的计算机。

.tar.gz或.tar.bz2就像一个.zip文件。 要使用它,我们必须提取其内容。

使用此命令提取.tar.gz文件:

tar -xzvf file.tar.gz

或者使用此命令提取.tar.bz2文件:

tar -xjvf file.tar.bz2

你最终会得到一个与源代码包名称相同的目录。 使用cd命令输入它。

解决依赖关系

在解压缩目录中,运行以下命令:

。/配置

(请注意,一些应用程序可能不使用./configure。检查应用程序的解压缩文件夹中的“README”或“INSTALL”文件,以获取更具体的说明。

(./部分告诉Bash shell查看“configure”文件的当前目录并运行它。如果省略了./,Bash会在系统目录中找到一个名为“configure”的程序,如/ bin和/ usr / bin。)

./configure命令检查系统是否需要构建程序所需的软件。

除非你幸运(或已经在你的系统上有很多必需的包),你会收到错误消息,表明你需要安装某些包。 在这里,我们看到一条错误消息,说明intltool脚本不存在于他们的系统上。 我们可以使用以下命令安装它们:

sudo apt-get install intltool

安装所需的软件后,再次运行./configure命令。 如果需要安装其他软件,请使用sudo apt-get install命令重复此过程,直到./configure成功完成。 并非所有必需的程序包都会显示错误消息中显示的确切名称 - 您可能需要向Google发送错误消息以确定所需的程序包。

如果你试图编译的程序的旧版本已经在Ubuntu的软件仓库,你可以使用sudo apt-get build-dep命令进行欺骗。 例如,如果我运行sudo apt-get build-dep pidgin ,apt-get将自动下载并安装所有依赖项,我需要编译Pidgin。 正如你所看到的,你需要的许多软件包都以-dev结尾。

./configure成功完成后,您就可以编译和安装软件包。

编译和安装

使用以下命令编译程序:

使

此过程可能需要一些时间,具体取决于您的系统和程序的大小。 如果./configure成功完成,make不应该有任何问题。 当程序编译时,您将看到文本行滚动。

此命令完成后,程序已成功编译 - 但未安装。 使用以下命令将其安装到系统中:

sudo make install

它可能存储在系统上的/ usr / local下。 / usr / local / bin是系统路径的一部分,这意味着我们可以直接在终端中输入“ pidgin ”来启动Pidgin。

如果要以后安装程序的目录,请不要删除程序的目录 - 您可以从目录运行以下命令从系统中卸载程序:

sudo make uninstall


以这种方式安装的程序不会被Ubuntu的Update Manager自动更新,即使它们包含安全漏洞。 除非你需要一个特定的应用程序或版本,不是在Ubuntu的软件仓库,一个好主意,坚持你的发行版的官方软件包。

有很多高级技巧我们没有在这里 - 但希望,编译自己的Linux软件的过程不再那么可怕了。

赞 (0)
分享到:更多 ()