Debian和Ubuntu中APT的概要介绍和初级应用(二)

如果你不再需要使用某个软件包,你可以使用APT将它从系统中删除。这需要使用到apt-get remove命令。看一个例子:

     # 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-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]

注意到软件包名字后面的”*”号了吗?它表示这些软件包的配置文件也将一同被删除掉。
就像用apt-get install安装软件时可以使用“-”号删除软件包一样,在删除软件包时,在软件包名字后加一个“+”号,就可以同时安装这个软件包。

     # 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列出了那些将要被安装的额外软件包(即保证该软件包正常运行的其它软件包)和将要被删除关联软件包,然后,再次列出了将要被安装的软件包(包括了额外的包)。

软件包升级功能是APT系统的一个特别成功的地方。你可以使用apt-get upgrade来完成这个功能。
在使用这个命令时加上”-u”选项是很有用的。这个选项可以让APT显示将升级的软件包列表。如果没有它,升级将默默的进行。APT将下载最新版本的软件包并以正确的顺序安装它们。在使用这个命令前运行apt-get update命令是很必要的。看下面的例子:

     # apt-get -u upgrade
     Reading Package Lists... Done
     Building Dependency Tree... Done
     The following packages have been kept back
       cpp gcc lilo
     The following packages will be upgraded
       adduser ae apt autoconf debhelper dpkg-dev esound esound-common ftp indent
       ipchains isapnptools libaudiofile-dev libaudiofile0 libesd0 libesd0-dev
       libgtk1.2 libgtk1.2-dev liblockfile1 libnewt0 liborbit-dev liborbit0
       libstdc++2.10-glibc2.2 libtiff3g libtiff3g-dev modconf orbit procps psmisc
     29 packages upgraded, 0 newly installed, 0 to remove and 3 not upgraded.
     Need to get 5055B/5055kB of archives. After unpacking 1161kB will be used.
     Do you want to continue? [Y/n]

处理非常简单。注意开始的几行,apt-get通知我们说某些软件包是“kept-back”的。这意味着这些软件包有新的版本,但是由于某些原因新版本并没有被安装。可能的原因有“破损的依赖”(依赖的新版本包无法下载)或者“新依赖”(自从上一个版本开始有了新的依赖包)。

对于第一种情况还没有明确的解决方法。对于第二种情况,运信apt-get install来安装指定的新依赖就可以了。

------分割线------

注:本文在http://www.debian.org/doc/manuals/apt-howto基础上翻译而出,作为阅读笔记以备忘。

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>