Linux查询所有已安装的包
使用 -a 选项,我们可以查询系统上安装的每个软件包。
例如:
# rpm -qa | grep kernel kernel-default-devel-3.0.76-0.11.1 kernel-firmware-20110923-0.42.49 kernel-source-3.0.76-0.11.1 linux-kernel-headers-2.6.32-1.13.5 kernel-default-3.0.101-0.46.1 kernel-default-base-3.0.101-0.46.1 kernel-default-extra-3.0.101-0.46.1
Linux显示包的文档列表
当 -d 被添加到查询中时,我们会得到一个包含命名包或者包的文档的所有文件的列表。
当我们在使用不熟悉的软件时遇到问题时,这是加快速度的好方法。
与 -c 和 -l 一样,我们将看到一个简单的文件名列表,或者(如果我们添加了 -v)一个更全面的列表。
# rpm -qd gawk /usr/share/doc/packages/gawk/AUTHORS /usr/share/doc/packages/gawk/COPYING /usr/share/doc/packages/gawk/FUTURES /usr/share/doc/packages/gawk/LIMITATIONS /usr/share/doc/packages/gawk/NEWS /usr/share/doc/packages/gawk/POSIX.STD /usr/share/doc/packages/gawk/PROBLEMS /usr/share/doc/packages/gawk/README /usr/share/info/gawk.info.gz /usr/share/info/gawkinet.info.gz /usr/share/man/man1/awk.1.gz /usr/share/man/man1/gawk.1.gz /usr/share/man/man1/igawk.1.gz /usr/share/man/man1/pgawk.1.gz
Linux使用rpm命令显示包的配置文件列表
将 -c 添加到 rpm -q 命令后,RPM 将显示作为指定包的一部分的配置文件。
# rpm -qc netcfg /etc/HOSTNAME /etc/aliases /etc/defaultdomain /etc/ethers /etc/exports /etc/ftpusers /etc/host.conf /etc/hosts /etc/hosts.allow /etc/hosts.deny /etc/hosts.equiv
查询提供命令的软件包
RPM 为包之间的依赖关系提供了广泛的支持。
使用的基本机制是一个包可能需要另一个包提供的东西。
# rpm -q --whatprovides gcc gcc-4.3-62.198
Linux使用rpm命令卸载软件包
要卸载 rpm,我们需要必须安装的 rpm 的确切名称。
例如,如果我们必须卸载 gcc43-c++,那么如果我们运行以下命令将其删除
# rpm -e gcc43-c error: package gcc43-c is not installed
如您所见,您应该提供完整的名称
# rpm -e gcc-c++
# echo $? 0
Linux显示未安装 rpm 的包的文件列表
要检查这一点,请确保我们有权访问必须检查其内容的 rpm
# rpm -qlp squashfs-4.0-2.1.x86_64.rpm warning: squashfs-4.0-2.1.x86_64.rpm: Header V3 DSA signature: NOKEY, key ID 29b4acdd /usr/bin/mksquashfs /usr/bin/unsquashfs /usr/share/doc/packages/squashfs /usr/share/doc/packages/squashfs/CHANGES /usr/share/doc/packages/squashfs/PERFORMANCE.README /usr/share/doc/packages/squashfs/README /usr/share/doc/packages/squashfs/README-4.0
Linux使用rpm命令显示包的文件列表
将 -l 添加到 rpm -q 告诉 RPM 显示由指定的一个或者多个包安装的文件列表。
# rpm -ql gcc /usr/bin/cc /usr/bin/gcc /usr/bin/gcov /usr/share/man/man1/cc.1.gz /usr/share/man/man1/gcc.1.gz /usr/share/man/man1/gcov.1.gz
显示包含添加信息的包的文件列表
# rpm -qlv gcc lrwxrwxrwx 1 root root 7 Nov 21 2009 /usr/bin/cc -> gcc-4.3 lrwxrwxrwx 1 root root 7 Nov 21 2009 /usr/bin/gcc -> gcc-4.3 lrwxrwxrwx 1 root root 8 Nov 21 2009 /usr/bin/gcov -> gcov-4.3 lrwxrwxrwx 1 root root 12 Nov 21 2009 /usr/share/man/man1/cc.1.gz -> gcc-4.3.1.gz lrwxrwxrwx 1 root root 12 Nov 21 2009 /usr/share/man/man1/gcc.1.gz -> gcc-4.3.1.gz lrwxrwxrwx 1 root root 13 Nov 21 2009 /usr/share/man/man1/gcov.1.gz -> gcov-4.3.1.gz
安装/卸载一个没有依赖的包
在使用此选项之前,请确保我们完全了解,因为如果未安装依赖项,包可能无法正常运行。
尽管我们可以使用 --nodeps 跳过相同的操作
# rpm -ivh kiwi-instsource-5.05.25-616.1.x86_64.rpm warning: kiwi-instsource-5.05.25-616.1.x86_64.rpm: Header V3 DSA signature: NOKEY, key ID d3668a00 error: Failed dependencies: build is needed by kiwi-instsource-5.05.25-616.1.x86_64
# rpm -ivh kiwi-instsource-5.05.25-616.1.x86_64.rpm --nodeps warning: kiwi-instsource-5.05.25-616.1.x86_64.rpm: Header V3 DSA signature: NOKEY, key ID d3668a00 Preparing... ########################################### [100%] 1:kiwi-instsource ########################################### [100%]
要删除包,我们可以使用相同的选项
# rpm -e kiwi-tools-5.05.25-616.1 error: Failed dependencies: kiwi-tools >= 5.05.25 is needed by (installed) kiwi-5.05.25-616.1.x86_64
或者,我们也可以将 --force 与 --nodeps 一起使用
# rpm -e kiwi-tools-5.05.25-616.1 --nodeps
Linux强制安装软件包
# rpm -ivh gcc-4.3-62.198.x86_64.rpm Preparing... ########################################### [100%] package gcc-4.3-62.198.x86_64 is already installed
正如你所看到的,因为 gcc rpm 已经安装,安装没有完成,所以对于这种情况,应该使用 --force 选项,如下所示
# rpm -ivh gcc-4.3-62.198.x86_64.rpm --force Preparing... ########################################### [100%] 1:gcc ########################################### [100%]
Linux查询文件所属的软件包
可能会出现这样的情况:我们知道 /usr/bin/sudo 之类的文件,但我们不确定哪个 rpm 负责安装此文件。
在这种情况下,将 -qf 与 rpm 命令一起使用。
注意:以下命令仅在我们查询的文件存在于机器中时才有用
# rpm -qf /usr/bin/sudo sudo-1.7.6p2-0.17.5
查看软件包提供的功能
通过在查询命令中添加“--provides”,我们可以看到一个或者多个包提供的功能。
如果包不提供任何功能,则 --provides 选项不会产生任何输出:
# rpm -q gcc --provides c_compiler gcc = 4.3-62.198
Linux使用rpm命令升级软件包
# rpm -Uvh gcc-4.3-62.200.2.x86_64.rpm Preparing... ########################################### [100%] 1:gcc ########################################### [100%]
Linux安装新的软件包
# rpm -ivh gcc-4.3-62.198.x86_64.rpm Preparing... ########################################### [100%] 1:gcc ########################################### [100%]
Linux使用rpm命令显示软件包信息
# rpm -qi kernel-default-base Name : kernel-default-base Relocations: (not relocatable) Version : 3.0.101 Vendor: SUSE LINUX Products GmbH, Nuernberg, Germany Release : 0.46.1 Build Date: Wed Dec 17 09:19:54 2014 Install Date: Fri Jun 12 05:31:11 2014 Build Host: sheep03 Group : System/Kernel Source RPM: kernel-default-3.0.101-0.46.1.nosrc.rpm Size : 23896685 License: GPL v2 only Signature : RSA/8, Wed Dec 17 09:22:49 2014, Key ID e3a5c360307e3d54 Packager : http://bugs.opensuse.org URL : http://www.kernel.org/ Summary : The Standard Kernel - base modules Description : The standard kernel for both uniprocessor and multiprocessor systems.
该软件包仅包含所有安装所需的基本模块。
Source Timestamp: 2014-12-17 12:04:10 +0100 GIT Revision: 8356111faa769f649b6d7c8b5bcbb34fb17120aa GIT Branch: SLE11-SP3-CVE-2014-9322 Distribution: SUSE Linux Enterprise 11