Linux系统:yum仓库

发布时间:2024年01月16日

目录???????

一、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目录下
pgpcheck=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目录下
pgpcheck=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/$releasever/       
#指定安装包的位置是在清华云上
pgpcheck=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           #测试安装软件是否成功
CentOS系统的yum源:
#阿里云
https://mirrors.aliyun.com/centos/$releasever/ 
#腾讯云
https://mirrors.cloud.tencent.com/centos/$releasever/ 
#华为云
https://repo.huaweicloud.com/centos/$releasever/ 
#清华大学
https://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/


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                  #指定安装包的位置
pgpcheck=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 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目录下会生成新版本的内核文件

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

文章来源:https://blog.csdn.net/m0_71815887/article/details/135610566
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。