LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1577|回复: 0

The Debian GNU/Linux FAQ [工具]

[复制链接]
发表于 2003-4-23 21:45:26 | 显示全部楼层 |阅读模式
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校对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表