本人从事IT行业已有十多年,有着丰富的实战经验,总结了大量的学习方法,更是积累了很多的学习资料,很高兴能在这里跟大家交流学习,希望能在这里跟大家共同进步和成长!
全套学习资料移步至公众号【学神来啦】更多学习资料添加扣扣资源群:661308959
本节所讲内容:
8.1 使用rpm命令-安装-查看-卸载-rpm软件包
8.2 yum管理软件包
8.3 CentOS8中使用DNF管理软件包
8.4 实战tar源码包管理-源码包安装方法
软件包的类型
rpm二进制包------》已经使用GCC编译后的(二进制已经可以被操作系统直接执行了)
tar源码包-----》需要编译(源码包就是你能看懂的,基于字符的,还需要进行编译)
RPM概述:RPM是RPM RedHat Package Manager(RPM软件包管理器)的缩写,这一文件格式名称虽然打上了RedHat的标志,但是其原始设计理念是开放式的,现在包括OpenLinux、SUSE以及Turbo Linux等Linux的分发版本都有采用,可以算是公认的行业标准了。
kaili apt install name.deb
rpm包的获取方式:
1、Centos系统镜像光盘
2、网站rpmfind.net
3、比如安装mysql、nginx软件,我们可以去它的官方网站下载:
http://nginx.org/en/download.html
4、centos yum源上,也有rpm可以手动下载
https://www.centos.org/download/
rpm包格式的说明
例1:
[root@xuegod63 ~]# ls /mnt/BaseOS/Packages/zsh-5.5.1-6.el8_1.2.x86_64.rpm
/mnt/BaseOS/Packages/zsh-5.5.1-6.el8_1.2.x86_64.rpm
zsh -5. 5. 1- 6. el8. x86_64.rpm
软件名 主版本号 次版本号 修订 release( ) 操作系统版本 软件包是64位包
release(rpm自身的发行号,与程序源码的发行号无关,release还包含此包适用的系统版本)
#修订指是的第几次修改bug。 发布指的是:第几次发布。 发布时,可能只是对软件安装的默认参数做了修改,而没有其它改动。
例2:
[root@xuegod63 ~]# ls /mnt/BaseOS/Packages/atlas-3.10.3-7.el8.i686.rpm
/mnt/BaseOS/Packages/atlas-3.10.3-7.el8.i686.rpm
注: .i686 代表,此包是32位操作系统包。 64位操作系统是可以安装32位操作系统的包。 32位,安装不了64位的包。 而且在centso7开始,就没有32位操作系统。
例3:
[root@xuegod63 ~]# ls /mnt/AppStream/Packages/zsh-html-5.5.1-6.el8_1.2.noarch.rpm
注:结尾有noarch,代表此包在32位和64位操作系统上都可以运行。 这类型包,里面通常是文本文件,如: shell脚本,html,txt 等。
root@xuegod63 ~]# uname -r #查看内核版本。
4.18.0-193.el8.x86_64 #我的内核版本是4.18.0-193.el8,有x86_64就是64位操作系统
RPM工具使用分为安装、查询、验证、更新、删除等操作
命令格式:rpm [参数] 软件包
参数:
-i 是install的意思, 安装软件包
-v 显示附加信息,提供更多详细信息
-V 校验,对已经安装的软件进行校验
-h --hash 安装时输出####标记
互动:rpm使用时,什么情况下使用软件包全名,什么时候使用软件包名?
全名:在安装和更新升级时候使用
包名:对已经安装过的软件包进行操作时,比如查找已经安装的某个包,卸载包等 ,使用包名。它默认是去目录/var/lib/rpm下面进行搜索。 当一个 rpm 包安装到系统上之后,安装信息通常会保存在本地的 /var/lib/rpm/目录下。
例1:从本地安装
[root@xuegod63 ~]# mount /dev/sr0 /mnt #挂载,确保光盘镜像已经在虚拟机开机加载
[root@xuegod63 ~]# rpm -ivh /mnt/BaseOS/Packages/lrzsz-0.12.20-43.el8.x86_64.rpm
#本地安装lrzsz包,安装后可以使用rz和sz命令。
用法:rpm -q(query) 常与下面参数组合使用
-a(all) 查询所有已安装的软件包
-f(file)系统文件名(查询系统文件所属哪个软件包),反向查询
-i 显示已经安装的rpm软件包信息,后面直接跟包名
-l(list) 查询软件包中文件安装的位置
-p 查询未安装软件包的相关信息,后面要跟软件的命名
-R 查询软件包的依赖性
例:
[root@xuegod63 mnt]# rpm -q lrzsz --->查询指定的包是否安装
[root@xuegod63 mnt]# rpm -qa --->查询所有已安装包
例:查看passwd文件中包括bash的行。
[root@xuegod63 ~]# grep bash /etc/passwd #grep后面加关键字,可以查找文件中的内容。
root:x:0:0:root:/root:/bin/bash
mk:x:1000:1000:mk:/home/mk:/bin/bash
[root@xuegod63 mnt]# rpm -qa | grep lrzsz --->查询所有已安装包中带vim关键字的包
[root@