ubuntu源码编译工具-在Ubuntu上编译和安装软件就是这么简单

编译软件

Ubuntu 存储库拥有数千个软件,如果添加第三方存储库,您可以获得更多! 但在某些情况下,您可能需要从源代码编译并安装软件(相关说明请移至CompilingEasyHowTo):

1、仓库中的软件包不可用;

2、仓库中的软件包太旧;

3、对于仓库中的软件包,由于个人原因导致程序部分功能无法使用;

4、仓库中的软件包可能存在一些已经被业主修补过的Bug;

5.您想通过测试帮助作者修复个别bug;

6.或者只是想从头开始ubuntu源码编译工具,尝试自动编译一个程序;

环境

您需要根据编写相关程序的语言来编译软件。 需要编译的应用程序通常是用C和C++编写的。 在这些情况下,您需要安装编译器 gcc,可以通过安装 build-essential 包来获得。 一般来说,需要以下命令操作来实现:

sudo apt-get install build-essential

为了运行configure和autogen.sh文件,需要更多程序:

sudo apt-get install automake

最后,需要 CheckInstall 才能将程序安全地加载到您的系统中:

ubuntu源码编译工具-在Ubuntu上编译和安装软件就是这么简单

sudo apt-get install checkinstall

如果程序是用java编写的,那么还需要java运行时和编译器。 您可以按照java页面上的说明安装java。 有时你需要一个基于java的构建工具ant,可以从ubuntu存储库获取该包:

sudo apt-get install gcj

如果程序是用解释型语言编写的,比如python、perl,那么只需要一个解析器,ubuntu中默认安装了这个解析器,就可以直接运行程序了。 大多数情况下,你可以直接从ubuntu仓库安装这些程序运行所必需的python和perl程序。 有关解释语言的更多信息,请参阅文末!

你真的需要编译它吗?

如果您编译软件只是因为软件存储库中没有该软件,那么请在 UbuntuPackageSearch 中搜索该软件包! 许多作者还制作自己的 PPA,这些 PPA 也可以添加到您的存储库中。 许多作者制作 PPA 源的地方是 Launchpad。 您还可以使用下面的命令通过命令行搜索相关软件的关键字(实际上,请使用实际术语而不是关键字)!

apt-cache search 

获取来源

通常,源码包会在作者自己的网站上以某种方式提供! 常见格式为 tar.gz 和 tar.gz2 或 zip。 您可以使用文件解压工具通过以下命令来解压它们:

tar -xvf file.tar.gz tar -xvf file.tar.bz2 unzip file.zip

有时,你还需要使用CVS来切割边缘代码,可以通过sudoapt-getinstallcvs安装CVS。 例如,要检索 NetworkManager 的源代码,请编写以下命令:

cvs -d :pserver:anonymous@anoncvs.gnome.org:/cvs/gnome login

cvs -d :pserver:anonymous@anoncvs.gnome.org:/cvs/gnome co NetworkManager

如果您是从CVS安装,请参考文末的介绍。

有很多软件包,您可以使用 Bazaar (sudoapt-getinstallbzr) 从上游获取当前代码,而无需自动查找版本控制位置。 例如:

bzr get lp:network-manager

三步编译

Linux上大部分需要源码安装的程序都可以通过./configure这三个步骤来安装; 制作; makeinstall,而最困难的步骤往往是在./configure步骤,所以前面几个步骤可以很轻松的完成。

配置

configure 是一个执行以下操作的脚本

1. 用于检测计算机构建包所需的完整性;

2.帮助您根据需要更改默认路径;

3.用于激活/禁用编译器中的各种选项;

4.用于更改程序安装路径;

您可以通过执行以下命令来查看特定配置脚本提供的选项和功能:

./configure --help | less

例如,默认配置脚本将指定安装在/usr/local 下。 如果要更改路径,可以执行如下所示的配置脚本命令:

./configure --PREFIX=/opt

如果你确实想从头开始编译,可以仔细阅读README或INSTALL文件。 您将看到需要哪些软件,它们在这些文件中的名称通常与在软件包系统中的名称不同。 然后,就可以使用apt-cache工具来查找对应的包了。 如果你已经通过仓库编译了包,还有一个技巧,就是使用以下命令安装包的依赖项:

sudo apt-get build-dep 

这可以确保此后可以安装所有必需的包,这样configure就不会报告过时依赖项的错误,否则您将不得不继续编译依赖项。

