Linux软件包管理:RPM与YUM江左风华

RPM命名“RedHatPackageManager”,简称则为RPM。这个机制最早由RedHat这家公司开发出来的,RPM最大的特点就是需要安装的软件已经编译过,并已经打包成RPM机制的安装包,通过里头默认的数据库记录这个软件安装时需要的依赖软件。当安装在你的Linux主机时,RPM会先依照软件里头的数据查询Linux主机的依赖属性软件是否满足,若满足则予以安装,若不满足则不予安装。

1、RPM优缺点

优点:

1)软件已经编译打包,所以传输和安装方便,让用户免除编译

2)在安装之前,会先检查系统的磁盘、操作系统版本等,避免错误安装

3)软件的信息都已经记录在linux主机的数据库上,方便查询、升级和卸载

缺点:

1)软件包安装的环境必须与打包时的环境一致或相当

2)必须安装了软件的依赖软件

3)卸载时,最底层的软件不能先移除,否则可能造成整个系统不能用为了解决RPM属性依赖的问题,下面也将会为你详细介绍YUM的使用方法。

2、rpm包命名的含义

RPM包的命名格式:

软件名称-版本号-发布次数.适合linux系统.硬件平台.rpm例如:ftp-0.17-74.fc27.i686.rpm

注意:

包全名:rpm操作没有安装的软件包,软件包使用的是包全名

包名:rpm操作的已经安装的软件,软件包使用的是包名

例如上面的例子,包全名为ftp-0.17-74.fc27.i686.rpm,包名为ftp。

3、RPM安装软件的默认路径

/etc配置文件放置目录

/usr/bin一些可执行文件

/usr/lib一些程序使用的动态链接库

/usr/share/doc一些基本的软件使用手册与说明文件

/usr/share/man一些manpage档案

4、RPM安装原理图

二、RPM使用手册

1、软件安装(install)

rpm-ivhpackage-name

参数说明(后面括号内为英文说明):

-i:install的意思,安装

-v:查看更详细的安装信息画面(providemoredetailedoutput)

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

2、软件升级

rpm–Uvhfoo-2.0-1.i386.rpm

参数说明(后面括号内为英文说明):-U:upgrade的意思,更新软件,若系统中没有该软件则进行安装(upgradepackage(s))

-F:freshen的意思,更新系统已安装的某个软件(upgradepackage(s)ifalreadyinstaalled)

3、查询模式

RPM在查询的时候,其实查询的地方是/var/lib/rpm/这个目录下的数据库文件。另外,RPM也可以查询未安装的

RPM的查询语法为:

rpm{-q|--query}[select-options][query-options]常用参数说明(后面括号内为英文说明):

-a:all,列出已经安装在本机的所有软件(Queryallinstaledpackages.)

-p:package,查询一个RPM文件的信息(Queryan(uninstalled)package.)

-f:file,由后面接的文件名称找出该文件属于哪狐假虎威已安装的软件(Querypackageowningfile.)

-i:information,列出该软件的详细信息,包含开发商、版本与说明等(Displaypackageinformation,includingname,version,anddescription.)

-l:list,列出该软件所有的文件与目录所在完整文件名(Listfileinpackage)

-c:configuration,列出该软件的所有设置文件(找出在/etc/下面的文件名而已)(Listonlyconfigurationfiles)

-d:documentation,列出该软件所有的帮助文档(Listonlydocumentationfiles)

-R:required,列出与该软件有关的依赖软件所含的文件(Listcapabilitiesonwhichthisdepends.)

注意:在查询的部分,所有的参数之前都要加上-q才是所谓的查询。

4、卸载软件

使用rpm的卸载过程一定要由最上层往下卸载,以rp-pppoe为例,这个软件主要是依据ppp这个软件来安装的,所以当你要卸载ppp的时候,就必须先卸载rp-pppoe才行!

删除的命令非常简单,通过-e参数就可以完成。不过,很常发生软件属性依赖导致无法山洼某些软件的问题。

