RHEL8 RPM 与 YUM/DNF 软件包管理基础

一、RPM软件包管理

1)什么是RPM

RPM是 RedHat Package Manager(RedHat软件包管理工具)的缩写。

RPM 包管理系统:功能强大,安装、升级、査询和卸载非常简单方便,在Fedora 、Redhat、Mandriva、SuSE、YellowDog等主流发行版本,以及在这些版本基础上二次开发出来的发行版采用。

RPM是以一种数据库记录的方式将所需要的软件安装到Linux主机的一套管理程序,最大的特点是将要安装的软件先编译并打包,通过包装好的软件中默认的数据库记录,记录这个软件在安装的时候需要的依赖属性模块,在用户的Linux主机安装时,RPM会先根据软件里的记录数据,查询Linux主机的依赖属性软件是否满足,若满足则予以安装,不满足则不安装。安装的时候将该软件的信息全部写入RPM的数据库中以便将来的查询、验证与卸载。

2)RPM的优点和缺点

1.优点

  • 由于已经编译完成并且打包,所以安装很方便

  • 由于套件信息已经记录在Linux主机的数据库中,方便查询、升级与卸载

  • 2.缺点

  • 安装环境必须与打包时的环境一致

  • 需要满足软件的依赖属性需求

  • 卸载时需要特别小心,最底层的软件不可以先删除,否则可能造成整个系统出问题

  • 3)RPM的使用权限

    RPM软件的安装、删除、更新只有root权限才能使用;对于查询功能任何用户都可以操作;如果普通用户拥有安装目录的权限,也可以进行安装。

    4)RPM 基本用法

    ① RPM的软件包查询功能

    RPM在查询的时候,查询的地方是在/var/lib/rpm目录下的数据库文件。

    # 根据命令后面所带参数可以分为四种:

    # 一、命令后不带参数

    # rpm -qa :查询所有已经安装的软件名称

    # 二、带安装的软件名称

    # -q:查询后面接的软件是否安装,已安装有信息输出,否则没有

    # rpm -qi :列出该软件的详细信息(information),包含开发商、版本与说明等

    # rpm -ql :列出该软件所有的文件与目录(list)

    # rpm -qc :列出该软件的所有配置文件

    # rpm -qd :列出该软件的所有帮助文件(与man有关的文件)

    # rpm -qR :列出与该软件有关的依赖软件所含的文件(Required)

    # 三、带一个存在于系统的文件名称

    # rpm -qf :找出该文件属于哪个已安装的软件

    # 四、带一个 .rpm 文件

    # rpm -qp[licdR] :-qp后面接的所有参数以上面的说明为准,目的在于找出某个rpm文件内的信息,而非已

    安装的软件信息

    ② RPM的软件包的安装

    # rpm -ivh package_name.rpm

    参数:

    -i:install的意思

    -v:查看更详细的安装信息页面

    -h:以安装信息列显示安装进度

    ③ RPM的软件包的卸载与重建数据库

    # rpm -e firefox- 60.2.2- 1.el7.centos.x86_64 # 卸载firefox浏览器

    # rpm –-rebuilddb # 重建数据库

    了解:

    –nodeps :忽略依赖关系,强制卸载

    二、YUM

    1)什么是yum

    Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。

    基于rpm包管理,能够从指定的服务器(yum源)自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。

    2)yum 工具管理

    核心:需要有一个存放软件包和软件包之间依赖关系的软件仓库。

    1.需要有一个软件仓库

  • 仓库可以在本地,称之为 本地yum源

  • 仓库可以在云端,称之为 络yum源( 络必须OK)

  • 2.需要告诉yum工具到哪个仓库去找

  • 默认有一个地方,存放了*.repo文件,定义了去哪儿个仓库找

  • 3)RHEL8 配置本地yum源

    ① 本地仓库的分类

  • BaseOS 储存库

  • BaseOS 储存 旨在提供一套核心的底层操作系统的功能,为基础软件安装库

  • AppStream 储存库

  • AppStream 储存库中包括额外的用户空间应用程序、运行时语言和数据库,以支持不同工作负载和用例。AppStream 中内容有两种格式——RPM格式 和 称之为模块的RPM格式拓展

    ② 配置本地仓库

    步骤一:挂载镜像到本地系统

    # mount -o ro /dev/sr0 /mnt

    列出BaseOS 和 AppStream 的内容如下说明仓库已准备好

    [root @hsforpyp~]# ls /mnt/BaseOS/

    Packages repodata

    [root @hsforpyp~]# ls /mnt/AppStream/

    Packages repodata

    步骤二:修改配置文件指定本地储存库

    [root @hsforpypmnt]# vim /etc/yum.repos.d/local.repo

    [root @hsforpypmnt]# cat /etc/yum.repos.d/local.repo

    [BaseOS]

    name=LOCAL BaseOS YUM

    enabled= 1

    baseurl=file: ///mnt/BaseOS/

    gpgcheck= 0

    [AppStream]

    name=LOCAL APPSTREAM YUM

    enabled= 1

    baseurl=file: ///mnt/AppStream

    gpgcheck= 0

    参数说明:

    [LocalRepo]  # 存储库的名称

    name     # 存储库内容说明

    baseurl   # yum 源地址

    enabled # 存储库是否生效

    gpgcheck # 是否进行gpg校验,gpgcheck=0,那么gpgkey可以不写

    步骤三:查看是否成功(如下红方框即为成功)

    ② YUM工具的使用

    查询操作

    # yum search 关键词

    安装操作

    # yum -y install 关键词

    选项说明:

    -y:yes缩写,选择自动确认,不提示。

    卸载操作

    # yum -y remove 关键词

    选项说明:

    -y:yes缩写,选择自动确认,不提示。

    更新操作

    # yum -y update 关键词

    选项说明:

    -y:yes缩写,选择自动确认,不提示。

    三、DNF

    1)什么是DNF

    dnf是新一代的rpm软件包管理器。首次出现在 Fedora 18 这个发行版中。它取代了yum,正式成为 Fedora 22 的包管理器。

    dnf包管理器克服了yum包管理器的一些瓶颈,提升了包括用户体验,内存占用,依赖分析,运行速度等多方面的内容。dnf使用 RPM, libsolv 和 hawkey 库进行包管理操作。尽管它没有预装在 CentOS 和 RHEL 7 中,但你可以在使用yum的同时使用dnf 。

    [root @hsforpypbin]# ll /usr/bin |grep dnf

    lrwxrwxrwx. 1root root 5Feb 142019dnf -> dnf- 3

    -rwxr-xr-x. 1root root 1954Feb 142019dnf- 3

    lrwxrwxrwx. 1root root 5Feb 142019yum -> dnf- 3

    当然dnf也不是完美的,例如:在dnf中没有 –skip-broken 命令,并且没有替代命令供选择。没有判断哪个包提供了指定依赖的 resolvedep 命令,没有用来列出某个软件依赖包的 deplist 命令等等。

    2)DNF 常用参数

    语法格式

    # dnf [参数]

    四、源码编译安装

    (1)二进制包

  • 什么是二进制包?有何特点?

  • 1.已经 编译好的软件包,下载安装即可使用

    2.根据计算机CPU以及操作系统 选择合适的

    3.命名方式一般为: xlockmore-5.31-2.el6.x86_64.rpm

    4.类似于Windows中的 .exe文件

    (2)源码包

  • 什么是源码包?有何特点?

  • 1.源码包,指的是程序员写的原始的 程序代码文件,不能直接在计算机上运行

    2.需要进行 编译,变成 二进制的软件包后,才可安装使用

    3.一般可以在任何计算机上安装

    4.命名方式一般为:

    软件包名.tar.gz

    软件包名.tar.bz2

    软件包名.tar.xz

    软件包名.zip

    (3)二进制源码包(.src/.rpm)

  • 什么是二进制源码包?有什么特点?

  • 1.二进制源码包,是一个 半成品,安装后不能直接使用

    2.二进制源码包,需要使用 rpmbuild工具重建成真正的 rpm包或者重建成源码包才可安装使用

    3二进制源码包,命名方式一般为:

  • mysql-community-5.7.25-1.el6. src.rpm

  • mysql-community-5.7.25-1.el7. src.rpm

  • (4)常见的二进制包

    (5)二进制包与源码包区别

    (6)源码安装

    ① 获取软件的源码包

    官 获取,一般都是 *.tar.gz

    ② 源码安装三板斧

    配置 ./configure(软件安装路径,不配置使用默认路径)

    编译 make(把软件的源码包做成类似rpm的可以直接安装的软件)

    安装 make install(把编译好的程序安装到Linux系统中)

    源码安装cmatrix代码雨

    步骤一:对软件进行解压缩

    # tar -zxf cmatrix- 1.2a.tar.gz

    步骤二:进入cmatrix文件夹,对软件进行配置

    # cd cmatrix- 1.2a/

    # ./configure

    步骤三:编译软件,使用 make命令

    # make

    常见错误:

    cmatrix.c: 37: 20: fatal error:curses.h:No such file or directory

    出现以上问题的原因在于系统没有找到ncurses-devel软件包

    解决方案:

    # yum install ncurses-devel -y

    步骤四:安装软件 make install

    # make install

    测试代码雨:

    # cmatrix

    (7)源码安装常用配置

    # cd 软件源码包

    # ./configure [选项]

    # ./configure –help

    –prefix=… Directories to put files in /usr/local 软件家目录

    –bindir=… $prefix/bin 命令的目录

    –etcdir=… $prefix/etc 配置文件的目录 httpd => /etc/httpd/httpd.conf

    –mandir=… $prefix/share/man man 文档路径

    –locale=… $prefix/share/locale 语言编码

    END

    官方站点:www.linuxprobe.com

    Linux命令大全:www.linuxcool.com

    (新群,火热加群中……)

    声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

    上一篇 2022年9月10日
    下一篇 2022年9月10日

    相关推荐