查找并修复配置错误

仅在以下情况下,配置可能会失败:

1、编译时需要-dev包;

2. 编译GNOME应用程序需要相应的gnome级别; 编译 KDE 应用程序时,需要 kde-level;

3、C和C++库的名字总是以lib开头,所以如果./configure报错说缺少库foo,那么就需要安装libfoo-dev包;

4. 如果configure显示“Xincludes”,那么您可能需要安装以下软件包“xlibs-dev、xlibs-static-dev、x-window-system-dev”。 请注意,有时只有 xorg-dev 和 x-dev 可以。 -Racecar56UnderJaunty 需要安装 xorg-dev 和 libx11-dev。

5. 要检查需要哪些软件包,可以使用 auto-apt 工具或 apt-file 工具(auto-apt 可能更快):

sudo apt-get install auto-apt
sudo auto-apt update
auto-apt search missing-file.h

使用auto-apt和以前一样ubuntu源码编译工具,如果把auto-apt替换成auto-apt!

6、如果编译软件禁用了失败的选项,可以使用./configure-disable-FEATURE选项。

7.如果您自己无法解决遇到的问题,您也可以向ubuntu寻求官方帮助。

如果根本没有configure文件,最好检查一下configure.ac文件(需要仔细阅读INSTALL和README文件)。 如果configure.ac文件存在,则意味着开发人员忘记创建最终的配置文件。 可以创建,但是需要autoconf包:

sudo apt-get install autoconf

安装成功后,输入:

autoconf

运气好的话,应该会创建一个工作配置文件。

编译

幸运的是,配置步骤已经完成,可以开始实际的编译和安装了。 很简单的:

make

现在,如果一切顺利,您的源目录中应该有该程序的工作副本,您可以通过运行以下命令来尝试:

src/program_name

如果程序的这一步失败,则可能是程序中的错误。 这时候你最好联系作者,告诉他程序的问题。

安装包

如果一切顺利,您可以通过键入以下命令来安装该程序:

sudo checkinstall

ubuntu源码编译工具-在Ubuntu上编译和安装软件就是这么简单

使用 CheckInstall 创建一个 .deb 包,以后可以轻松删除!

但是,如果由于某种原因您不想使用 CheckInstall,这是安装的最后手段(不推荐):

sudo make install

注意:

1. 如果程序是内核的组件,还需要 gcc-3.4 (onbreezy) 和 kernel-headers,稍后可以使用 sudoapt-getinstallgcc-3.4linux-headers-$(uname-r) 安装它们。 请注意,每次内核升级后,此类内核组件也必须重新编译,并且还必须重新下载新的标头。 要编译完整的内核,请参阅 KernelCompile。

2.如果要重新编译现有的debian软件包,可以使用dpkg-buildpackage-rfakeroot。 如果缺少某些包,构建脚本会告诉您包的名称!

3、如果是从revisioncontrol(CVS、Bazaar等)编译,一般需要获取revisioncontrol的源代码,然后减少一步运行autogen.sh脚本为你生成configure脚本。

解释性语言

普通的解释型语言如果不安装所需的组件将无法运行。

1、perl的建立一般与foo::bar类似(如xml::parser),但它的包名为ibfoo-bar-perl(libxml-parser-perl)。 通过 apt-cache 搜索可以帮助您找到名称稍有更改的文件,例如:

apt-cache search foo | grep bar apt-cache search xml | grep parser

2、python组件称为python-module,因此pythonmysql的建立称为python-mysqldb。 这里的映射很少是一致的,apt-cache 可以提供帮助! 进行如下搜索:

apt-cache search python | grep mysql

一般来说,需要的帮助文档都在需要安装的组件之中!

3. ruby​​组件的命名有点类似于perl,因为activesupport是libactivesupport-ruby[1.8|1.9](如果没有特殊要求,默认是1.8)。 其实你也可以安装rubygems这个ruby包管理平台,但是debian/ubuntu关闭了一些升级功能,以保证rubygems可以使用apt正常工作。 如果你想让 ruby​​ 保持最新,请看看 RubyOnRails。

apt-cache search ruby | grep activesupport

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悟空资源网 源码编译 ubuntu源码编译工具-在Ubuntu上编译和安装软件就是这么简单 https://www.wkzy.net/game/176075.html

常见问题

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务