Linux教程

使用 RPM 命令查询软件包

RPM 数据库中存储了安装在系统中所有软件包的信息,数据库的位置是 /var/lib/rpm/ 使用这个数据库,你能够查询到系统中安装了哪些软件包、软件包的版本号是多少、软件包中的文件自安装之后进行了多少更改,以及其它方面查询。

RPM 数据库中存储了安装在系统中所有软件包的信息,数据库的位置是 /var/lib/rpm/ 使用这个数据库,你能够查询到系统中安装了哪些软件包、软件包的版本号是多少、软件包中的文件自安装之后进行了多少更改,以及其它方面查询。

查询这个数据库,需要使用 -q 选项。例如使用 rpm -q <package_name> 命令查询软件包是否已经安装,对于已安装的软件包,则会返回 rpm 包的全名

~]# rpm -q tree
tree-1.5.2.2-4.fc12.x86_64

在查询时,你还可以通过使用以下选项与 -q 选项配合,加强 RPM 的查询功能 ( rpm 的查询功能十分强大而且有效,更多信息可以参考 man rpm)

使用 RPM 命令更新软件包

更新 (Freshening) 选项 与升级 (Upgrading) 选项十分相似,唯一的不同是 -F 选项只会更新系统中已安装的软件包,对于没有安装的软件包,不会像 -U 选项那样,直接对其进行安装。

更新 (Freshening) 选项 与升级 (Upgrading) 选项十分相似,唯一的不同是 -F 选项只会更新系统中已安装的软件包,对于没有安装的软件包,不会像 -U 选项那样,直接对其进行安装。

~]# rpm -Fvh foo-2.0-1.fc12.x86_64.rpm

RPM 的 -F 选项会对比已安装的软件包的版本和要提供的软件包的版本,如果提供的软件包的版本更新,RPM 则执行升级操作。但当系统中没有安装某软件包的老版本时, -F 选项不会安装软件包 (-U 选项会执行安装操作)。

以下是一个使用 -F 选项的场合。比如你得到一张新的软件包光盘,你想对系统中的软件包做一次大面积地更新,却又不想安装那些光盘中有,而系统中没有安装的软件包。使用 -F 选项,就能做到只对安装的软件包进行更新。

~]# rpm -Fvh *.rpm

使用 RPM 命令升级软件包

升级软件包与安装软件包的命令十分相似,只是升级使用 -U 选项,而安装是使用 -i 选项。当系统中没有安装先前版本的软件包时,-U 选项则会执行安装的操作。

升级软件包与安装软件包的命令十分相似,只是升级使用 -U 选项,而安装是使用 -i 选项。

假设名为 tree-1.5.3.0-1.fc12.x86_64.rpm 的软件名位于当前目录,并且我们已经在系统中安装了名为 tree-1.5.2.2-4.fc12.x86_64.rpm 的软件包,我们则可以通过以下命令对软件包进行升级

~]# rpm -Uvh tree-1.5.3.0-1.fc12.x86_64.rpm

作为升级软件包进程的一部分,RPM 会自动卸载之前老版本的 tree 软件包。当系统中没有安装先前版本的软件包时,-U 选项则会执行安装的操作。因此使用 -U 选项,即能够安装,也能够升级软件包。

使用 RPM 安装软件包的常见问题

使用 RPM 命令安装软件包的常见问题包括:软件包已经被安装、文件冲突,以及未被解析的软件包依赖性。

软件包已经被安装

如果某个名称和版本号都相同的软件包已经被安装在系统中,在使用 rpm 命令进行安装时则会输出以下信息,提示你软件已经被安装 (already installed)

Preparing...                ########################################### [100%]
 package tree-1.5.2.2-4.fc12.x86_64 is already installed

使用 --replacepkgs 选项让 RPM 忽略上述错误信息,执行软件包的覆盖安装。

使用 RPM 命令卸载软件包

使用 RPM 卸载软件包十分简单,只需要通过命令行中输入 rpm -e <package_name> 即可,对于未解决依赖性的软件包,可以使用 --provides 选项可以查询文件所需的软件包

使用 RPM 卸载软件包十分简单,只需要通过命令行中输入 rpm -e <package_name> 即可

