Linux Yum源管理

2023年 7月 25日 29.8k 0

一、YUM概述

1、Linux软件的安装方式

在CentOS系统中,软件管理方式通常有三种方式:rpm安装yum安装以及编译安装

编译安装,从过程上来讲比较麻烦,包需要用户自行下载,下载的是源码包,需要进行编译操作,编译好了才能进行安装,这个过程对于刚接触Linux的人来说比较麻烦,而且还容易出错。好处在于是源码包,对于有需要自定义模块的用户来说非常方便。(就业班会着重讲解)

2、什么是yum

 Yum(全称为 `Yellow dog Updater, Modified`)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。
​
 基于rpm包管理,能够从**指定的服务器**(yum源)自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。

yum配置文件位置

#cd /etc/yum.repos.d/
#ll

img

-rw-r--r--. 1 root root 1991 Mar 28 2017 CentOS-Base.repo 网络yum源配置文件 -rw-r--r--. 1 root root 647 Mar 28 2017 CentOS-Debuginfo.repo 内核相关的更新包 -rw-r--r--. 1 root root 289 Mar 28 2017 CentOS-fasttrack.repo 快速通道 -rw-r--r--. 1 root root 630 Mar 28 2017 CentOS-Media.repo 本地yum源配置文件 -rw-r--r--. 1 root root 7989 Mar 28 2017 CentOS-Vault.repo 最近版本加入老本的YUM配置

3、配置阿里yum源

 使用阿里yum源代替系统默认的yum源
① 备份默认源
#cd /etc/yum.repos.d/
#mv CentOS-Base.repo CentOS-Base.repo.bak

② 下载新CentOS-Base.repo
#wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
含义:使用阿里云的yum源代替默认的yum源,下载软件更快


③ 清除所有缓存
#yum clean all 

④ 重新生成缓存
#yum makecache

mirrors.aliyun.com/repo/选择不同ce…

img

img

img

4、yum命令

① 查询操作

语法:# yum search 关键词

img

② 安装操作

语法:# yum [-y] install 关键词

img

③ 卸载操作

语法:# yum [-y] remove 关键词

img

④ 更新操作

语法:#yum [-y] update [包的关键词]

特别注意:包的关键词如果不写,则表示更新整个系统(全局更新,也包含内核)

img

㈡ yum源的优点

能够解决软件包之间的依赖关系,提高运维人员的工作效率。

㈢ yum源的分类

1、本地yum源

yum仓库在本地(系统光盘/镜像文件)

2、网络yum源

yum仓库不在本地,在远程

  • 国内较知名的网络源(aliyun源,163源,sohu源,知名大学开源镜像等) 阿里源:opsx.alibaba.com/mirror 网易源:mirrors.163.com/ 搜狐源:mirrors.sohu.com/ 清华源:mirrors.tuna.tsinghua.edu.cn/
  • 国外较知名的网络源(centos源、redhat源、扩展[1]源等)
  • 特定软件相关的网络源(Nginx、MySQL、Zabbix等)

二、yum源配置(重点)

㈠ 本地yum源配置

1、本地需要有仓库

① 虚拟光驱装载镜像文件
② 将光盘挂载到本地目录
/mnt	操作系统默认的挂载点

mount [挂载选项] 需要挂载的设备  挂载点

手动挂载光盘到/mnt
lsblk		查看当前系统所有的设备文件
mount -o ro /dev/sr0 /mnt
注意:手动挂载后,系统重启需要再次手动挂载
③ 开机自动挂载
修改/etc/rc.local文件

/etc/rc.local	操作系统开机最后读取的一个文件
echo "mount -o ro /dev/sr0 /mnt" >> /etc/rc.local

2、修改配置文件指向本地仓库

① 知道配置文件存放路径
[root@yunwei yum.repos.d]# pwd
/etc/yum.repos.d
② 修改配置文件
注意:文件名必须以.repo结尾
[root@yunwei yum.repos.d]# vi local.repo
[local]					仓库的名字,不要有特殊符号(自定义)
name=local yum			仓库描述
baseurl=file:///mnt	指定yum仓库的路径(重要);file://表示本地仓库;ftp://或者http://
enabled=1			   启用仓库,1表示启用;0表示不启用
gpgcheck=0			   不用校验软件包的签名,0表示不校验;1表示校验

