RPM 软件包管理

Linux 软件包管理大致可分为二进制包、源码包,使用的工具也各不相同。Linux 常见
软件包分为两种,分别是源代码包(Source Code)、二进制包(Binary Code),源代码包是
没有经过编译的包,需要经过 GCC、C++编译器环境编译才能运行,二进制包无需编译,
可以直接安装使用。
通常而言,可以通过后缀简单区别源码包和二进制包,例如.tar.gz、.zip、.rar 结尾的包
通常称之为源码包,以.rpm 结尾的软件包称之为二进制包。真正区分是否为源码还是二进
制还得基于代码里面的文件来判断,例如包含.h、.c、.cpp、.cc 等结尾的源码文件,称之为
源码包,而代码代码里面存在 bin 目可以执行文件,称之为二进制包。
CentOS 操作系统中有一款默认软件管理的工具,红帽包管理工具(Red Hat Package
Manager,RPM)。
使用 RPM 工具可以对软件包实现快速安装、管理及维护。RPM 管理工具适用的操作系统包括:CentOS,RedHat,Fedora,SUSE 等,RPM 工具常用于管理.rpm 后缀结尾的软件包。RPM 软件包命令规则详解如下
RPM 包命名格式为:
name-version.rpm
name-version-noarch.rpm
name-version-arch.src.rpm
如下软件包格式:
epel-release-6-8.noarch.rpm
perl-Pod-Plainer-1.03-1.el6.noarch.rpm
yasm-1.2.0-4.el7.x86_64.rpm
RPM 包格式解析如下:
name 软件名称,例如 yasm、perl-pod-Plainer;
 version 版本号,1.2.0 通用格式:“主版本号.次版本号.修正号”;
4 表示是发布版本号,该 RPM 包是第几次编译生成的;
 arch 适用的硬件平台,RPM 支持的平台有:i386、i586、i686、x86_64、
sparc、alpha 等。
 .rpm 后缀包表示编译好的二进制包,可用 rpm 命令直接安装;
 .src.rpm 源代码包,源码编译生成.rpm 格式的 RPM 包方可使用;
 el* 软件包发行版本,el6 表示该软件包适用于 RHEL 6.x/CentOS 6.x;
 devel: 开发包;
 noarch: 软件包可以在任何平台上安装。
RPM 工具命令详解如下:
RPM 选项 PACKAGE_NAME
-a, --all 查询所有已安装软件包;
-q,–query 表示询问用户,输出信息;
-l, --list 打印软件包的列表;
-f, --file FILE 查询包含 FILE 的软件包;
-i, --info 显示软件包信息,包括名称,版本,描述;
-v, --verbose 打印输出详细信息;
-U, --upgrade 升级 RPM 软件包;
-h,–hash 软件安装,可以打印安装进度条;
–last 列出软件包时,以安装时间排序,最新的在上面;
-e, --erase 卸载 rpm 软件包
–force 表示强制,强制安装或者卸载;
–nodeps RPM 包不依赖
-l, --list 列出软件包中的文件;
–provides 列出软件包提供的特性;
-R, --requires 列出软件包依赖的其他软件包;
–scripts 列出软件包自定义的小程序
RPM 企业案例演示:
rpm -q httpd 检查 httpd 包是否安装;
rpm -ql httpd 查看软件安装的路径;
rpm -qi httpd 查看软件安装的版本信息;
rpm -e httpd 卸载 httpd 软件;
rpm -e --nodeps httpd 强制卸载 httpd;
rpm -qa|grep httpd 检查 httpd 相关的软件包是否安装。
rpm -ivh httpd-2.4.10-el7.x86_64.rpm 安装 httpd 软件包;
rpm -Uvh httpd-2.4.10-el7.x86_64.rpm 升级 httpd 软件;
rpm -ivh --nodeps httpd-2.4.10-el7.x86_64.rpm 不依赖其他软件包;
root@localhost /]# wget https://mirrors.aliyun.com/centos/6.10/os/x86_64/Packages/lrzsz-0.12.20-27.1.el6.x86_64.rpm
–2019-03-21 18:21:14-- https://mirrors.aliyun.com/centos/6.10/os/x86_64/Packages/lrzsz-0.12.20-27.1.el6.x86_64.rpm
Resolving mirrors.aliyun.com… 61.163.8.209, 61.163.8.211, 61.163.8.208, …
Connecting to mirrors.aliyun.com|61.163.8.209|:443… connected.
HTTP request sent, awaiting response… 200 OK
Length: 72436 (71K) [application/x-redhat-package-manager]
Saving to: “lrzsz-0.12.20-27.1.el6.x86_64.rpm”

100%[==========================================>] 72,436 --.-K/s in 0.02s

2019-03-21 18:21:14 (3.22 MB/s) - “lrzsz-0.12.20-27.1.el6.x86_64.rpm” saved [72436/72436]

[root@localhost /]# ls
bin dev lib lrzsz-0.12.20-27.1.el6.x86_64.rpm opt sbin sys var
boot etc lib64 media proc selinux tmp
data home lost+found mnt root srv usr
[root@localhost /]# rpm -q lrzsz
package lrzsz is not installed
[root@localhost /]#
[root@localhost /]# rpm -ivh lrzsz-0.12.20-27.1.el6.x86_64.rpm
warning: lrzsz-0.12.20-27.1.el6.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID c105b9de: NOKEY
Preparing… ########################################### [100%]
1:lrzsz ########################################### [100%]
[root@localhost /]# rpm -q lrzsz
lrzsz-0.12.20-27.1.el6.x86_64
[root@localhost /]# rpm -ql lrzsz
/usr/bin/rb
/usr/bin/rx
/usr/bin/rz
/usr/bin/sb
/usr/bin/sx
/usr/bin/sz
/usr/share/locale/de/LC_MESSAGES/lrzsz.mo
/usr/share/man/man1/rz.1.gz
/usr/share/man/man1/sz.1.gz [root@localhost /]# ost /]# rz
[root@localhost /]# rz

[root@localhost /]# ls
bin etc lost+found opt selinux usr
boot home lrzsz-0.12.20-27.1.el6.x86_64.rpm proc srv var
data lib media root sys 视图.sql
dev lib64 mnt sbin tmp
[root@localhost /]# mv 视图.sql /tmp
[root@localhost /]# ls
bin dev lib lrzsz-0.12.20-27.1.el6.x86_64.rpm opt sbin sys var
boot etc lib64 media proc selinux tmp
data home lost+found mnt root srv usr
[root@localhost /]# rpm -e lrzsz
[root@localhost /]# rz
bash: /usr/bin/rz: No such file or directory

你可能感兴趣的:(Linux,rpm软件包管理’)