|NO.Z.00025|——————————|LinuxBasicEnd|——|Linux&软件包安装.V04|

宁可枝头抱香死,何曾吹落北风中。这篇文章主要讲述|NO.Z.00025|——————————|LinuxBasicEnd|——|Linux&软件包安装.V04|相关的知识,希望能为你提供帮助。
一、RPM包升级

### --- RPM 包升级 ~~~选项: ~~~-U(大写) 升级安装,如果没有安装过,系统直接安装。 ~~~如果安装过的版本较旧,则升级到新版本(upgrade)[root@localhost ~]# rpm –Uvh 包全名

~~~选项: ~~~-F(大写)升级安装,如果没有安装过,则不会安装。 ~~~必须安装有较旧版本,才能升级(freshen)[root@localhost ~]#rpm –Fvh 包全名

### --- 卸载 ~~~选项: ~~~--nodeps不检查依赖性 ~~~e卸载 [root@localhost ~]# rpm -e 包名

### --- 查询 ~~~查询软件包是否安装 ~~~可以查询软件包是否安装,命令格式如下: ~~~选项: ~~~-q: 查询(query) ~~~查询系统中的所有安装软件包 ~~~可以查询 Linux 系统中所有已经安装的软件包,命令格式如下:[root@localhost ~]# rpm –q 包名

~~~选项: ~~~-a:所有(all) ~~~当然,可以用管道符来查看所需的内容,比如:[root@localhost ~]# rpm -qa

~~~你会发现,使用“rpm -q 包名”只能查看这个包是否安装, ~~~但是使用“rpm -qa | grep 包名”会把包含包名称的所有包都列出来。[root@localhost ~]# rpm -qa | grep httpd

### --- 查询软件包的详细信息 ~~~可以查询已经安装的某个软件包的详细信息,命令格式如下: ~~~选项: ~~~-i: 查询软件信息(information) ~~~也可以查询还没有安装的软件包的详细信息,命令格式如下: [root@localhost ~]# rpm –qi 包名

~~~选项: ~~~-p: 查询没有安装的软件包(package)[root@localhost ~]# rpm –qip 包全名

### --- 查询软件包中的文件列表 ~~~可以查询已经安装的软件包中的文件列表和安装的完整目录,命令格式如下: ~~~选项: ~~~-l: 列出软件包中所有的文件列表和软件所安装的目录(list) ~~~那么,可以查询还没有安装的软件包中的文件列表和打算安装的位置吗? ~~~答案是可以,命令格式 ~~~如下:[root@localhost ~]# rpm –ql 包名

~~~选项: ~~~-p: 查询没有安装的软件包信息(package) [root@localhost ~]# rpm –qlp 包全名

### --- 查询系统文件属于哪个 RPM 包 ~~~既然可以知道每个 RPM 包中的文件的安装位置,那么可以查询系统文件属于哪个 RPM 包吗? ~~~当然可以,不过需要注意的是,手工建立的文件是不能查询的, ~~~因为这些文件不是通过 RPM 包安装的,当然不能反向查询它属于哪个 RPM 包。 ~~~命令格式如下: ~~~选项: ~~~-f: 查询系统文件属于哪个软件包(file)[root@localhost ~]# rpm –qf 系统文件名

### --- 查询软件包所依赖的软件包 ~~~查询系统中和已经安装的软件包有依赖关系的软件包,命令格式如下: ~~~选项: ~~~-R: 查询软件包的依赖性(requires) ~~~可以查询没有安装的软件包的依赖性吗?加“-p”选项即可。 ~~~例如,查看一下还没有安装的 bind软件包的依赖包,可以执行如下命令:[root@localhost ~]# rpm –qR 包名 [root@localhost ~]# rpm -qRp /mnt/cdrom/Packages/bind-9.8.2-0.10.rc1.el6.i686.rpm

二、RPM包升级:实验专题
### --- rpm不指定位置会安装在默认路径下;若是指定会安装在指定在位置; ### --- rpm包安装建议不指定位置, ~~~原因一、默认的安装位置是系统的习惯位置, ~~~原因二、rpm包管理系统是有卸载命令的(数据库记录安装位置的);### --- 源码包是没有卸载命令的,若是想要卸载;只能删除安装目录;所以源码包是需要指定安装目录的。 ### --- yum查询: ~~~yum是服务器去连接Redhat的官方服务器,需要什么样的依赖包,下载后安装; ~~~也就说明本地电脑是客户端,而Redhat端电脑是服务端; ~~~yum查询的是对方官方服务器上的信息,也就是Redhat官方服务器上的包信息。[root@server21 Packages]# rpm -ivh --prefix=/usr/local/httpd httpd-2.2.15-53.el6.centos.x86_64.rpm

