Linux系统:yum仓库

目录

一、yum

1、yum概述

2、yum仓库

3、yum实现过程原理

二、yum配置文件详解

1、主配置文件

2、yum仓库设置文件

3、yum日志文件

三、yum命令详解

1、查询

1.1 yum list [软件名]

1.2 yum info [软件名]

1.3 yum search <关键词>

1.4 yum provides <关键词>

1.5 yum grouplist [包组名]

1.6 yum groupinfo [包组名]

2、yum安装升级

2.1 yum install [软件名]

2.2 yum groupinstall [包组名]

2.3 yum update

2.4 yum groupupdate

3、卸载软件

3.1 yum remove [软件名]

3.2 yum groupremove [包组名]

3.3 yum history

四、搭建yum仓库的方式 

1、通过ftp服务搭建内网yum仓库

2、通过httpd服务搭建内网yum仓库 

3、通过httpd服务搭建外网清华云仓库

五、误将rpm软件删除的解决方法

六、 为新软件搭建yum安装

七、将epel源下载到本地

八、 离线安装软件

九、升级内核


一、yum

1、yum概述

yum(Yellowdog Updater, Modified)是一种在Linux发行版中用于包管理的工具。它是为了方便管理Red Hat系列发行版(如CentOS、Fedora等)的软件包而开发的

  • 功能:yum用于安装、更新和删除软件包,以及解决软件包之间的依赖关系。它可以从预配置的软件源(repositories)中获取软件包,并自动解决依赖关系,确保所需的依赖包也被安装
  • 软件源(Repositories):yum使用软件源来获取软件包。软件源是包含软件包的在线仓库,可以是官方提供的源或第三方源。yum配置文件中包含了默认的软件源,你也可以添加自定义的软件源
  • 依赖解决:yum可以自动解决软件包之间的依赖关系。当你安装一个软件包时,如果它需要其他软件包作为依赖,yum会自动下载并安装这些依赖包
  • 软件包管理:yum提供了一组命令,用于搜索、安装、更新和删除软件包
  • 依赖关系管理:yum可以管理软件包之间的依赖关系。它会自动检查并安装所需的依赖包,确保软件包的正确安装和运行
  • 配置文件:yum的配置文件位于 /etc/yum.conf 和 /etc/yum.repos.d/ 目录下。在配置文件中,你可以指定默认的软件源、代理设置、缓存设置等
  • 插件:yum支持插件机制,可以通过插件扩展其功能。插件可以提供额外的命令、功能和增强的用户体验

2、yum仓库

yum仓库(Repository)是一种包含软件包的集合,用于在Linux系统中安装、更新和管理软件。它是yum包管理工具的核心组成部分,提供了一个集中的位置,用户可以从中获取软件包并解决软件包之间的依赖关系

  • 软件源(Repositories):yum仓库通常由软件源组成。软件源是包含软件包的在线仓库,可以是官方提供的源或第三方源。软件源中包含了软件包的元数据信息,如软件包的名称、版本、依赖关系等
  • 软件包的获取:通过yum仓库,用户可以获取所需的软件包。yum会从配置的软件源中下载软件包,并自动解决软件包之间的依赖关系
  • 官方和第三方仓库:官方仓库由Linux发行版的官方团队维护,包含了官方支持的软件包。第三方仓库由社区或其他组织维护,可能包含一些官方仓库中不包含的软件包
  • 仓库配置:yum仓库的配置信息通常存储在 /etc/yum.repos.d/ 目录下的配置文件中。每个仓库通常由一个单独的配置文件来定义,其中包含了仓库的名称、URL、GPG密钥等信息
  • 仓库的更新:仓库中的软件包会不断更新,以包含最新的版本和修复。通过定期更新软件源,用户可以获取最新的软件包和安全更新
  • 本地仓库:除了在线仓库外,用户还可以创建本地仓库,将软件包存储在本地服务器上,并通过yum访问。这种方式可以在没有网络连接的情况下安装软件包,或者在局域网内共享软件包
  • 仓库的管理:系统管理员可以添加、删除、启用或禁用仓库,以控制系统中可用的软件包来源。这使得管理员可以更好地控制系统中安装的软件包

3、yum实现过程原理

①客户端根据配置文件找到服务端

②客户端将元信息下载到本地(元信息: 安装包的位置,以及安装的依赖关系)

③根据元信息去下载对应的安装包到本地后,然后安装

④安装完成后再删除安装包(删除需要一定的时间)

二、yum配置文件详解

1、主配置文件

位置:/etc/yum.conf

