有时,用户想使用某些软件的特殊版本,它们只以源代码的形式存在,没有现成 的Debian软件包。软件包管理系统在处理这类事务时可能会出问题。假设你想编 译新版本的邮件服务器,所有的事情都很正常,但是Debian中的很多软件包是依 赖于MTA(邮件传输代理)的。由于你是自己手工编译安装软件,软件包管理系统 对此一无所知。
现在是equivs登台的时候了。用它来安装软件包,它所做
的工作就是创建一个新的空软件包来实现关联,让软件包管理系统相信所有的依
赖关系都可以满足。
在我们开始以前,我必须提醒你,编译某个软件最安全的方法是对该软件现有 的Debian软件包进行修改后重新编译,如果你并不知道你正在干什么,劝你不要使 用equivs替换关联包。更多信息请参考源码包操作, 第 6 章。
继续上面的例子,你安装好了新编译的postfix,接下来打算安装
mutt。突然你发现mutt想安装另外一
个MTA,但实际上你已经有了你的MTA。
转到某个目录(例如/tmp)执行:
# equivs-control name
将name替换为你创建的控制文件,控制文件按如下格式创建:
Section: misc
Priority: optional
Standards-Version: 3.0.1
Package: <enter package name; defaults to equivs-dummy>
Version: <enter version here; defaults to 1.0>
Maintainer: <your name and email address; defaults to username>
Pre-Depends: <packages>
Depends: <packages>
Recommends: <packages>
Suggests: <package>
Provides: <(virtual)package>
Architecture: all
Copyright: <copyright file; defaults to GPL2>
Changelog: <changelog file; defaults to a generic changelog>
Readme: <README.Debian file; defaults to a generic one>
Extra-Files: <additional files for the doc directory, comma-separated>
Description: <short description; defaults to some wise words>
long description and info
.
second paragraph
我们只需按自己的需要修改相关项目就行了。文件中每个项目都描述得很清楚,我 们不必在此逐行解释它们。现在开始修改吧:
Section: misc
Priority: optional
Standards-Version: 3.0.1
Package: mta-local
Provides: mail-transport-agent
行了,就是这样。mutt依赖于mail-transport-agent,这是所有MTA共同提供的一个虚拟包,我可以简单地将这个软件包命名
为mail-transport-agent,不过我更愿意使用系统的虚拟包方
案,使用Provides选项。
现在你可以开始构建软件包了:
# equivs-build name
dh_testdir
touch build-stamp
dh_testdir
dh_testroot
dh_clean -k
# Add here commands to install the package into debian/tmp.
touch install-stamp
dh_testdir
dh_testroot
dh_installdocs
dh_installchangelogs
dh_compress
dh_fixperms
dh_installdeb
dh_gencontrol
dh_md5sums
dh_builddeb
dpkg-deb: building package `name' in `../name_1.0_all.deb'.
软件包已经被创建了,注意,软件包是创建在当前目录中的。
然后安装这个.deb文件。
众所周知,equivs的用法很多,譬如你可以创建一个my-favorites软件包,它依赖于你通常安装的软件包。尽情发挥你的想像力吧,当然还是要小心。
重要提示:在/usr/share/doc/equivs/examples目录下有控制文件
的例子,最好看一下。
许多Debian用户仅在固定地区使用Debian。例如,在巴西的Debian用户,通常使 用pt_BR地区配置文件而不会关心es地区配置文件。
对于这类用户而言localepurge是一个非常有用的工具,你可
以仅保留你当前所用的地区配置文件,删除其它无用的文件,从而释放大量硬盘空
间。运行apt-get install localepurge就行了。
它配置起来非常容易,debconf的提问将引导用户一步一步完成设置。在回答第一 个问题时请务必谨慎,如果回答错了,系统可能删掉所有的地区配置文件,包括你 正在使用的这个。复原它们的唯一方法就是重装那些软件包。
apt-show-versions工具可以告诉你系统中哪些包可以更新以及其它
一些有用的信息。-u选项可以显示可更新软件包列表:
$ apt-show-versions -u
libeel0/unstable upgradeable from 1.0.2-5 to 1.0.2-7
libeel-data/unstable upgradeable from 1.0.2-5 to 1.0.2-7
APT HOWTO
1.8.10.4 - 2005年3月kov@debian.orgiamlyoo@163.com