### --- rpm查询: ~~~rpm查询的客户端上的包信息,也就是说查询的是本地电脑上的包信息; ~~~查询服务器已安装的所有软件包[root@server11 ~]# rpm -qa | wc -l 1363

### --- 查询对应安装的软件包[root@server11 ~]# rpm -qa |grep httpd

### --- 查询已经安装包的信息[root@server11 ~]# rpm -qi httpd Name: httpd Version: 2.4.6 Release: 97.el7.centos Architecture: x86_64 Install Date: Sat 06 Mar 2021 04:37:40 PM CST Group: System Environment/Daemons Size: 9821064 License: ASL 2.0 Signature: RSA/SHA256, Wed 18 Nov 2020 10:17:43 PM CST, Key ID 24c6a8a7f4a80eb5 Source RPM: httpd-2.4.6-97.el7.centos.src.rpm Build Date: Tue 17 Nov 2020 12:21:17 AM CST Build Host: x86-02.bsys.centos.org Relocations : (not relocatable) Packager: CentOS BuildSystem < http://bugs.centos.org> Vendor: CentOS URL: http://httpd.apache.org/ Summary: Apache HTTP Server Description : The Apache HTTP Server is a powerful, efficient, and extensible web server.

### --- (查询已经安装的软件包安装位置)列出软件包中所有的文件列表和软件所安装的目录(list) ~~~etc目录下,相关配置文件 ~~~/usr/lib64函数库 ~~~/usr/sbin启动脚本 ~~~/usr/share帮助文档 ~~~/var/cache /var/lib 临时文件;可变文件,日志等 ~~~/etc/rc.d/init.d启动脚本调用的还是/usr/sbin下[root@server11 ~]# rpm -ql httpd// rpm -ql 包名

### --- 查询没有安装的软件包准备安装位置信息(package) [root@server11 Packages]# rpm -qlp zenity-3.22.0-1.el7.x86_64.rpm// rpm –qlp 包全名 ### --- 查询系统文件属于哪个RPM包 [root@server11 ~]# rpm -qf /etc/httpd/conf/httpd.conf// rpm -qf 系统文件名 httpd-2.4.6-97.el7.centos.x86_64### --- 查询包的依赖包 (没有办法区分这个包有没有装,会把所有依赖的包列出来) [root@server11 ~]# rpm -qR httpd// 建议rpm安装时报错安装,缺失什么安装那个;

三、RPM升级:验证
### --- 验证 ### --- 基本命令 ~~~选项: ~~~-Va 校验本机已经安装的所有软件包[root@server11 ~]# rpm-Va// 不建议使用,消耗资源 .M.......g /etc/pki/ca-trust/extracted/java/cacerts

~~~选项: ~~~-V 校验指定 RPM 包中的文件(verify)[root@localhost ~]# rpm –V 已安装的包名

~~~选项: ~~~-Vf 校验某个系统文件是否被修改 ~~~验证内容文件类型文件名 ~~~出现了提示信息,我们来解释下最前面共有 8 个信息内容,是表示验证内容的。文件名前面的 c是表示这是个配置文件(configuration)。最后是文件名。那么验证内容中的 8 个信息的具体内容 ~~~如下: ~~~S文件大小是否改变 ~~~M文件的类型或文件的权限(rwx)是否被改变 ~~~5文件 MD5 校验和是否改变(可以看成文件内容是否改变) ~~~D设备的主从代码是否改变 ~~~L文件路径是否改变 ~~~U文件的属主(所有者)是否改变 ~~~G文件的属组是否改变 ~~~T文件的修改时间是否改变 ~~~apache配置文件的文件类型是 c,那么还有哪些文件类型呢? ~~~c配置文件(config file) ~~~d普通文档(documentation) ~~~g“鬼”文件(ghost file),很少见,就是该文件不应该被这个 RPM 包包含 ~~~l授权文件(license file) ~~~r描述文件(read me)[root@localhost ~]# rpm –Vf 系统文件名

### --- 验证举例[root@localhost ~]# rpm -V httpd S.5....T.c/etc/httpd/conf/httpd.conf

四、RPM安装验证:基本验证实验专题
### --- 基本验证[root@server11 ~]# rpm-Va// 不建议使用,消耗资源 .M.......g /etc/pki/ca-trust/extracted/java/cacerts

### --- 校验指定 RPM 包中的文件(verify)[root@server11 ~]# rpm -V httpd// 初次验证,没有什么效果 [root@server11 ~]# vim /etc/httpd/conf/httpd.conf// 编辑httpd配置文件,加入空白行 [root@server11 ~]# rpm -V httpd// 验证会有报错提示信息 S.5....T.c /etc/httpd/conf/httpd.conf// T文件的修改时间是否改变

Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warmd both hands before the fire of life.It sinks, and I am ready to depart ——W.S.Landor 【|NO.Z.00025|——————————|LinuxBasicEnd|——|Linux&软件包安装.V04|】

    推荐阅读