===================================================================
# man 5 yum.conf
[repositoryid]
name=Some name for this repository
baseurl=url://server1/path/to/repository/
        url://server2/path/to/repository/
        url://server3/path/to/repository/
enabled=1
gpgcheck=0

测试验证:
yum clean all		清空yum缓存
yum makecache 		创建yum缓存
yum list				查看仓库里的软件包

㈡ 网络yum源配置

1、主机需要访问互联网

说明:如果配置的是外网源,当前主机需要访问互联网。

2、修改配置文件指向网络仓库

① 特定软件网络源
[root@yunwei yum.repos.d]# vi nginx.repo
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/6/x86_64/
gpgcheck=0
enabled=1
说明:
baseurl=http://nginx.org/packages/centos/6/$basearch/
$basearch表示当前系统cpu架构,如果系统是32位会找32位软件包;如果64位会找64位软件包
② 基础软件网络源
[root@yunwei yum.repos.d]# vi 163.repo 
[163]
name=163 network yum
baseurl=http://mirrors.163.com/centos/6/os/x86_64/
enabled=1
gpgcheck=1
gpgkey=http://mirrors.163.com/centos/6/os/x86_64/RPM-GPG-KEY-CentOS-6

[root@yunwei yum.repos.d]# vi aliyun.repo 
[aliyun]
name=aliyun
baseurl=http://mirrors.aliyun.com/centos/6/os/x86_64/
enabled=1
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/6/os/x86_64/RPM-GPG-KEY-CentOS-6

3、通过安装相应软件包直接配置

说明:该方法是通过安装软件包,自动在相应目录里创建.repo文件(自动配置)

epel源:
https://mirrors.aliyun.com/epel/6/x86_64/epel-release-6-8.noarch.rpm
mysql源:
https://repo.mysql.com/mysql-community-release-el6.rpm
https://repo.mysql.com/mysql-community-release-el7.rpm

4、总结