~]# rpm -e foo
 注意:卸载软件包时,只需要提供软件包的名称即可,即 foo,使用 RPM 软件包的全名 (foo-1.0-1.fc12.x86_64) 则会提示“错误的软件包”。

如果你要卸载的软件包被其它软件包所依赖,系统则会提示"依赖性错误"

使用 RPM 命令安装软件包

输入以下命令即可执行软件包的安装了,其中 -i 选择告诉 rpm 执行安装操作,v 和 h 选项不是必须的,它们的功能是用于显示一些输出信息和安装进程。

RPM 软件包的文件名称通常像 tree-1.5.2.2-4.fc12.x68_64.rpm。这个文件名中包含了软件包名称 (tree),版本号 (1.5.2.2),发行版 (4),操作系统主版本 (fc12) 以及 CPU 平台 (x86_64)。假设 tree-1.5.2.2-4.fc12.x86_64.rpm 软件包位于当前目录,在命令行中切换到 root 用户,输入以下命令即可执行软件包的安装了

rpm -ivh tree-1.5.2.2-4.fc12.x86_64.rpm

其中 -i 选择告诉 rpm 执行安装(install)操作,v 和 h 选项不是必须的,它们的功能是用于显示一些输出信息和安装进程。

另外,你也能够使用 -U 选项来升级 (或安装) 软件包

Linux 快捷键

Alt+F1 打开“应用程序”菜单
Alt+F2 显示“运行” 对话框
Ctrl+Alt+方向键 切换到方向键所指的工作台
Ctrl+Alt+D 切换到桌面
Ctrl+Alt+L 锁定桌面并启动屏幕保护程序

使用 GRUB 引导 Windows

不像 Unix 和 Linux,Windows 属于不支持多启动的操作系统,要能够通过 GRUB 引导 Windows,需要使用 GRUB 的链式(chain-load)启动功能。

  不像 Unix 和 Linux,Windows 属于不支持多启动的操作系统,简单的在 grub.conf 配置文件中使用 kernel 和 init 选项,无法实现对 Windows 的引导。要能够通过 GRUB 引导 Windows,需要使用 GRUB 的链式(chain-load)启动功能。

  提醒:查看和编辑 /boot/grub/grub.conf 都需要 root 权限,并且在编辑 grub.conf 之前,最好先为这个文件做一份备份。

  对于配置文件的备份,通过使用 cp 命令即可完成

grub.conf 配置文件

对于 GRUB 的表现和行为控制,主要通过编辑 grub.conf 配置文件得以实现,为了之后更好的自定义引导菜单,先通过以下示例认识 grub.conf 配置文件中的各个选项,以及它们的作用。

  GRUB 是 Linux 中最主要的多系统引导程序,使用它可以为 Unix、Linux、Windows、OS/2 等操作系统制作多系统引导菜单,并对这些操作系统进行引导启动。

  更多有关 GRUB 的介绍,可参考《什么是 GRUB ?

  对于 GRUB 的表现和行为控制,主要通过编辑 grub.conf 配置文件得以实现,为了之后更好的自定义引导菜单,我们先通过以下简单的示例认识 grub.conf 配置文件中的各个选项,以及它们的作用。

什么是 GRUB ?

简单地讲,使用 GRUB 实现多系统引导,就是通过编辑 grub.conf 配置文件,使系统启动时会出现一个系统选择菜单,选择 Linux 则启动 Linux,选择 Windows 就启动 Windows,其它系统也一样 :D

  昨天看到网友 Seqic 的留言,在安装了 Linux 和 Windows 双系统之后,不知如何再启动 Windows (因为系统使用 Linux 的引导程序了)。通常,这是因为安装 Linux 时没有为 GRUB 做好相应的配置。

  Seqic 使用的是 Fedora 12,不知是这个发行版默认不对 GRUB 进行配置,还是在单系统时不对 GRUB 进行配置,我在安装 Fedora 12 时也没有遇到 GRUB 配置界面(也可能是疏忽了 :D)。

  在为系统配置 GRUB 之前,先了解一下 GRUB 比较好,以下是摘自“维基百科”的内容

页面