首页 | 资讯动态 | linux基础 | 系统管理 | 网络管理 | 编程开发 | linux数据库 | 服务器技术 | linux相关 | linux认证 | 嵌入式 | 下载中心 | 专题 | linux招聘 | HR | 镜像
OKLinux中文技术站
·设为首页
·加入收藏
·联系我们
系统管理: 中文环境 系统管理 桌面应用 内核技术 | Linux基础: 基础入门 安装配置 常用命令 经验技巧 软件应用 | Linux数据库: Mysql Postgre Oracle DB2 Sybase other
网络管理: 网络安全 网络应用 Linux服务器 环境配置 黑客安全 | 编程开发: PHP CC++ Python Perl Shell 嵌入式开发 java jsp | PHP技术: PHP基础 PHP技巧 PHP应用 PHP文摘
搜索中心 Linux招聘 Linux专题 Apache | Linux相关: 硬件相关 Linux解决方案 Linux认证 企业应用 其它Unix | 相关下载: 资料下载 参考手册 开发工具 服务器类 软路由 其它
 技术搜索:
会员中心 注册会员 高级搜索  
  → 当前位置:首页>系统管理>桌面应用>正文

[原创翻译]重建世界!用apt-build重新编译安装ubuntu上所有软件包!

http://www.oklinux.cn  2007-08-01  oklinu搜集整理   会员收藏  游客收藏  【 】 
您查看的文章来源于http://www.oklinux.cn

来自Yarrow’s Wastebasket

你,一个Linux世界的菜鸟,或者一个在其中鏖战许久的战士。无论如何,你并不清楚Debian软件包治理系统的工作原理,并惊异于居然能通过该 系统以完全正确地解决升级、依靠关系的方式来安装程序。安装一个程序的方法有:第一种是下载tarball包,解压缩,运行configure脚本,运行 make install。这对所有linux用户来说都是一件简单的事,但对于Debian包治理系统来说并不适合。第二种方法是使用 stow,用来更好地解决升级问题。但是stow并不能完成依靠治理。最终极的解决方法是使用apt-build来重新编译那些已经编译成deb包的软件。

Try it and you will adopt it

On the first day, it created the repository

要安装apt-build输入
sudo apt-get install apt-build
一旦安装好后,后续的安装脚本会询问你几个问题,build目录,调用gcc时使用的选项,处理器架构等等。这些信息将被写入到/etc/apt/apt-build.conf。假如在回答时出错了,你可以直接修改该文件来更正。这里是一个例子:

[yegle@yegle-laptop]~ $ cat /etc/apt/apt-build.confbuild-dir = /var/cache/apt-build/buildrepository-dir = /var/cache/apt-build/repository

Olevel = -O3

march = -march=pentium2

mcpu = -mcpu=pentium2options =

关于这里的build-dirrepository-dir变 量,请确保输入的目录所在的分区有较大的剩余空间。绝大多数(所有?)的软件包采用的是第二级的优化设置,因此假如你选择了第三级的优化,并且指出了你的 CPU属于哪一类架构,软件运行的效率将会有所提升。现在Gentoo fans会问我了: “flag在哪?” ;非常抱歉,没有。 Gentoo用户提到flag时,指的是与软件相关的库文件。在这里,修改软件包的依靠并不是一个简单用户讨论的问题。并且,假如你这么做了,可能会出现 在原始软件包中没有的错误。当出现这种错误时,不必向开发者汇报bug了,因为你并不是在使用官方的Debian包,而是你自己的。最后,你需要在 /etc/apt/sources.list中添加一行,假如没有的话:
deb-src ftp://debian_mirror/ [stable|testing|unstable] main contrib译者注:Ubuntu用户添加相关的deb-src源即可,如:

deb-src http://ubuntu.csie.ntu.edu.tw/ubuntu/

gutsy main restricted universe multiverse

deb-src http://ubuntu.csie.ntu.edu.tw/ubuntu/ gutsy-updates main restricted universe multiverse

deb-src

http://ubuntu.csie.ntu.edu.tw/ubuntu/ gutsy-backports main restricted universe multiverse

deb-src http://ubuntu.csie.ntu.edu.tw/ubuntu/ gutsy-security main restricted universe multiverse

运行apt-get update 更新本地的软件包索引文件。现在你已经预备好使用apt-build了。

And now, what do we do?

现在我将具体解说apt-build的主要命令。事实上,和apt-get很象,apt-build也有要害词,例如 update, upgrade, install, source, clean-build

首先,update 命令;它会更新软件包索引文件(位于/var/lib/apt/lists中)。upgrade命令,更新所有软件包。下面用一个例子来解说install

