详解深谈Ubuntu编译源码包

系统 Linux
软件源代码需要您亲自Ubuntu编译为二进制的机器代码才能够使用,安装比较耗时,不过您可以自行调节Ubuntu编译选项,决定您需要的功能或组件,或者针对您的硬件平台作出优化。

学习编译时,你可能会遇到Ubuntu编译问题,这里将介绍Ubuntu编译问题的解决方法,在这里拿出来和大家分享一下。可见Ubuntu隶属于linux阵营。顺便问一句楼主既然没有文档何必一定要学ubuntu,还是学有文档的比较方便。Linux系统中,软件通常以源代码或者预Ubuntu编译包的形式提供。 

软件源代码需要您亲自Ubuntu编译为二进制的机器代码才能够使用,安装比较耗时,不过您可以自行调节Ubuntu编译选项,决定您需要的功能或组件,或者针对您的硬件平台作出优化。 

预Ubuntu编译的软件包,通常是由软件的发布者进行Ubuntu编译,您只要将软件拷贝到系统中就可以了。考虑到预Ubuntu编译软件包的适用性,预Ubuntu编译软件包通常不会针对某种硬件平台优化。它所包含的功能和组件也是通用的组合。 
Ubuntu系统中,软件通常以“deb”格式的包文件发布,它是一种预Ubuntu编译软件包。deb包中除了包含已Ubuntu编译的软件,通常还包括软件的拷贝路径、对其它软件包的依赖关系纪录、一个比较通用的配置文件以及软件的描述、版本、作者、类别、占用空间等信息。 

deb软件包命令遵行如下约定: 
soft_ver-rev_arch.deb 
soft为软件包名称,ver为软件版本号,rev为Ubuntu修订版本号,arch为目标架构名称 
例如:azureus_2.4.0.2-0ubuntu2_all.deb 您需要使用“dpkg”命令来管理deb软件包: 
dpkg -i | --install xxx.deb 安装deb软件包 
dpkg -r | --remove xxx.deb 删除软件包 
dpkg -r -P | --purge xxx.deb 连同配置文件一起删除 
dpkg -I | -info xxx.deb 查看软件包信息 
dpkg -L xxx.deb 查看文件拷贝详情 
dpkg -l 查看系统中已安装软件包信息 
dpkg-reconfigure xxx 重新配置软件包 
有些时候,您使用“dpkg”安装一个软件包,系统会提示您该软件包依赖其它软件包。这时,您先安装其它软件包,直到满足依赖关系为止。或者同时安装多个软件包 
dpkg -i aaa.deb bbb.deb ccc.deb 

APT 

如果一个软件依赖关系过于复杂,使用“dpkg”来安装它,并不是一个明智的选择,这个时候您就需要用到APT软件包管理系统。APT可以自动的检查依赖关系,通过您预设的方式来获得相关软件包,并自动安装配置它。事实上,在多数情况下,我们推荐您使用APT软件包管理系统。 
APT系统需要一个软件信息数据库和至少一个存放着大量deb包的软件仓库,我们称之为“源”。“源”可以是网络服务器,安装CD或者本地软件仓库。您需要修改“/etc/apt/sources.list”文件,使APT系统能够连接到“源”。 

您可以在以下页面中获得网络安装源的列表,并且根据您的网络环境,选择速度较快的源。 
http://wiki.ubuntu.org.cn/%E5%BF%AB%E9%80%9F%E8%AE%BE%E7%BD%AE%E6%8C%87%E5%8D%97/DapperDrake 
APT系统主要包括“apt-get”和“apt-cache”等命令。它们通常都是复合命令,包含若干个子命令。 
apt-get install xxx 安装xxx 
-d 仅下载 
-f 强制安装 
apt-get remove xxx 卸载xxx 
apt-get update 更新软件信息数据库 
apt-get upgrade 进行系统升级 
apt-cache search 搜索软件包 
Tips:建议您经常使用“apt-get update”命令来更新您的软件信息数据库 

源码包 

对于绝大多数软件,我们建议您使用APT系统来安装它。在少数情况下,例如某软件没有以deb包的格式发布,或者您需要定制适合自己的软件,您可以通过Ubuntu编译源代码的方式安装它。 
首先您需要下载软件的源码包,并且将它解包为一些源代码文件。并了便于管理,我们建议您将下载的源码包移动到“/usr/local/src/”目录下,并在这里解包。 

sudo mv xxx.tar.gz /usr/local/src 移动源码包 
cd /usr/local/src 进入“/usr/local/src/”目录 
sudo tar -xzvf xxx.tar.gz 解包源码 
cd xxx_ver/ 进行解包后的源码目录 
源码目录中通常有一个“configure”脚本,用来配置即将开始的Ubuntu编译过程。您可以执行它 
sudo ./configure [--prefix=/usr/loca/xxx ......] 
它会自动检测软件的Ubuntu编译环境和依赖关系,并且生成“Makefile”文件。
 
您可以使用带参数的命令“./configure --help”,或者阅读“install”文件,查看该脚本允许的参数。例如使用“--prefix=/usr/local/xxx”参数,将软件的安装目录设定为“/usr/local/xxx/”。(如果您一定要将软件安装在一个目录下,我们建议您安装在这里) 
现在执行“make”命令,系统会根据“Makefile”文件中的设定,通过“make”工具调用Ubuntu编译器和所需资源文件,将源代码文件Ubuntu编译成目标文件。 

sudo make 

执行“make install”命令,“make”工具会自动将连接目标文件,将最终生成的文件拷贝到“Makefile”文件设定的路径中,并且完成更改文件的属性,删除残留文件等活动。 

sudo make install 

现在,您的Ubuntu编译安装已经完成,为了更方便的使用它,需要给程序的可执行文件作一个符号链接。 
sudo ln -sf /usr/local/xxx/exe /usr/local/bin/exe 
Tips:为了顺利的进行Ubuntu编译,您至少需要安装“build-essential”软件包。 
使用命令“sudo apt-get install build-essential”安装它。http://netadmin.77169.com/HTML/20070402005700.html

【编辑推荐】

  1. ubuntu编译程序新手指导
  2. Ubuntu编译时找不到Makefile的解决办法
  3. Ubuntu Tora里安装Oracle的provider
  4. 介绍讨论Ubuntu server系统软件
  5. 深度讨论Ubuntu 8.04挂载问题
责任编辑:佚名 来源: CSDN
相关推荐

2023-03-09 11:02:40

linux编译源码

2009-12-29 15:18:01

Ubuntu menu

2009-11-30 16:38:30

Android

2009-12-07 09:52:06

Ubuntu9.10/

2011-08-29 16:31:30

UbuntuAndroid

2011-09-14 15:04:47

Android 2.2

2010-06-02 13:05:14

Sendmail 安装

2011-07-01 12:52:50

Ubuntu Qt wxWidgets

2011-07-01 13:31:29

Ubuntu Linux QVFB

2023-03-07 10:43:52

AndroidFramework测试

2009-12-22 17:08:18

Linux系统源码包安

2011-01-07 10:55:42

linux源码过程

2009-11-10 10:24:28

Visual Stud

2009-11-17 13:06:57

Oracle Free

2022-11-29 16:27:59

Ubuntu软件包

2010-04-08 18:12:39

无线局域网传输

2023-02-06 17:35:23

docker安卓源码

2009-12-29 11:11:10

2013-05-28 10:52:07

Android开发移动开发移动应用

2010-04-15 18:46:53

Unix操作系统
点赞
收藏

51CTO技术栈公众号