[root@localhost ~]# vim /etc/yum.conf
[main]
cachedir=/var/cache/yum/$basearch/$releasever   //yum下载的RPM包的缓存目录 $basearch代表硬件架构 $releasever系统版本比如7
keepcache=0                                     //是否保存缓存  0代表不保存,1代表保存
debuglevel=2                                    //调试级别了解即可
logfile=/var/log/yum.log					    // 日志文件位置
exactarch=1								        //是否允许不同版本的rpm安装
obsoletes=1									    //update 的一个参数是否可以允许旧版本的运行	
gpgcheck=1                                      //验证秘钥
plugins=1                                       //是否允许插件1代表可以
installonly_limit=5                             //保存几个内核 5代表5个
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=23&ref=http://bugs.centos.org/bug_report_page.php?category=yum
distroverpkg=centos-release

注:

yum的repo配置文件中可用的变量:
$releasever: 当前OS的发行版的主版本号,如:8,7,6
$arch: CPU架构,如:aarch64, i586, i686,x86_64等
$basearch:系统基础平台;i386, x86_64
$contentdir:表示目录,比如:centos-8,centos-7
$YUM0-$YUM9:自定义变量

2、yum仓库设置文件

位置:/etc/yum.repos.d/*.repo

3、yum日志文件

位置:/var/log/yum.log

三、yum命令详解

命令不加关键字加入关键词、软件包、软件包组
yum list显示所有可用包单个的可安装包
yum info显示所有可用包的信息单个具体的信息
yum search\模糊查找所有的相关信息
yum provides\精确查找
yum grouplist显示所有可用包组显示具体的包组
yum groupinfo显示所有的包组具体信息显示具体的包组的具体信息
yum install\安装具体软件包
yum groupinstall\安装具体软件包组
yum update所有软件升级具体软件升级
命令不加关键字加入关键词、软件包、软件包组
yum group update所有包组升级具体包组升级
yum remove\卸载具体软件
yum groupremove\卸载具体包组软件
yum history查看当前yum操作历史\
yum history undo加入序号卸载序号里安装的软件\
yum history redo加入序号重新执行序号里的操作\

1、查询

1.1 yum list [软件名]

显示yum仓库里指定的安装包,如不加软件名是显示所有的可用包

1.2 yum info [软件名]

显示指定安装包的详细信息

1.3 yum search <关键词>

根据关键字查找软件安装包,相当于只需要知道这个包里的某个关键字,就会全部给匹配出来

1.4 yum provides <关键词>

查询某个程序来源于哪个安装包

1.5 yum grouplist [包组名]

查询指定的安装包组, 不加包组名就是显示所有安装包组

1.6 yum groupinfo [包组名]

显示指定安装包组的详细信息

2、yum安装升级

2.1 yum install [软件名]

安装软件包

2.2 yum groupinstall [包组名]

安装软件包组

如安装GNOME桌面
[root@localhost ~]#yum -y upgrade
[root@localhost ~]#yum -y groups install "GNOME Desktop"

2.3 yum update

更新安装包,后面加具体包名称就是更新单个安装包,不加就是更新全部安装包

首先需要更新的安装包库,否则也无法更新

2.4 yum groupupdate

更新安装包组,后面加具体包组名称就是更新单个安装包组,不加就是更新全部安装包组

首先需要更新的安装包组库,否则也无法更新

3、卸载软件

3.1 yum remove [软件名]

必须加软件名,表示卸载已安装的软件

3.2 yum groupremove [包组名]

必须加软件包组名,用于从系统中移除指定的软件包组

3.3 yum history

查看历史的使用记录

①yum remove只能卸载指定软件的主包,无法卸载其依赖关系的安装包

②可用yum history查看yum安装的历史记录

 ③查看第六次yum具体安装的信息

④解决依赖关系的安装包

以上步骤就可以完全卸载干净指定的软件 

#如果后悔卸载该软件,可以使用该命令重新安装一遍
yum history redo 6 

四、搭建yum仓库的方式 

前提:关闭防火墙和临时防护

systemctl   stop  firewalld      #关闭防火墙
setenforce  0                    #关闭临时防护

1、通过ftp服务搭建内网yum仓库

#服务端操作:
[root@localhost ~]#yum install -y vsftpd     #下载vsftpd服务程序
[root@localhost ~]#systemctl start vsftpd    #开启vsftpd服务
[root@localhost ~]#mkdir /var/ftp/centos7    #在ftp服务器根目录下新建centos7目录用于挂载光盘
[root@localhost ~]#mount /dev/sr0 /var/ftp/centos7/    #挂载光驱到ftp服务器根目录下的centos7目录***********************************************************
#客户端操作:
[root@localhost ~]#cd /etc/yum.repos.d/       #切换到规定的目录
[root@localhost yum.repos.d]#mkdir bak        #新建bak目录,用于存放网络yum源
[root@localhost yum.repos.d]#mv *.repo bak    #将网络yum源移到bak目录下,减少干扰
[root@localhost yum.repos.d]#vim ftp.repo     #编辑yum仓库的配置文件
[ftp]                                    #yum仓库的描述
name=ftp                                 #指定yum仓库名
baseurl=ftp://172.16.12.10/centos7       #指定安装包的位置是在ftp服务器根目录的centos7目录下
gpgcheck=0                               #不检测安装包的安全性
[root@localhost yum.repos.d]#yum clean all       #清除缓存
[root@localhost yum.repos.d]#yum makecache       #重新下载元数据
[root@localhost yum.repos.d]#yum list            #查看yum源的来源是否是ftp
[root@localhost ~]#yum install -y tree           #测试安装软件是否成功

2、通过httpd服务搭建内网yum仓库 

#服务端操作:
[root@localhost ~]#yum install -y httpd     #下载httpd服务程序
[root@localhost ~]#systemctl start httpd    #开启httpd服务
[root@localhost ~]#mkdir /var/www/html/centos7    #在httpd服务器根目录下新建centos7目录用于挂载光盘
[root@localhost ~]#mount /dev/sr0 /var/www/html/centos7    #挂载光驱到http服务器根目录下的centos7目录***********************************************************
#客户端操作:
[root@localhost ~]#cd /etc/yum.repos.d/       #切换到规定的目录
[root@localhost yum.repos.d]#mkdir bak        #新建bak目录,用于存放网络yum源
[root@localhost yum.repos.d]#mv *.repo bak    #将网络yum源移到bak目录下,减少干扰
[root@localhost yum.repos.d]#vim http.repo     #编辑yum仓库的配置文件
[http]                                    #yum仓库的描述
name=http                                 #指定yum仓库名
baseurl=http://172.16.12.10/centos7       #指定安装包的位置是在http服务器根目录的centos7目录下
gpgcheck=0                               #不检测安装包的安全性
[root@localhost yum.repos.d]#yum clean all       #清除缓存
[root@localhost yum.repos.d]#yum makecache       #重新下载元数据
[root@localhost yum.repos.d]#yum list            #查看yum源的来源是否是http
[root@localhost ~]#yum install -y tree           #测试安装软件是否成功

 3、通过httpd服务搭建外网清华云仓库

#客户端操作:
[root@localhost ~]#cd /etc/yum.repos.d/           #切换到规定的目录
[root@localhost yum.repos.d]#mkdir bak            #新建bak目录,用于存放网络yum源
[root@localhost yum.repos.d]#mv *.repo bak        #将网络yum源移到bak目录下,减少干扰
[root@localhost yum.repos.d]#vim tsinghua.repo     #编辑yum仓库的配置文件
[tsinghua]                                         #yum仓库的描述
name=tsinghua                                      #指定yum仓库名
baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos/7/os/x86_64/ 
#指定安装包的位置是在清华云上
gpgcheck=0                                       #不检测安装包的安全性
[root@localhost yum.repos.d]#yum clean all       #清除缓存
[root@localhost yum.repos.d]#yum makecache       #重新下载元数据
[root@localhost yum.repos.d]#yum list            #查看yum源的来源是否是tsinghua
[root@localhost ~]#yum install -y tree           #测试安装软件是否成功
CentOS7系统的yum源:
#阿里云
https://mirrors.aliyun.com/centos/7/os/x86_64/ 
#腾讯云
https://mirrors.cloud.tencent.com/centos/7/os/x86_64/ 
#华为云
https://repo.huaweicloud.com/centos/7/os/x86_64/ 
#清华大学
https://mirrors.tuna.tsinghua.edu.cn/centos/7/os/x86_64/ EPEL的yum源:
#阿里云
https://mirrors.aliyun.com/epel/$releasever/x86_64
#腾讯云
https://mirrors.cloud.tencent.com/epel/$releasever/x86_64
#华为云
https://mirrors.huaweicloud.com/epel/$releasever/x86_64
#清华大学
https://mirrors.tuna.tsinghua.edu.cn/epel/$releasever/x86_64#更新源:
http://mirrors.aliyun.com/centos/$releasever/updates/$basearch/
http://mirrors.aliyuncs.com/centos/$releasever/updates/$basearch/
http://mirrors.cloud.aliyuncs.com/centos/$releasever/updates/$basearch/

五、误将rpm软件删除的解决方法

[root@localhost ~]#rpm -e rpm              #删除不了,一般也不会有人删除
[root@localhost ~]#rpm -e rpm --nodeps     #强制删除rpm

进入急救模式:安装rpm包

①reboot重启后,选择“Troubleshooting”,再选择“Rescue a CentOS system”,最后选择“Continue”后,进入急救模式

②重新安装rpm包

rpm -ivh /run/install/repo/Packages/rpm-4.11.3-25.e17.x86_64.rpm  --root=/mnt/sysimage/

六、 为新软件搭建yum安装

假设tree为新软件,此时客户要求使用yum命令安装此软件

#将新软件以“rpm”结尾的安装包移动到规定目录下,软件包找开发要
#模拟将tree的安装包放到规定目录下,在建立元数据
[root@localhost ~]#cd /opt
[root@localhost opt]#mount /dev/sr0 /mnt
[root@localhost opt]#mkdir tree
[root@localhost opt]#cp /mnt/Packages/tree-1.6.0-10.el7.x86_64.rpm /opt/tree
[root@localhost opt]#cd tree
[root@localhost tree]#mkdir Packages
[root@localhost tree]#mv tree-1.6.0-10.el7.x86_64.rpm Packages/
[root@localhost tree]#cd ..                     #返回上级目录
[root@localhost opt]#createrepo -v tree         #创建tree软件的元数据
[root@localhost tree]#cd /etc/yum.repos.d/       #切换到规定的目录
[root@localhost yum.repos.d]#mkdir bak        #新建bak目录,用于存放网络yum源
[root@localhost yum.repos.d]#mv *.repo bak    #将网络yum源移到bak目录下,减少干扰
[root@localhost yum.repos.d]#vim tree.repo     #编辑yum仓库的配置文件
[tree]                                    #yum仓库的描述
name=tree                                 #指定yum仓库名
baseurl=file:///opt/tree                  #指定安装包的位置
gpgcheck=0                                #不检测安装包的安全性
[root@localhost yum.repos.d]#yum clean all       #清除缓存
[root@localhost yum.repos.d]#yum makecache       #重新下载元数据
[root@localhost yum.repos.d]#yum list            #查看yum源的来源
[root@localhost ~]#yum install -y tree           #测试安装软件是否成功

①将软件包移动到规定目录下,创建新软件的元数据 

 ③编辑配置文件

④测试

七、将epel源下载到本地

也可安装其他源,如阿里源、腾讯源等,然后再下载到本地目录

[root@localhost ~]#yum install epel-release
#安装epel源,生成epel仓库文件
[root@localhost ~]# reposync -r epel -p /data/
#下载同步epel源到本地目录

八、 离线安装软件

①在可以上网的主机上下载该软件的安装包,然后将安装包及其依赖关系下载到指定的文件夹下

②然后将该文件夹打包,通过NFS、FTP等文件传输工具共享给离线的主机,该离线的主机就可以安装软件了

能上网的主机:
[root@localhost ~]#yum install -y nginx
[root@localhost ~]#yum install nginx --downloadonly --downloaddir=/data/
#只下载相关包至data目录

九、升级内核

[root@localhost ~]#yum install epel-release.noarch -y
[root@localhost ~]#yum install https://www.elrepo.org/elrepo-release-7.0-4.el7.elrepo.noarch.rpm      #安装内核源
[root@localhost ~]#cd /etc/yum.repos.d/
[root@localhost yum.repos.d]#vim elrepo.repo
[elrepo-kernel]
enabled=1           #打开内核库
[root@localhost yum.repos.d]#uname -r   #查看当前内核版本
[root@localhost yum.repos.d]#yum list *kernel*      #查看内核库里所有的版本的内核
[root@localhost yum.repos.d]#yum install -y kernel-lt.x86_64  
#复制你选定的内核版本下载更新即可
[root@localhost ~]#ls /boot    #查看是否生成新版本的内核文件

①安装内核源,并生成仓库配置文件,将仓库配置文件的内核库打开即可

②可查看到其他内核版本,然后安装其他内核版本即可 

 ③安装成功后,/boot目录下会生成新版本的内核文件

④在开机界面,选择新版本的内核进入系统,更新内核就成功了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/410694.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【机器学习故事】“超市货架上的智慧:如何通过机器学习优化商品布局,引爆销售热潮“

在一个明媚的早晨&#xff0c;阳光洒在你刚刚开张的超市上&#xff0c;货架上整齐地摆放着各式各样的商品&#xff0c;等待着顾客的光临。 # 导入必要的库&#xff0c;就如同你从超市的货架上挑选合适的商品和工具一样 from sklearn.model_selection import GridSearchCV from…

React入门 - 07(说一说 JSX 中的语法细节)

本章内容 目录 1、js 表达式2、列表渲染3、条件渲染4、className5、jsx 中的样式处理6、dangeouslySetInnerHTML7、htmlFor8、使用 jsx 的注意事项 上一节内容我们完成了一个简单的TodoList案例。到现在为止我们已经知道怎么在 JSX中使用 “js 表达式”和”列表渲染“了&#…

全球光伏知名企业-晶科能源联合泛微采知连,建立文控管理平台

晶科能源股份有限公司&#xff08;简称“晶科能源”&#xff09;是一家全球知名、极具创新力的太阳能科技企业。 &#xff08;图片素材来自晶科能源官网&#xff09; 公司战略性布局光伏产业链核心环节&#xff0c;聚焦光伏产品一体化研发制造和清洁能源整体解决方案提供&…

vue 里 props 类型为 Object 时设置 default: () => {} 返回的是 undefined 而不是 {}?

问题 今天遇到个小坑&#xff0c;就是 vue 里使用 props 传参类型为 Object 的时候设置 default: () > {} 报错&#xff0c;具体代码如下 <template><div class"pre-archive-info"><template v-if"infoData.kaimo ! null">{{ infoD…

Docker部署Flask项目

Docker部署Flask项目 一、准备项目代码二、编写Dockerfile三、服务器部署 一、准备项目代码 这里写了一个简单的Flask的demo&#xff0c;源代码如下&#xff1a; from flask import Flaskapp Flask(__name__)app.route("/") def index():return "<h1 styl…

C#,人工智能,机器人,路径规划,A*(AStar Algorithm)算法、源代码及计算数据可视化

Peter Hart Nils Nilsson Bertram Raphael 参考&#xff1a; C#&#xff0c;人工智能&#xff08;AI&#xff09;机器人路径规划&#xff08;Path Planning&#xff09;的ARA*&#xff08;Anytime Replanning A* Algorithm&#xff09;算法与源程序https://blog.csdn.net/…

【vscode】6、调试 shell

文章目录 经常在 IDE 下使用 高级语言后&#xff0c;往往并不习惯 shell 编程&#xff0c;因为没有酷炫的界面。但现在 vscode 可以很方便的调试 shell 脚本。 配置方法如下&#xff1a; vscode 下载 Bash Debug 插件 mac 升级 bash 版本&#xff08;因为此 vscode 插件需要 b…

Javaweb之SpringBootWeb案例分页插件的详细解析

3.1.2 分页插件 3.1.2.1 介绍 前面我们已经完了基础的分页查询&#xff0c;大家会发现&#xff1a;分页查询功能编写起来比较繁琐。 在Mapper接口中定义两个方法执行两条不同的SQL语句&#xff1a; 查询总记录数 指定页码的数据列表 在Service当中&#xff0c;调用Mapper接…

unity 2021 发布安卓版本,谷歌限流国内,报错CommandInvokationFailure: Gradle build failed

在使用 Unity 2022 打包安卓项目时&#xff0c;遇到 gradle 无法访问或下载超级慢最终超时出错的问题解决 解决方案&#xff1a; 1. 在 Build Settings 左下角打开 Player Settings&#xff0c;在 Android 平台图标选项卡下找到 Publishing Settings 区域 勾选 2. 从国内…

修改iview的表格table展开的默认icon和样式

修改前 修改后 修改内容 .title_label_list .ivu-icon-ios-add{font-size: 26px;color: #888888; } .title_label_list .ivu-icon-ios-add:hover{color: #11AAAA; } .title_label_list .ivu-icon-ios-add:before {content: "\F341"; } .title_label_list .ivu-icon-…

1.17 day4 IO网络编程

用udp实现tftp下载和上传功能 #include <myhead.h> #define PORT 69 #define IP "192.168.122.24" int shangchuan(int sfd,struct sockaddr_in sin,socklen_t socklen) {int cfd-1;if((cfdopen("./01udpk.c",O_RDONLY))-1){perror("open erro…

安卓手机变iOS!

Launcher iOS 16 - 安卓手机秒变iOS Launcher iOS 16 是一款iOS启动器&#xff0c;可以将安卓手机桌面变成iOS样子&#xff0c;还有iOS的开机动画和景深效果&#xff01; 下载链接&#xff1a;【Launcher iOS 16】 ​