[yegle@yegle-laptop]~ $ sudo apt-build install memstat
—–> Installing build dependencies (for memstat) <—–Reading Package Lists… DoneBuilding Dependency Tree… Done

0 packages upgraded, 0 newly installed, 0 to remove and 0 not upgraded.—–> Downloading memstat source (memstat) <—–

Reading Package Lists… Done

Building Dependency Tree… Done

Need to get 22.4kB of source archives.

Get:1 ftp://127.0.0.1

1.0.4/main memstat 0.4-1 (dsc) [482B]

Get:2 ftp://127.0.0.1 1.0.4/main memstat 0.4-1 (tar) [21.9kB]

Fetched 22.4kB in 0s (322kB/s)

dpkg-source: extracting memstat in memstat-0.4

—–> Building memstat <—–

dpkg-genchanges: binary-only upload - not including any source code

dpkg-buildpackage: binary only upload (no source included)

—–> Moving packages to repository <—–

—–> Updating repository <—–

Using: -O3 -mcpu=pentium2 -march=pentium2

Reading Package Lists… Done

Building Dependency Tree… Done

Reading Package Lists… Done

Building Dependency Tree… Done

The following NEW packages will be installed:

memstat

我 们可以看到apt-build做了以下的工作:安装编译所需的软件包,下载源代码,然后编译并安装已编译的软件包。当你想自己重新打包时,dpkg- buildpackage并不能像apt-build一样自动安装所需依靠包,并且重新编译可能很难并可能需要一些我们没把握的技巧。到目前为止,我们看 到了一个为了优化软件而重编译的简单的例子,但是假如我们想修改源代码,修改规则文件或者其他在debian/文件夹下的文件,apt-build将变得 很有用,并且将带你浏览一个软件包的核心。无论如何,我都推荐你看看这个 maintainer guide.

What else?

让我们看看这个命令: source。 它并没有什么神奇的地方,它会下载源代码,以及包含debian/目录(你将从中找到建立软件包所需的文件,rules,control, changelog files等等)的diff文件,将他们放在build文件夹,解压缩并最终用diff文件为它打上补丁。例子:

共2页: 上一页 1 [2] 下一页

上一篇:解决MlDonkey的中文问题   下一篇:U盘Linux的制作

收藏于收藏夹】 【评论】 【推荐】 【打印】 【关闭
相关文档
·解决MlDonkey的中文问题
·U盘Linux的制作
·在Fusion里配置Flip和Cover特效
·用imagemagick 批量压缩照片的脚本
·Ubuntu 7.10 Gutsy Gibbon Tribe 2 初体验
·如何增加系统Swap分区
·在 Ubuntu7.04 上编译安装 Xfce 4.4.1
·解决beryl窗口多开黑屏,Beryl神灯特效会卡的问题
·安装Sony VAIO和HP Pavilion本本内置摄像头驱动
·无缝地从Feisty转换到Studio
·终于解决eva的右键崩溃问题了!
·Feisty系统从第三方源里安装libdvdcss2和w32codecs
·美化你的GDM的加载画面!
·Ubuntu下如何用蓝牙连接手机和蓝牙鼠标
·街机模拟器──gxmame在ubuntu上的安装配置
·Kernel和Compiz齐更新──有改进
发表评论
密码: 匿名评论
评论内容:

(不超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规)
 
  最新文档
·Aurorae: KDE 4 新的窗口边框主题引擎
·Google Chrome 主题库
·Bespin-被KDE4遗忘的主题
·10 套不错的 GNOME 主题
·无人值守安装Linux系统
·巧妙管理Linux服务器存储空间
·值得期待的Fedora 11操作系统新特性简
·面对CSS跨站攻击 IE与FireFox态度不一
·网友分享:在Linux系统上玩转磁盘阵列
·Ubuntu系统技巧之登录时查看“每日一句
·专家观点:Linux系统管理学习路线图
·开源办公软件 KOffice 2.0 Beta 7 发布
  阅读排行
·linux无线网卡设置与安装
·Ubuntu多媒体播放器的安装与配置
·VNCServer 配置 及Vncview的使用
·用新型D-BUS与Linux桌面应用程序通讯
·与微软相媲美! Ubuntu v8.04组图欣赏
·10 套不错的 GNOME 主题
·如何安装和使用wine
·菜鸟也疯狂:Linux桌面应用全攻略
·2008年Linux的25个顶级游戏
·安装Sony VAIO和HP Pavilion本本内置摄
·Linux高手过招:量身定制Linux桌面
·10套优秀的 Linux 图标 美化你的 Linux
·linux虚拟光驱介绍
·U盘Linux的制作
·引导装入工具Grub入门到精通
网摘收藏: