|
7. Debian包的管理工具
--------------------------------------------------------------------------------
7.1 提供了哪些管理工具
--------------------------------------------------------------------------------
7.1.1 dpkg
这个主要的软件包管理工具有很多参数,常用的有:
·参数查找:dpkg --help.
·输出指定软件包的控制文件(control file )(和其它信息):dpkg --info foo_VVV-RRR.deb
·安装软件包(包括解包和配置):dpkg --install foo_VVV-RRR.deb.
·解包(但不配置):dpkg --unpack foo_VVV-RRR.deb.注意,此操作解开的包处于不可用状态,要正常运行,一些文件还需要进一步配置.这个命令会删除这个程序的已安装版本.并运行相关联的preinst脚本(详见6.6 Debian软件包的脚本)
·配置一个解开的包:dpkg --configure foo. 这个操作会运行相关联的postinst(详见6.6 Debian软件包的脚本)脚本,并升级conffiles中列举的文件.注意,'配置'(configure)操作使用软件包名(如 foo),而不是Debian文档文件名(如foo_VVV-RRR.deb).
·从Debian包中释放一个名为"blurf"文件(或一组名为"blurf"的文件):dpkg --fsys-tarfile foo_VVV-RRR.deb | tar -xf - blurf*
·删除软件包(不包括它的配置文件):dpkg --remove foo.
·删除软件包(包括它的配置文件):dpkg --purge foo.
·列出包含"foo*"字符串的(软件)包的状态:dpkg --list 'foo*'.
--------------------------------------------------------------------------------
7.1.2 dselect
Debian(软件)包管理系统的菜单界面.对第一次安装和大范围升级特别有用.
dselect可以:
·引导用户选择安装或删除软件包时,确保要安装的包不与其它包冲突,使得每个(要安装的软件)包正常运行的所需的所有软件包都被安装.
·对用户所作选择的不一致和不兼容做出警告.
·确定必须安装的软件包的安装顺序.
·自动完成安装或删除
·引导用户完成每个软件包的配置.
进入dselect时,有七个菜单项,每项完成特定的功能,用户可以用上下键移动亮度条,然后按<回车> (<enter>)键选择加亮显示的项.
接下来的显示和用户的选择有关.如果选的不是Access 或 Select,dselect就会继续执行指定的动作:如,选Remove,dselect就会删除用户在Select中的最后选择的所有软件包.
Access和Select菜单项下有更多的菜单选项,两种选择都会出现分屏,上部给出选项的滚动列表,下部是对应选项的简要解释.
任何时候都可按下"?"键,都可呼出帮助信息,使用在线帮助.
通常按照第一个界面里菜单排列顺序操作来完成软件包安装,但,用户也可以根据自己的需要来做出选择.
·通过选择一个访问方法开始.这是指用户访问Debian软件包的方法;如有些用户从CD_ROM上获取Debian软件包,有些打算通过匿名FTP获取.dselect退出后所选的访问方法会被存储下来,因此如不再调用这个选项,访问方式不会改变.
·接着更新可用软件列表.dselect读取位于Debian软件包存储目录的顶层的" ackages.gz" 文件(如果不存在,dselect会试图生成一个).
·选择欲安装的软件包,选取此菜单项后,首先显示的是满屏的帮助信息(除非使用了`--expert' 命令行参数),退出帮助,就会出现选择软件包的分屏菜单.
相对较窄的上半屏是8250个Debian软件包的滚动列表;下半屏是对应软件包或包组的描述.
用高亮条来选定软件包名或者包组,然后选择操作:
安装:按下"+"键
删除:有两种办法删除:
·删除:删除软件包的大部分相关文件,但是不包括配置文件内列举的需要保护的文件和软件包的配置信息,使用"-"键.
·清除:删除软件包的所有文件,使用"_"键.
注意,不可能删除"所有"的软件包.如果试图这样做,系统就会回到最初的基本系统状态.
锁定:使用"="键,告诉dselect即使这个包即使不是最新版本也不要升级.
可以通过":"键来取消锁定,这是默认设置.
可以使用不同的排序方式显示软件包列表,使用"o"键在不同的排序方式间切换.默认的排序方式是优先级排序,同一优先级内,按存储目录排序,这种排序方式,可能先显示A目录的软件包,然后是B,接着是低一个优先级的A.
如果选了安装或删除一个软件包,如foo.deb,这个包又依赖于(需要)另一个(软件)包,如blurf.deb,dselect就会在下一屏显示出来,可以对系统建议(安装或不安装)做出选择,接受或拒绝. 按Shift-D键稍后操作,Shift-U返回上一菜单.任何时候都可以按Shift-Q保存选择,返回主菜单.
·返回主菜单,选择"install"菜单进行对选择的软件包解包和配置.或者选择"remove"菜单来删除.选择"Quit"退出dselect,所作选择会被dselect保存下来.
--------------------------------------------------------------------------------
7.1.3 dpkg-deb
用于Debian格式(.deb)文件的操作,常见操作:
·查看全部选项:dpkg-deb --help.
·查看Debian格式软件包内的文件:dpkg-deb --contents foo_VVV-RRR.deb
·释放Debian格式软件包内的文件到指定目录:dpkg-deb --extract foo_VVV-RRR.deb tmp. 释放foo_VVV-RRR.deb 内的全部文件到tmp/目录.这是不需要安装,在本地目录测试(软件)包内容的简单方法.
注意,仅仅执行dpkg-deb --extract 并不能正确的安装软件包,应该执行dpkg --install .
详细参见手册dpkg-deb(1).
--------------------------------------------------------------------------------
7.1.4 apt-get
apt-get提供一个简单的命令行安装(软件)包的方法.和dpkag不同,apt-get不能识别.deb文件,它使用软件包原来的名称通过/etc/apt/sources.list指定的安装源进行安装.
更多信息,安装apt软件包参阅apt-get(8), sources.list(5) 和 /usr/share/doc/apt/guide.html/index.html
--------------------------------------------------------------------------------
7.1.5 dpkg-split
这个程序用来将大软件包分割成小文件(如,写到软盘上),和将分割的文件合并.这个程序只能在Debian系统上使用(或含dpkg包的系统),因为它需要调用dpkg-deb程序分析这个Debian包的组成.
例如把一个大.deb分割成N部分
·执行命令:dpkg-split --split foo.deb. 就会在当前目录出现分割出N个大小为460KB的文件.
·把这N个文件考到软盘上
·把软盘上的内容考到其他机器上,
·使用命令dpkg-split --join "foo*"合并.
--------------------------------------------------------------------------------
7.2 如何升级一个运行中的程序
Debian GNU/Linux 系统的内核支持运行中替换文件.
我们另外提供可一个称作start-stop-daemon 程序用于启动时驱动进程或内核运行级别发生变化时停掉进程(如,由多用户到单用户模式或到关机模式).包含某个进程的软件包安装时,安装脚本停止和重起进程调用用的也是这个程序.
--------------------------------------------------------------------------------
7.3 我的Debian系统上装了哪些软件包
要查看Debian系统上安装的所有软件包的状态,运行:
dpkg --list
输出每个(软件)包的一行简单介绍,2字符的状态标志,包名,所安装版本,和简要描述.
查看以"foo"开头的软件包的状态,执行:
dpkg --list 'foo*'
要得到某个软件包的更详细信息,执行:
dpkg --status packagename
--------------------------------------------------------------------------------
7.4 找出一个文件的归属包
查找出包含文件foo的(软件)包:
·dpkg --search filename
在已安装软件包中搜寻filename.(等同于搜索/var/lib/dpkg/info/目录下扩展名为.list的文件,并输出所有包含此文件的软件包明和版本号).
·zgrep foo Contents-ARCH.gz
通过绝对路径来搜寻含foo字符串的文件,Contents-ARCH.gz 文件(ARCH 指要查询的平台)在DebianFTP的主软件包目录(main, non-free, contrib)下,一个Contents 文件只包含同一目录下的软件包,因此用户查找含foo文件的(软件)包,需要搜寻多个Contents 文件。
相对于dpkg --search 这种方法的优点是,它不仅仅搜寻系统已安装软件包。
-------------------------
The Debian GNU/Linux FAQ
version CVS, 14 February 2003
Authors, Section 15.1
中文翻译: eTony e-an@sohu.com
2003.04.23
2003.05.10校对 |
|