《ubuntu 标准教程》读书笔记(一)

8.3.2  获取已安装软件包的信息

Ubuntu Linux将所有已安装或已卸载的软件包信息都全部记录下来,以便后期的检索。然而这个安装记录非常多,靠手工查询费时费力,使用dpkg工具可以很方便地完成信息提取。

1.查看当前系统中已安装软件包

Ubuntu Linux系统是由非常多的程序组件支撑运行的。查询当前系统中的软件包安装情况,了解某个软件包的安装状态等操作都是经常要做的。"dpkg -l"可以获得当前系统中已安装软件包的信息列表。在此基础上,可以了解某些软件包是否被安装,或计算机系统中软件包的安装数量等。

下面的命令用于查询Vim、tasksel软件包的安装状态。从执行结果可以看到,目前系统中已安装了tasksel,软件包状态是"已安装"(ii表示已安装);而系统并未安装Vim,软件包状态是"未知"(un表示未安装,也无任何描述信息)。

wdl@UbuntuFisher:~$ dpkg  -l  vim  tasksel
期望状态=未知(u)/安装(i)/删除(r)/清除(p)/保持(h)
| 当前状态=未(n)/已安装(i)/仅存配置(c)/仅解压缩(U)/配置失败(F)/不完全安装(H)
|/ 错误?=(无)/保持(?)/须重装(R)/两者兼有(#) (状态,错误:大写=故障)
||/     名称     版本                简介
+++-===============================================================================
ii   tasksel    2.59ubuntu2        Tool for selecting tasks for
installation on Debian system
un   vim          <无>                  (无相关介绍)

如果单独执行"dpkg-l"命令,由于安装的软件包非常多,显示的信息会在屏幕上非常快的滚动过去,对查询信息没有任何意义。因此,巧妙地将dpkg与其他命令结合起来使用,可以实现更多的查询功能,例如"dpkg -l | more"可以分屏显示。下面的命令用于统计当前系统中安装的软件包数量。

wdl@UbuntuFisher:~$ dpkg -l | grep ii | wc -l
1112

2.获取已安装软件包的详细描述信息

若希望进一步了解已安装软件包的详细信息,可以使用"dpkg -s"。可以发现,获取的信息就是该软件包在/var/lib/dpkg/status中的相关内容。当然,如果查询的软件包没有安装,或输入错误,"dpkg -s"会返回错误提示。

以下命令的目的是,查询gnome-terminal命令终端软件的详细描述信息,包括与其存在依赖、替代和冲突等关系的软件包信息。

wdl@UbuntuFisher:~$ dpkg  -s  gnome-terminal
Package: gnome-terminal
Status: install ok installed
Priority: optional
Section: gnome
Installed-Size: 432
Maintainer: Ubuntu Core Developers ubuntu-devel-discuss@lists.ubuntu.com
Architecture: i386
Version: 2.18.0-0ubuntu1
Replaces: gnome-terminal2
Provides: x-terminal-emulator
Depends: libatk1.0-0 (>= 1.13.1), libbonobo2-0 (>= 2.15.0), libc6 (>= 2.5-0ubuntu1),
libgconf2-4 (>= 2.13.5), libglade2-0 (>= 1:2.5.1), libglib2.0-0 (>= 2.12.9),
libgnome2-0 (>= 2.14.1), libgnomeui-0 (>= 2.17.1), libgnomevfs2-0 (>= 1:2.17.90),
libgtk2.0-0 (>= 2.10.3), liblaunchpad-integration0 (>= 0.0patch26),
liborbit2 (>= 1:2.14.1), libpango1.0-0 (>= 1.16.1), libpopt0 (>= 1.10),
libstartup-notification0 (>= 0.8-1), libvte9 (>= 1:0.16.0), libx11-6, libxrender1,
scrollkeeper (>= 0.3.14-5), gnome-control-center (>= 1:2.8.0),
gnome-terminal-data (= 2.18.0-0ubuntu1)
Recommends: yelp
Conflicts: gnome-terminal2
Description: The GNOME 2 terminal emulator application
GNOME Terminal is a terminal emulation application that you can use to
perform the following actions:.
- Access a UNIX shell in the GNOME environment.
- Run any application that is designed to run on VT102, VT220, and xterm
terminals..
GNOME Terminal features the ability to use multiple terminals in a single
window (tabs) and
profiles support.
Original-Maintainer: Guilherme de S. Pastore <gpastore@debian.org>

3.查询已安装软件包的相关文件

在一个软件包安装完成后,其相关文件可能会非常多,且比较分散。若要进行软件配置,非常有必要了解与这个软件包相关的文件到底有哪些,以免出现遗漏。使用"dpkg -L"命令可以查询已安装软件包的相关文件。

命令的执行结果显示了已安装组件--gnome-terminal命令终端的所有相关文件。

wdl@UbuntuFisher:~$ dpkg  -L  gnome-terminal
/.
/usr
/usr/share
/usr/share/doc
/usr/share/doc/gnome-terminal
/usr/share/doc/gnome-terminal/README
/usr/share/doc/gnome-terminal/AUTHORS
/usr/share/doc/gnome-terminal/copyright
/usr/share/doc/gnome-terminal/changelog.gz
/usr/share/doc/gnome-terminal/NEWS.gz
/usr/share/doc/gnome-terminal/changelog.Debian.gz
/usr/share/man
/usr/share/man/man1
/usr/share/man/man1/gnome-terminal.1.gz
/usr/bin
/usr/bin/gnome-terminal
/usr/bin/gnome-terminal.wrapper
/usr/share/man/man1/gnome-terminal.wrapper.1.gz

从以上执行结果可以看到,gnome-terminal是放置在/usr/bin目录下,它的联机帮助与说明文档分别放置在"/usr/share/man"和"/usr/share/doc"目录中。

4.查询某个文件相关软件包

与上面的情况相反,有时用户可能遇到某个文件,不能确定这个文件属于哪个软件包。因此查询与某个文件相关的软件包是非常必要的。使用"dpkg -S"可以将包描述信息与检索关键词匹配的所有软件包罗列出来。

wdl@UbuntuFisher:~$ dpkg  -S  gnome-terminal.wrapper
gnome-terminal:  /usr/share/man/man1/gnome-terminal.wrapper.1.gz
gnome-terminal:  /usr/bin/gnome-terminal.wrapper

以上命令的执行结果显示出与关键词"gnome-terminal.wrapper"匹配的系统中已安装的软件包。

《ubuntu标准教程》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值