|NO.Z.00025|——————————|LinuxBasicEnd|——|Linux&软件包安装.V04|
Posted yanqi_vip
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了|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|的主要内容,如果未能解决你的问题,请参考以下文章