宁可枝头抱香死,何曾吹落北风中。这篇文章主要讲述|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|】
推荐阅读
- |NO.Z.00000|——————————|LinuxBasicEnd|
- |NO.Z.00029|——————————|^^部署^^|——|Linux&软件包安装.V08|——|脚本安装|webmin|web图形化|系统管理|
- |NO.Z.00006|——————————|^^构建^^|——|Nginx&Nginx.V1.16&企业级LNMP&Yum.V2|
- |NO.Z.00028|——————————|LinuxBasicEnd|——|Linux&软件包安装.V07|——|源码安装|
- |NO.Z.00001|——————————|^^构建^^|——|Nginx&Nginx常见报错&解决方案|
- |NO.Z.00027|——————————|LinuxBasicEnd|——|Linux&软件包安装.V06|——|rpm在线|本地YUM|
- |NO.Z.00003|——————————|^^构建^^|——|Nginx&Nginx.V1.16&部署&降级&升级.V2|
- |NO.Z.00001|——————————|LinuxBasicEnd|——|Linux&行业介绍|
- |NO.Z.00004|——————————|^^构建^^|——|Nginx&Nginx.V1.16&部署&降级&升级.V3|