yum配置(重点):

  • 本地yum源配置核心
      • 本地需要有软件仓库——>光盘挂载到系统某个目录上(mount -o ro /dev/sr0 /mnt)
      • 告诉yum工具去哪个仓库找软件包——>修改配置(/etc/yum.repos.d/xxx.repo
  • 网络yum源配置核心
      • 当前主机必须能够访问互联网(外网源)
      • 告诉yum工具去哪个仓库找软件包——>修改配置(/etc/yum.repos.d/xxx.repo
      • 配置方法2种:直接修改配置文件;下载rpm包,安装软件包自动帮我配置
  • 如果多个仓库里有相同的软件包,高版本优先
  • 多个yum源,可以指定优先级,但是需要安装插件,修改配置文件完成【参考扩展补充】
  • ㈢ 缓存安装的软件包

    1、什么时候需要缓存软包?

    • 下次还需要安装相同版本的软件包
    • 由于网络原因导致网络安装非常慢,将软件包缓存下来,配置本地仓库

    2、如何缓存软包?

    修改配置文件/etc/yum.conf

    # vim /etc/yum.conf
    [main]
    cachedir=/var/cache/yum/$basearch/$releasever	定义软件包的缓存路径
    keepcache=1			1开启缓存;0关闭
    debuglevel=2
    logfile=/var/log/yum.log
    ...
    

    ㈣ 自建yum仓库

    **思考1:**什么情况下需要自建yum仓库?

    思路:

  • 创建一个目录来保存相应的软件
  • 需要在该目录下生成repodata目录
  • 修改配置文件指向本地自建仓库
  • 步骤:

  • 创建一个目录来保存相应软件
  • [root@yunwei soft]# mkdir /soft
    
  • 将你准备的所有软件包拷贝到/soft目录里
  • 说明:以下只是演示举例,以后根据自己的实际情况,将你准备的软件包考到本地目录就行
    [root@yunwei soft]# pwd
    /soft
    [root@yunwei soft]# cp /mnt/Packages/samba* /soft/
    [root@yunwei soft]# cp /mnt/Packages/libtevent-0.9.26-2.el6_7.x86_64.rpm /soft
    [root@yunwei soft]# cp /mnt/Packages/libtalloc-2.1.5-1.el6_7.x86_64.rpm /soft/
    
  • 扫描软件包所在目录生成repodata目录
  • [root@yunwei soft]# yum -y install createrepo
    [root@yunwei soft]# createrepo /soft
    验证是否多了repodata目录
    [root@yunwei soft]# ls /soft
    
  • 关闭本地仓库和所有网络仓库,配置自己创建的yum仓库
  • 1) 根据自己配置情况,打开本地和网络源的配置文件
    将enabled=1修改为enabled=0
    2) 创建自建源配置文件
    [root@yunwei soft]# vim /etc/yum.repos.d/myself.repo
    [myself]
    name=myself yum
    enabled=1
    baseurl=file:///soft			路径就是自己之前创建的目录,里面有软件包也有repodata目录
    gpgcheck=0
    3) 清空yum缓存重新创建
    [root@yunwei soft]# yum clean all
    [root@yunwei soft]# yum makecache
    
  • 测试验证安装samba软件
  • [root@yunwei soft]# yum install samba
    注意:安装samba软件包来自myself仓库,同时会自动安装其他依赖关系软件包
    

    任务实施

    一、配置本地yum源

    ㈠ 挂载镜像到本地

    手动挂载
    [root@yunwei ~]# mount -o ro /dev/sr0 /mnt/
    开机自动挂载
    [root@yunwei ~]# echo "mount -o ro /dev/sr0 /mnt" >> /etc/rc.local
    

    ㈡ 修改配置文件指向本地仓库

    [root@yunwei ~]# cd /etc/yum.repos.d/
    [root@yunwei yum.repos.d]# cat local.repo
    [local]
    name=local yum
    baseurl=file:///mnt
    enabled=1
    gpgcheck=0
    

    二、配置MySQL官方yum源

    ㈠ 下载官方提供的yum仓库软件包

    通过浏览器找到适合自己系统的软包下载
    https://dev.mysql.com/downloads/repo/yum/
    

    ㈡ 安装软件包来自动配置yum源

    安装软件包
    [root@yunwei ~]# rpm -ivh mysql80-community-release-el6-2.noarch.rpm
    warning: mysql80-community-release-el6-2.noarch.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
    Preparing...                ########################################### [100%]
       1:mysql80-community-relea########################################### [100%]
    
    查看自动配置的mysql源仓库配置文件
    [root@yunwei ~]# ls /etc/yum.repos.d/mysql-community*
    /etc/yum.repos.d/mysql-community.repo  /etc/yum.repos.d/mysql-community-source.repo
    
    注意:
    1.默认情况下,官方提供最新版本的软件,我们需要根据自己的情况进行修改配置文件
    2.我们需要安装mysql-5.6版本,所以关闭其他版本的仓库,只打开5.6的仓库
    
    [root@yunwei ~]# cd /etc/yum.repos.d/
    [root@yunwei yum.repos.d]# vim mysql-community.repo
    # Enable to use MySQL 5.6
    [mysql56-community]
    name=MySQL 5.6 Community Server
    baseurl=http://repo.mysql.com/yum/mysql-5.6-community/el/6/$basearch/
    enabled=1				将0改为1,开启5.6版本仓库
    gpgcheck=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
    ....
    [mysql80-community]
    name=MySQL 8.0 Community Server
    baseurl=http://repo.mysql.com/yum/mysql-8.0-community/el/6/$basearch/
    enabled=0			将1改改为0,关闭默认的8.0版本仓库
    gpgcheck=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
    
    以下两个仓库也关闭,暂时用不到
    [mysql-connectors-community]
    name=MySQL Connectors Community
    baseurl=http://repo.mysql.com/yum/mysql-connectors-community/el/6/$basearch/
    enabled=0
    gpgcheck=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
    
    [mysql-tools-community]
    name=MySQL Tools Community
    baseurl=http://repo.mysql.com/yum/mysql-tools-community/el/6/$basearch/
    enabled=0
    gpgcheck=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
    

    ㈢ 清空yum缓存重新创建缓存

    [root@yunwei yum.repos.d]# yum clean all
    [root@yunwei yum.repos.d]# yum makecache
    

    img

    三、安装MySQL-5.6.43版本软件包

    [root@yunwei ~]# yum install mysql-community-server
    

    img

    img

    img

    说明:

  • 通过网络安装,可能会由于网络原因安装不成功,多试几次即可
  • 一台机器安装好后,如果另外一台也需要安装,可以通过开启缓存下载下来,做成本地仓库安装
  • img

    任务总结

  • 明白需求
  • 拆解任务
  • 知识储备
  • 落地实现
  • 总结验证
  • 扩展补充

    1、yum仓库优先级

    问:如果有多个仓库,是否可以设置yum源的优先级设定?

    • 可以设置,但是需要安装插件yum-plugin-priorities
    • 安装完插件后,只需要在yum源配置文件*.repo里指定优先级即可,如:
    添加priority=n的配置项,n值越小优先级越高,默认99.
    [local]
    name=local yum
    baseurl=file:///mnt
    enabled=1
    gpgcheck=0
    priority=1
    

    2、yum缓存软件包

    **问:**如果想把从网络源安装的软件包下载到本地方便后续使用,怎么做呢?

    • 只需要开启yum缓存功能即可
    • 通过修改配置文件开启yum缓存功能,如下:
    [root@yunwei ~]# vim /etc/yum.conf
    [main]
    cachedir=/var/cache/yum/$basearch/$releasever		软件包的缓存路径
    keepcache=1			将0变成1,表示缓存安装软件包到本地
    debuglevel=2
    logfile=/var/log/yum.log
    ....
    

    课后强化

    • rpm工具使用
    rpm -ivh	package
    安装  
    rpm -e package
    卸载
    rpm -Uvh
    升级,如果已安装老版本,则升级;如果没安装,则直接安装
    rpm -Fvh
    升级,如果已安装老版本,则升级;如果没安装,则不安装
    rpm -ivh --force
    强制安装
    rpm --nodeps
    忽略依赖关系
    rpm -ql
    查看已经安装的软件的文件列表
    rpm -qlp  package.rpm 
    查看未安装的rpm包里的文件列表
    rpm -qa  查看已经安装的所有rpm包
    rpm -qd  查看软件的文档列表
    rpm -qc  查看软件的配置文件
    rpm -qi  查看软件的详细信息
    rpm -qf  filename
    查看文件来自哪个rpm包
    rpm --import    key_file
    导入公钥用于检查rpm文件的签名
    rpm -checksig   package.rpm
    检查rpm包的签名
    
    • yum工具使用
    # yum install package -y
    默认是安装来自仓库里的软件,指定的是软件名字。多个包空格隔开;-y (取消交互)
    # yum install ./xlockmore-5.31-2.el6.x86_64.rpm
    或者
    # yum localinstall ./xlockmore-5.31-2.el6.x86_64.rpm
    安装来自本地指定路径下的rpm包,而不是来自仓库
    # yum remove 或者 erase package
    卸载软件包
    # yum update
    更新仓库里所有比本机已经安装过的软件要的软件  
    # yum update package
    指定升级的软件
    # yum search mysql
    搜索出所有软件名字或者软件描述包含“mysql”关键字的软件
    # yum provides  "*libmysqlclient.so*"
    找出模块由哪些软件包提供
    # yum provides "*xeye*"
    搜索一个包含xeye关键字的软件包
    # yum clean all
    清空之前的yum列表缓存
    # yum makecache
    创建新的缓存
    # yum list
    列出仓库里的所有软件包
    # yum repolist
    列出已配置的软件仓库
    # yum list|tail
    查看未安装的软件包
    # yum list |grep 关键字
    @代表已经安装成功
    # yum list installed
    查看已安装的包
    # yum grouplist
    查看包组
    # yum groupinstall  "包组"
    安装包组
    # yum groupremove "包组"
    # md5sum +包名
    直接校验第三方提供的软件包
    

    相关文章

    服务器端口转发,带你了解服务器端口转发
    服务器开放端口,服务器开放端口的步骤
    产品推荐:7月受欢迎AI容器镜像来了,有Qwen系列大模型镜像
    如何使用 WinGet 下载 Microsoft Store 应用
    百度搜索:蓝易云 – 熟悉ubuntu apt-get命令详解
    百度搜索:蓝易云 – 域名解析成功但ping不通解决方案

    发布评论