rpm-egcc

三、yum使用

简介:YUM可以看作是CS架构的软件,YUM的存在很好的解决了RPM的属性依赖问题;YUM通过依赖rpm软件包管理器,实现了rpm软件包管理器在功能上的扩展,因此YUM是不能脱离rpm而独立运行的。

2、yum的特点

1)可以同时配置多个yum资源库(Repository)

2)简洁的配置文件(/etc/yum.conf)

3)自动解决增加或删除rpm包时遇到的依赖性问题

4)使用方便

5)保持与RPM数据库的一致性

3、YUM原理说明

Server端先对程序包进行分类后存储到不同repository容器中;再通过收集到大量的rpm的数据库文件中程序包之间的依赖关系数据,生成对应的依赖关系和所需文件在本地的存放位置的说明文件(.xml格式),存放在本地的repodata目录下供Client端取用;

Cilent端通过yum命令安装软件时发现缺少某些依赖性程序包,Client会根据本地的配置文件(/etc/yum.repos.d/*.repo)找到指定的Server端,从Server端repo目录下获取说明文件xxx.xml后存储在本地/var/cache/yum中方便以后读取,通过xxx.xml文件查找到需要安装的依赖性程序包在Server端的存放位置,再进入Server端yum库中的指定repository容器中获取所需程序包,下载完成后在本地实现安装。

注意:YUM是一个在线软件管理工具,所以使用YUM进行的操作大都是需要在联网的条件下才能正常使用。

四、yum配置文件

1、yum容器说明

虽然yum是你在联网后就能直接使用,不过,由于你系统的站点镜像没选择好,会导致连接速度非常慢!所以,这时候就需要我们去手动修改yum的设置文档了。

在yum服务器的容器里面,最重要的一个目录就是那个“repodata”,该目录是分析RPM软件后所产生的软件依赖数据放置处。因此,当你找到容器所在网址时,最重要的就是该网址下面一定要有一个名为“repodata”的目录存在,那就是容器的网址了。

2、容器查询

首先,可以先查询一下目录yumserver所使用的容器有哪些。

使用命令:yumrepolistall,查询结果如下:

如上图,只有当最右边的status为enabled该容器才算激活,/etc/yum.repos.d/里面会有多个配置文件(文件名以.repo结尾),yum会从里面逐个查找,所以里面的容器名称不能有重复。

3、配置文件修改

1)yum容器配置文件路径:/etc/yum.repos.d/目录下以.repo结尾的文件都是yum源

2)打开配置文件:vi/etc/yum.repos.d/CenOS-Base.repo,内容如下:

如上只是部分容器的截图,该配置文件的说明如下:

name:只是说明一下这个容器的意义而已,重要性不高。

mirrorlist:列出这个容器可以使用的镜像站点,如果不想使用可以批注掉这一行。

baseurl:这个最重要,因为后面接的就是容器的实际网址。mirrorlist是由yum程序自行去找镜像站点,baseurl则是指定固定的一个容器网址。

enable=1:启动这个容器,默认值也为1。关闭这个容器可以设置enable=0。

gpgcheck=1:指定是否需要查阅RPM文件内的数字证书。

gpgkey:数字证书的公钥文件所在位置,使用默认值即可。

1)yum会自动识别/etc/yum.repos.d/目录以.repo结尾的文件。

2)当我们修改了配置文件的网址却没有修改容器名称,可以会造成本机的列表与yum服务器的列表不同步,这时就需要手动来清除容器的数据了:

语法:yumclean[packages|headers|all]

参数:

packages:将已下载的软件文件删除

headers:将下载的软件文件头删除

all:将所有容器数据都删除

yumcleanall

五、yum源配置

1)本地ios镜像配置本地yum源

从CentOS7官网下载DVD中存在需要的大部分软件,所以在没有网络的情况下可以配置yum源为本地的DVD,下载速度快,软件稳定。1.如果使用虚拟机,那么就在虚拟机中挂载DVD的iso文件。2.使用如下命令新建一个挂载点并挂载修改yum源配置

[root@centos6~]#mkdir/media/cdrom//创建一个挂载点目录[root@centos6~]#mount/dev/cdrom/media/cdrom///把挂载的镜像挂载到cdrom目录作为yum源

3.修改yum源配置,创建CentOS-cdrom.repo文件作为本地ios镜像挂载源

[root@centos6~]#cd/etc/yum.repos.d/[root@centos6yum.repos.d]#lsCentOS-Base.repoCentOS-Debuginfo.repoCentOS-Media.repoCentOS-Vault.repo[root@centos6yum.repos.d]#cpCentOS-Base.repoCentOS-cdrom.repo-p//创建本地镜像repo文件[root@centos6yum.repos.d]#lsCentOS-Base.repoCentOS-Debuginfo.repoCentOS-Vault.repoCentOS-cdrom.repoCentOS-Media.repo

5、清空yum已存在的所有源信息

yumcleanall6、查看本地源所有的软件

yumlistyumrepolist2)本地内网镜像配置本地yum源

配置yum文件与上面类似

1、编辑配置文件:/etc/yum.repos.d/CentOS-Base.rep;’

2、然后注释mirrorlist,放开baseurl配置成yum源位置,还有gpgkey也配置成对应位置;

3、配置完这些以后,然后在[updates]和[extras]都添加一个enabled=0配置项,表示不生效,一般只用[base]中的配置即可,配置好之后保存退出;

4、然后执行yumrepolist查看yum源信息;

注意:有些特殊情况下,如果配置了CentOS-Base.repo还是会出现连接一些网址并且失败,这时候手动检查一下/etc/yum.repos.d/下面其他一些配置文件,看看是否有连接外网的配置,如果有的话直接enabled=0禁用掉就可以了;需要注意一点就是/etc/yum.repos.d/下面所有的配置文件都可以用,包括自己建的比如CentOS.repo也是可以的,只要是启用的,yum都会进行加载,一般都是启用CentOS-Base.repo,其余禁用就可以了

六、yum使用手册

1、查询

search:搜索某个软件名称或者是描述的重要关键字;

list:列出目前yum所管理的所有的软件名称与版本,有点类似于rpm-qa

info:同上,不过有点类似于rpm-qai

provides:从文件去搜索软件!类似于rpm-qf

install:后面接要安装的软件。

update:后面接要升级的软件。若要整个系统都升级,就直接update即可。

例:安装一个emacs编辑器软件yuminstallemacs小技巧:使用参数-y,当遇到需要等待用户输入时,这个选项会提供yes的响应,如上面的例子可以写成:yum-yinstallemacs

3、卸载

例:卸载上面例子安装的emacsyumremoveemacs4、软件组管理

还记得全新安装CentOS时,不是可以选择所需的软件么?而那些软件不是利用GNOME/KDE/XWindow之类的名称存在吗?其实这就是软件组。软件级的存在,对于大量的一系列软件安装是非常有用的一个功能。

grouplist:列出所有可用的组列表

groupinfo:后面接groupname,则可以了解该组内含的所有组名称

groupstall:安装一整级的软件

groupremove:删除某个组

1)查询目前容器与本机上面的可用与安装过的软件组有哪些yumgrouplist2)查看一个软件组的信息yumgroupinfoGNOME3)安装桌面环境GNOMEyumgroupstallGNOME

THE END
1.Linux:开发工具(1)安装命令:sudo yum remove lrzsz 无论是安装还是卸载,都会询问你是否确定,如果你不希望他询问,可以加一个-y 1.3.3 一些好玩的软件(可以自己查) sl cowsay 二、Linux开发工具vim vim是Linux下常用的一款多模式的文本编辑器(可以用他来写代码),每个Linux账户都独有一个vim编辑器。 https://atigger.cn/archives/434.html
2.SRE就业考试题3、升级 centos 内核版本为最新版本的内核 rpm 包完成? 备份重要数据 查看当前内核版本 uname -r 安装官方仓库的最新的稳定版内核 yum install kernel -y 设置默认引导项 #查看可用内核列表,awk-F\''$1=="menuentry " {print i++ " : " $2}'/etc/grub2.cfg#设置默认内核grub2-set-default0#更新GRUBhttps://blog.csdn.net/huierwe007/article/details/144389331
3.服务器程序开发,哪种编程语言是最佳选择?服务器程序可以使用多种编程语言编写,包括但不限于 Python、Java、C++、Go、Node.js 等。 服务器程序用什么语言? 在当今的数字化时代,服务器程序扮演着至关重要的角色,它们负责处理客户端请求、执行业务逻辑、管理数据存储等关键任务,选择合适的编程语言来开发服务器程序是至关重要的,因为它直接影响到程序的性能、可https://www.kdun.com/ask/1403197.html
4.吊打面试官的java面试神器!全网最全Java面试题总结2.7 垃圾回收的优点和原理。并考虑2种回收机制。 2.8 垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收? 2.9 Java中会存在内存泄漏吗,请简单描述。 2.10 深拷贝和浅拷贝 2.11 System.gc() 和 Runtime.gc() 会做什么事情? https://www.bilibili.com/opus/1004118467146678279
5.Linux期末大考来袭:你准备好了吗?期末试题解析与备考攻略3.系统管理与维护:涉及用户管理(添加、删除用户,修改密码等)、软件包管理(使用apt、yum等工具安装、卸载软件)、系统监控(使用top、htop、vmstat等工具)、日志分析等内容 4.网络配置与服务管理:考察网络配置(如IP地址设置、DNS解析)、防火墙规则设置(iptables或firewalld)、常见服务(如Apache、Nginx、MySQL、SSH)的安http://www.iis8.com/iis8_com/html/2024/12/422610.html
6.阿里后端优化这么恐怖?看完这20W字Java性能实战经验手册,最少P7编程许多人在解决问题的时候,只能看到表面,然而性能问题都藏得很深,就不能仅凭感觉入手。总之,一旦遇到“性能优化”问题,很少人能够由点及面逆向分析,最终找到瓶颈点和优化方法,而性能优化是软件工程的深水区,也是衡量一个程序员能力高低的标准。俗话说:“授人以鱼不如授人以渔”。在这分享这份java性能调优实战手册给https://www.163.com/dy/article/JJB0TT410553TKEZ.html
7.rpm与yum使用及优缺点是什么–PingCode优点: 自动解决依赖关系:可以自动查找和安装所需的依赖项。 易于使用:命令结构简单,适合初学者。 缺点: 灵活性较低:与rpm相比,可选配置较少。 速度慢于rpm:自动解决依赖关系可能会增加操作时间。 常见问答 Q1:我应该使用rpm还是yum? A1:如果需要精确控制和灵活性,请使用rpm;如果优先考虑易用性和自动解决依赖关系https://docs.pingcode.com/ask/48741.html
8.Linux系统中rpm与yum的区别是什么?老男孩Linux运维云计算课程凡是接触过Linux系统的用户,绝大部分人都知道rpm和yum,而且很多用户经常把rpm和yum混为一谈,因为它们名字相似、功能相同,都可以用于软件的安装。那么Linux系统中rpm与yum的区别是什么?本文为大家详细讲解一下,希望对你们有用。 凡是接触过Linux系统的用户,绝大部分人都知道rpm和yum,而且很多用户经常把rpm和yum混为一https://www.oldboyedu.com/blog/3708.html
9.Linux下rpmyum和源码三种安装方式详细介绍Linux程序会提供很多RPM包的格式,用户根据系统情况选择适合的RPM包直接安装,而源码包相当于通用型,可以是用于多个系统中,所以需要运行configure脚本来检测环境,生成对应的安装信息。1.1 源码安装优点 1、文档齐全2、因为可以定位到代码,所以debug方便3、本机兼容性最好(由于是本机编译的,只要编译通过,就没有各种库的依赖的https://www.jb51.net/article/175923.htm
10.openeuler与centos学哪个lanhy的技术博客CentOS使用YUM(Yellowdog Updater, Modified)作为其包管理系统。YUM使得安装、更新和删除软件包变得相对简单。例如,要安装Nginx服务器,您可以运行以下命令: sudo yum install nginx 1. Ubuntu使用APT Ubuntu使用APT(Advanced Package Tool)作为其包管理系统。与YUM类似,APT也提供了易于使用的方式来管理软件包。以下是在https://blog.51cto.com/u_12959/12802086
11.什么是yum源?如何对其进行配置?腾讯云开发者社区3)yum源:可以理解为rpm软件包管理的升级版 优点:能够解决软件包之间的依赖关系,提高运维人员的工作效率。 注:yum源底层还是基于RPM进行软件安装操作的,所以yum安装软件后,也可以通过rpm -qa |grep 软件名称来查询软件包是否已安装。 3、yum源分类 3.1 本地yum源 https://cloud.tencent.com/developer/article/2431523
12.MySQL高可用架构(MHA)与Atlas读写分离wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo # 安装manager 依赖包 yum install -y perl-Config-Tiny epel-release perl-Log-Dispatch perl-Parallel-ForkManager perl-Time-HiRes # 安装manager管理软件 rpm -ivh mha4mysql-manager-0.56-0.el6.noarch.rpm https://www.imooc.com/article/313246
13.字节上岸成功,整理一波测试开发岗的基础知识,含答案本科非科班,春招找非技术岗工作失败(无法通过群面)于是秋招转码了。谁又能想到秋招形势严峻比春招还严峻…. 太难了!!! 8月末开始投简历,9月份开始面了tplink、字节、美团、广立微电子这四家公司,然后这边最近秋招结束,所以来发下自己整理的一些知识点来 分享,https://maimai.cn/article/detail?fid=1679089730&efid=YLyF0ejo0qEtjVB1UUE-yw
14.Linux操作系统(Centos7)零基础入门,超详细!3-U #升级rpm软件包服务 rpm -Uvh zsh-5.0.2-7.el7.x86_64.rpm(注意升级的软件包一定要比当前软件包版本高) (9)rpm包卸载 -e #卸载 rpm -e zsh(注意这里要写软件名,不要写包名) 4.2.Linux安装服务软件yum方式 (1)什么是yum安装? 基于C/S架构,yum安装称之为傻瓜式安装 (2)yum安装优点 方便快捷,https://developer.aliyun.com/article/1222674
15.RPM打包指南RedHatProductDocumentationRPM 软件包管理器(RPM)是运行在 RHEL、CentOS 和 Fedora 上的软件包管理系统。您可以使用 RPM 为上述任何所述操作系统分发、管理和更新创建的软件。 1.2. RPM 优点 复制链接 与传统存档文件中软件分发相比,RPM 软件包管理系统带来了一些优势。 RPM 可让您: 使用标准软件包管理工具(如 Yum 或 PackageKit)安https://access.redhat.com/documentation/zhcn/red_hat_enterprise_linux/7/html-single/rpm_packaging_guide/index
16.下载rpm包与本地yum仓库的制作前面两种是利用厂商发布的iso镜像文件作为yum仓库。当我们需要安装一些第三方提供的软件的时候我们需要到网上下载rpm的安装包,但是每次都下载多麻烦,我们可以将较常使用的rpm安装包归到一个文件里面制作成一个可以被系统识别的yum仓库,通过配置yum仓库指向文件可以将它设置成本地的yum源也可以是通过http发布的共享yum源。https://www.jianshu.com/p/286fcef565ab