Debian APT HOWTO 第三章 软件包管理
APT HOWTO
第三章 软件包管理
3.1 更新可用软件包列表
======================
软件包管理系统使用一个私有数据库跟踪列表中软件包的当前状态:已安装、未安装或可安装。apt-get通过该数据库来确定如何安装用户想用的软件包以及正常运行软件包所必须的其它关联包。
你可以使用apt-get update来更新数据库列表。这个命令将扫描/etc/apt/sources.list文件中所指路径中的软件包列表文件。有关该列表文件的更多信息请查阅 第二章 /etc/apt/source.list文件。
定时运行这个程序是个好主意,它将使你和你的系统获得最新的软件包更新和安全更新等信息。
3.2 安装软件包
==============
现在,终于到了你一直期待的阶段!准备好了sources.list和最新版的的可用软件包,你所需做的就是运行apt-get来安装你渴望已久的软件了。例如,你可以这样:
apt-get install xchat
APT会扫描它的数据库找到最新的版本的软件包,并将它从sources.list中所指的地方下载到本地。如果该软件包需要其它软件包才能正常运行——如本例一样——APT会做关联性检查并自动安装所关联软件包。如下所示:
[root]@[/] # apt-get install nautilus
Reading Package Lists... Done
Building Dependency Tree... Done
The following extra packages will be installed:
bonobo libmedusa0 libnautilus0
The following NEW packages will be installed:
bonobo libmedusa0 libnautilus0 nautilus
0 packages upgraded, 4 newly installed, 0 to remove and 1 not upgraded.
Need to get 8329kB of archives. After unpacking 17.2MB will be used.
Do you want to continue? [Y/n]
nautilus软件包需要引用共享函数库,因此APT会从镜像源处下载相关共享函数库,如果你在apt-get命令行中手动指定了这些共享函数库的名称,APT会默认为你要安装所有这些软件包。
也就是说APT只会在安装那些没有在命令行中指定的软件包时提示你进行确认。
下列apt-get选项也许对你有用
-h This help text.
-d Download only - do NOT install or unpack archives
-f Attempt to continue if the integrity check fails
-s No-act. Perform ordering simulation
-y Assume Yes to all queries and do not prompt
-u Show a list of upgraded packages as well
可以用一条命令安装多个软件包。包文件从网络上下载到本地/var/cache/apt/archives目录,稍后再安装。
你可以用同样的命令行删除指定软件包,只需在软件包名称后紧跟一个“-”,如下所示:
[root]@[/] # apt-get install nautilus gnome-panel-
Reading Package Lists... Done
Building Dependency Tree... Done
The following extra packages will be installed:
bonobo libmedusa0 libnautilus0
The following packages will be REMOVED:
gnome-applets gnome-panel gnome-panel-data gnome-session
The following NEW packages will be installed:
bonobo libmedusa0 libnautilus0 nautilus
0 packages upgraded, 4 newly installed, 4 to remove and 1 not upgraded.
Need to get 8329kB of archives. After unpacking 2594kB will be used.
Do you want to continue? [Y/n]
假如你不小心损坏了已安装的软件包而想修复它,或者仅仅想安装软件包中某些文件的最新版本,这是可以做到的,你可以用--reinstall选项:
[root]@[/] # apt-get --reinstall install gdm
Reading Package Lists... Done
Building Dependency Tree... Done
0 packages upgraded, 0 newly installed, 1 reinstalled, 0 to remove and 1 not upgraded.
Need to get 0B/182kB of archives. After unpacking 0B will be used.
Do you want to continue? [Y/n]
本文档写作时所参考的APT版本为0.5.3,这个版本还属于“unstable”(sid)阶段。如是你安装了这个版本,你可以在系统配置中使用新增的功能:你可以用apt-get install package/distribution来安装指定发布版中的软件包,或者用apt-get install package=version,如下所示:
apt-get install nautilus/unstable
它将为你安装“unstable”发布版中的nautilus软件包,即使你当前运行的是“stable”版本。命令中“distribution”选项的可用参数值为:stable,testing,unstable。
在处理关联问题时,你可能更乐意使用-t开关来选择目标发布版,让apt-get帮你考虑使用哪个发布版。
重要信息:最新版的Debian软件包首先会上传到“unstable”发布版中,这个发布版包含了软件包所有更改阶段,无论是小修小补还是影响到众多软件包乃至整个系统的重大修改。所以,新手和那些强调系统稳定性的用户不会使用这个发布版。
“testing”发布版比起“unstable”发布版,多注重了些系统稳定性,但正式运行的系统应当使用“stable”发布版。
3.3 移除软件包
==============
如果你不再使用某些软件包,你可以用APT将其从系统中删除。要删除软件包只需输入:apt-get remove package。如下所示:
[root]@[/] # apt-get remove gnome-panel
Reading Package Lists... Done
Building Dependency Tree... Done
The following packages will be REMOVED:
gnome-applets gnome-panel gnome-panel-data gnome-session
0 packages upgraded, 0 newly installed, 4 to remove and 1 not upgraded.
Need to get 0B of archives. After unpacking 14.6MB will be freed.
Do you want to continue? [Y/n]
由上例可知,APT会关注那些与被删除的软件包有依赖关系的软件包。使用APT删除一个软件包将会连带删除那些与该软件包有依赖关系的软件包。
上例中运行apt-get会删除指定软件包以及与之有依赖关系的软件包,但它们的配置文件,如果有的话,会完好无损地保留在系统里。如果想彻底删除这些包及其配置文件,运行:
[root]@[/] # apt-get --purge remove gnome-panel
Reading Package Lists... Done
Building Dependency Tree... Done
The following packages will be REMOVED:
gnome-applets* gnome-panel* gnome-panel-data* gnome-session*
0 packages upgraded, 0 newly installed, 4 to remove and 1 not upgraded.
Need to get 0B of archives. After unpacking 14.6MB will be freed.
Do you want to continue? [Y/n]
注意:软件包名字后面的*表示该软件包所有的配置文件也将被删除。
就象安装软件时一样,你可以在删除命令中用一个符号来指定安装某个软件包。在删除软件包时,如果你在软件包名字后面紧跟一个“+”,那么该软件包就会被安装而不是删除。
[root]@[/] # apt-get --purge remove gnome-panel nautilus+
Reading Package Lists... Done
Building Dependency Tree... Done
The following extra packages will be installed:
bonobo libmedusa0 libnautilus0 nautilus
The following packages will be REMOVED:
gnome-applets* gnome-panel* gnome-panel-data* gnome-session*
The following NEW packages will be installed:
bonobo libmedusa0 libnautilus0 nautilus
0 packages upgraded, 4 newly installed, 4 to remove and 1 not upgraded.
Need to get 8329kB of archives. After unpacking 2594kB will be used.
Do you want to continue? [Y/n]
注意,apt-get列出了那些将要被安装的关联软件包(即保证该软件包正常运行的其它软件包)和将要被删除关联软件包,然后,再次列出了将要被安装的软件包。
3.4 更新软件包
==============
软件包更新是APT最成功的特点。只需一条命令即可完成更新:apt-get upgrade。你可以使用这条命令从相同版本号的发布版中更新软件包,也可以从新版本号的发布版中更新软件包,尽管实现后一种更新的首选命令为apt-get dist-upgrade;实情参阅 3.5升级到新版本。
在运行该命令时加上-u选项很有用。这个选项让APT显示完整的可更新软件包列表。不加这个选项,你就只能盲目地更新。APT会下载每个[1] [url=http://www.chinamx.com.cn/Article/os/Linux/200605/20060530122811_27872_2.html][2] [3] 下一页