首页 > 系统相关 >yum 精讲

yum 精讲

时间:2024-01-21 23:44:22浏览次数:30  
标签:-- rpm 精讲 repo yum root repos

  • 理解为什么需要用yum

    • yum就是帮你轻松管理,安装rpm软件的
  • 掌握yum源配置

    • 本地源
      • 光盘源,centos7.iso(提供了大量的基础软件rpm包)
      • 自建yum仓库目录
        • 用于离线安装linux软件
        • 需要提前准备好软件所需的所有rpm包(rpm -ivh 这种需要捋清楚rpm的包的依赖关系)
        • yum自动判断软件之间的依赖关系,轻松安装
    • 网络源
      • 配置阿里云的yum源
      • 清华源
      • 官方也提供了yum源(必然是这个最靠谱,好用)
  • 使用yum安装各种软件

    • 安装mysql5.6.43
  • 使用yum进行离线rpm安装

Linux软件的安装方式

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

yum源是什么

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

yum源有几种形式

  • 本地光盘镜像yum源
  • 网络yum源

所谓的yum源,其实就是

1.下载了一个yum的配置文件,里面就是一个url而已!

2.这个url指向了不同的镜像站,里面的一个rpm包集合地

3.当你yum install安装的时候,yum自动去这个网站里,搜索mysql名字相关的rpm进行下载,安装

如何检查软件依赖

通过rpm命令,可以检查某软件的依赖关系。注意,这种方法只适用于已安装的包。如果你需要检查一个未安装包的依赖关系,你首先需要把这个包先下载到本(不需要安装)。只能查询已安装的应用程序,依赖哪些其他软件。

yum配置文件

/etc/yum.conf

系统默认的yum仓库文件

[root@yuchao-linux01 opt]# ls /etc/yum.repos.d/ -l
total 32
-rw-r--r--. 1 root root 1664 Apr 29  2018 CentOS-Base.repo       网络yum源配置文件
-rw-r--r--. 1 root root 1309 Apr 29  2018 CentOS-CR.repo
-rw-r--r--. 1 root root  649 Apr 29  2018 CentOS-Debuginfo.repo   内核更新相关软件包
-rw-r--r--. 1 root root  314 Apr 29  2018 CentOS-fasttrack.repo   快速下载通道
-rw-r--r--. 1 root root  630 Apr 29  2018 CentOS-Media.repo        本地光盘yum配置文件
-rw-r--r--. 1 root root 1331 Apr 29  2018 CentOS-Sources.repo
-rw-r--r--. 1 root root 4768 Apr 29  2018 CentOS-Vault.repo

配置阿里yum源

使用阿里yum源代替系统默认的yum源
备份默认的yum源

1. 做好备份
[root@yuchao-linux01 yum.repos.d]# pwd
/etc/yum.repos.d
[root@yuchao-linux01 yum.repos.d]# ls
CentOS-Base.repo  CentOS-Debuginfo.repo  CentOS-Media.repo    CentOS-Vault.repo
CentOS-CR.repo    CentOS-fasttrack.repo  CentOS-Sources.repo
[root@yuchao-linux01 yum.repos.d]# 
[root@yuchao-linux01 yum.repos.d]# mv CentOS-Base.repo CentOS-Base.repo.bak


# 2.获取阿里云yum源
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo

# 3.查看新的yum源
[root@yuchao-linux01 yum.repos.d]# wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
--2022-01-18 14:13:57--  https://mirrors.aliyun.com/repo/Centos-7.repo
Resolving mirrors.aliyun.com (mirrors.aliyun.com)... 124.165.127.206, 125.39.76.202, 125.39.76.204, ...
Connecting to mirrors.aliyun.com (mirrors.aliyun.com)|124.165.127.206|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 2523 (2.5K) [application/octet-stream]
Saving to: ‘/etc/yum.repos.d/CentOS-Base.repo’

100%[======================================================================>] 2,523       --.-K/s   in 0s      

2022-01-18 14:13:57 (490 MB/s) - ‘/etc/yum.repos.d/CentOS-Base.repo’ saved [2523/2523]

[root@yuchao-linux01 yum.repos.d]# ll
total 36
-rw--w--w-  1 root root 2523 Dec 26  2020 CentOS-Base.repo       这是新下载的
-rw-r--r--. 1 root root 1664 Apr 29  2018 CentOS-Base.repo.bak
-rw-r--r--. 1 root root 1309 Apr 29  2018 CentOS-CR.repo
-rw-r--r--. 1 root root  649 Apr 29  2018 CentOS-Debuginfo.repo
-rw-r--r--. 1 root root  314 Apr 29  2018 CentOS-fasttrack.repo
-rw-r--r--. 1 root root  630 Apr 29  2018 CentOS-Media.repo
-rw-r--r--. 1 root root 1331 Apr 29  2018 CentOS-Sources.repo
-rw-r--r--. 1 root root 4768 Apr 29  2018 CentOS-Vault.repo

# 4.清空yum缓存
yum clean all

# 5.生成新缓存,便于yum install 加速下载,生成cache
yum makecache

yum命令

搜索软件
语法:# yum search 关键词
安装软件
语法:# yum [-y] install 关键词

[root@yuchao-linux01 yum.repos.d]# yum install -y firefox

卸载软件
语法:# yum [-y] remove 关键词

[root@yuchao-linux01 yum.repos.d]# yum remove -y firefox

更新软件
语法:#yum [-y] update [包的关键词]
特别注意:包的关键词如果不写,则表示更新整个系统(全局更新,也包含内核)

千万别直接执行yum update -y,升级是一个重大的事

升级,代表着所有内容都会更新,牵一发而动全身,你很多软件可能会全面崩溃。

# 升级vim
[root@yuchao-linux01 yum.repos.d]# yum update -y vim

yum获取软件依赖

um命令本身就可以用来下载一个RPM包,标准的yum命令提供了--downloadonly(只下载)的选项来达到这个目的。

该功能主要用于,离线安装,提前获取好rpm,这是一个非常省事的办法

[root@yuchao-linux01 opt]# yum install --downloadonly --downloaddir=. python3
[root@yuchao-linux01 opt]# ll
total 9488
-rw--w--w- 1 root root   71844 Nov 18  2020 python3-3.6.8-18.el7.x86_64.rpm
-rw--w--w- 1 root root 7286976 Nov 18  2020 python3-libs-3.6.8-18.el7.x86_64.rpm
-rw--w--w- 1 root root 1702324 Oct 15  2020 python3-pip-9.0.3-8.el7.noarch.rpm
-rw--w--w- 1 root root  644052 Aug 23  2019 python3-setuptools-39.2.0-10.el7.noarch.rpm
[root@yuchao-linux01 opt]# 
[root@yuchao-linux01 opt]# 

此时你就可以拷贝走这些rpm包,再进行安装即可

yum install --downloadonly --downloaddir=/opt/nginx_rpm/ nginx  downloaddir= 可以跟指定路径

yum实践操作

yum仓库目录语法

yum的仓库文件,都被统一放在了一个固定的目录
语法
是在这个目录中,名字是 *.repo结尾的文件,就会被yum识别为仓库文件
并且只能是在第一层目录,否则都无法识别为yum仓库

因此 /etc/yum.repos.d/就是yum仓库文件夹,并且只能是这个文件夹的第一层目录
存在于 *.repo文件
否则第一层目录,没有*.repo文件,就是没有可使用的yum仓库
也就是无法使用yum命令


[root@167 ~]# cd /etc/yum.repos.d/
[root@167 yum.repos.d]# 
[root@167 yum.repos.d]# pwd
/etc/yum.repos.d
[root@167 yum.repos.d]# 
[root@167 yum.repos.d]# ls
bak_repo  CentOS-Base.repo  epel.repo

创建yum的仓库文件,学习yum仓库文件语法
去看一看阿里云,给你创建的yum仓库,语法长什么样,模仿着写就行
写一个关于光盘挂载的repo文件
此时的光盘数据在本地目录,/mnt/
如果你的rpm包,得通过互联网去找,语法是 http://aliyun.com/xxxxxxxxxxxxx
如果你的rpm是去系统中找,语法是 file://路径即可

挂载本地光盘,作为镜像源(作为yum的rpm包仓库)

# 1. 挂载系统安装光盘
[root@mini ~]#mount /dev/sr0 /mnt/

# 2. 备份原repo文件
[root@mini yum.repos.d]#mv *.repo repo-bak/

# 3. 编辑新的repo文件
[root@mini yum.repos.d]#cat local.repo 
[LocalBase]
name=Local CD repo
baseurl=file:///mnt
enabled=1
gpgcheck=0

# 4. 查看仓库是否生效
[root@mini yum.repos.d]#yum repolist

# 5. 清空缓存 && 生成新缓存
[root@mini ~]#yum clean all && yum makecache

.此时有了yum仓库,熟练的敲下两个命令
# 先清空旧的yum缓存
yum clean all  # 清空内存中的yum缓存
rm -rf /var/cache/yum  # 删除磁盘上的yum缓存
yum makecache

# 6. 安装软件
[root@mini ~]#yum install gcc patch libffi-devel python-devel zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel net-tools vim -y

请使⽤⾃建yum仓库⽬录,安装nginx

1.创建一个软件目录
[root@167 ~]# mkdir /0224_software

2.准备软件的所有rpm包,你可以选择用光盘仓库,也可以用这个神奇的办法
# 拿vim举例,安装vim以及它的依赖包

yum install --downloadonly  --downloaddir=/0224_software/     vim


3.使用命令,让该目录成为yum可识别仓库
yum install createrepo -y

4.使用该命令,创建本地仓库
[root@167 0224_software]# 
[root@167 0224_software]# createrepo /0224_software/
Spawning worker 0 with 1 pkgs
Spawning worker 1 with 1 pkgs
Spawning worker 2 with 0 pkgs
Spawning worker 3 with 0 pkgs
Workers Finished
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete
[root@167 0224_software]# 
[root@167 0224_software]# 
[root@167 0224_software]# 
[root@167 0224_software]# ll /0224_software/ -a
总用量 7156
drwxr-xr-x   3 root root     114 3月  30 11:56 .
dr-xr-xr-x. 30 root root    4096 3月  30 11:46 ..
drwxr-xr-x   2 root root    4096 3月  30 11:56 repodata
-rw-r--r--   1 root root 6205700 12月 18 2020 vim-common-7.4.629-8.el7_9.x86_64.rpm
-rw-r--r--   1 root root 1106008 12月 18 2020 vim-enhanced-7.4.629-8.el7_9.x86_64.rpm
[root@167 0224_software]# 


5.此时,创建repo文件,指向这个目录即可,就是一个本地仓库目录
你先移除其他的repo文件,让yum被识别


cat >> /etc/yum.repos.d/my_dir.repo <<EOF
[base]
name=0224-linux-my_dir
baseurl=file:///0224_software/
enabled=1 # 这个参数是控制,该repo启用,还是关闭的
gpgcheck=0
EOF
或者直接 vim my_dir.repo
[base]
name=0224-linux-my_dir
baseurl=file:///0224_software/
enabled=1 # 这个参数是控制,该repo启用,还是关闭的
gpgcheck=0


6.此时yum本地仓库就好使了
yum install vim -y

已安装:
  vim-enhanced.x86_64 2:7.4.629-8.el7_9                                                  

作为依赖被升级:
  vim-common.x86_64 2:7.4.629-8.el7_9                                                    

完毕!
[root@167 yum.repos.d]# vim
[root@167 yum.repos.d]# 

配置网络yum源(阿里云yum源)

1.选择主流的开源镜像站

2.用人家提供的命令,生成yum仓库文件即可
首先必须在 /etc/yum.repos.d 只能在这个目录下,且是第一级
/etc/yum.repos.d/aliyun.repo

为什么要用网络源,因为内容更多,更全
因为如阿里云的工程师,会吧市面主流的软件,全部同步到这个阿里云仓库中,比较齐全,但是也有限制


比如,本地光盘是没有nginx这个工具的


3. 快速配置阿里云仓库,以及移除本地光盘源
https://developer.aliyun.com/mirror/


使用wget命令下载阿里云的repo文件
#wget -O 对该文件进行存放到指定目录,且改名
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo


# 上述命令等于如下
cd /etc/yum.repos.d/

wget  https://mirrors.aliyun.com/repo/Centos-7.repo

ls /etc/yum.repos.d/Centos-7.repo

4.配置阿里云仓库
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo



5. 你会发现,上面这个默认的源,软件数量也不算多,比如nginx就找不到,它的作用类似于 你挂载光盘源,用于安装很多基础,简单的工具
而第三方的工具是没有,如nginx

还得配置一个叫做epel仓库
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo


6.配置好2个仓库后,基本完事,可以安装市面绝大多数的软件了
生成缓存,便于后续加速下载
yum clean all
rm -rf /var/cache/yum
yum makecache

7.此时可以验证用yum源去安装软了
比如先看看软件列表有多少东西
yum list|wc -l

yum list|grep mysql
yum list|grep nginx


8.想用什么软件,可以先

配置阿⾥云yum源,以及epel源,安装nginx,且保留nginx的rpm包缓存 到/opt/nginx_rpm/

# 1. 配置阿里云Base & epel 源
[root@mini ~]#wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo

[root@mini ~]#wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

# 2. 缓存nginx rpm包到/opt/nginx_rpm
[root@mini ~]#yum install --downloadonly --downloaddir=/opt/nginx_rpm/ nginx

# 3. 查看缓存数据包
[root@mini ~]#ll /opt/nginx_rpm/
total 2104
-rw-r--r--. 1 root root  601193 Oct 19 08:41 nginx-1.20.1-9.el7.x86_64.rpm
-rw-r--r--. 1 root root   24125 Oct 19 08:41 nginx-filesystem-1.20.1-9.el7.noarch.rpm
-rw-r--r--. 1 root root 1524745 Nov 17 16:43 openssl11-libs-1.1.1k-2.el7.x86_64.rpm

请使⽤myssql官⽅的yum源,安装mysql-5.6.49版本

1.去mysql官网,找到mysql的rpm包下载地址
https://repo.mysql.com//mysql80-community-release-el7-5.noarch.rpm

通过分析其url,找到了mysql-5.6版本的rpm包,集合地儿
https://repo.mysql.com/yum/mysql-5.6-community/el/7/x86_64/

2.创建mysql的yum配置文件即可
[root@167 yum.repos.d]# cat mysql5643.repo 
[mysql56]
name='This is mysql 5.6.43 server rpm'
baseurl='https://repo.mysql.com/yum/mysql-5.6-community/el/7/x86_64/'
enable=1
gpgcheck=0


3.安装对应版本软件即可
[root@167 yum.repos.d]# yum install mysql-community-server-5.6.43

如果出现依赖报错,需要你分析报错,解决对应的依赖关系


4.安装完毕后,启动mysql-5.6.43即可

找到如下脚本,即可用systemctl去管理启动了

[root@167 yum.repos.d]# ls /usr/lib/systemd/system/mysqld.service 
/usr/lib/systemd/system/mysqld.service
[root@167 yum.repos.d]# 
[root@167 yum.repos.d]# 
[root@167 yum.repos.d]# systemctl start mysqld
[root@167 yum.repos.d]# 



5.启动mysql
[root@167 yum.repos.d]# systemctl start mysqld
[root@167 yum.repos.d]# netstat -tunlp|grep mysql

[root@167 yum.repos.d]# ps -ef|grep mysql


6.能执行基本的sql语句

[root@167 yum.repos.d]# 
[root@167 yum.repos.d]# # 如下是客户端命令去登录
[root@167 yum.repos.d]# 
[root@167 yum.repos.d]# mysql -uroot -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.6.43 MySQL Community Server (GPL)

Copyright (c) 2000, 2021, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 
mysql> 
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
+--------------------+
3 rows in set (0.00 sec)

mysql> exit;
Bye
[root@167 yum.repos.d]# 
[root@167 yum.repos.d]# 

[root@167 yum.repos.d]# yum install mysql-community-server-5.6.43

如果出现依赖报错,需要你分析报错,解决对应的依赖关系
Error: Package: mysql-community-server-5.6.43-2.el7.x86_64 (mysql)
Requires: perl(DBI)
Error: Package: mysql-community-server-5.6.43-2.el7.x86_64 (mysql)
Requires: perl(Data::Dumper)
You could try using --skip-broken to work around the problem
You could try running: rpm -Va --nofiles --nodigest
报错提示:因perl包版本过高不匹配,导致安装MySQL5.6失败

标签:--,rpm,精讲,repo,yum,root,repos
From: https://www.cnblogs.com/btcm409181423/p/17978728

相关文章

  • 配置阿里云yum源
    1备份好默认的yum仓库文件到/etc/yum.repos.d/bak_repo中[root@server~]#cd/etc/yum.repos.d/[[email protected]]#mkdirbak_repo[[email protected]]#mv*.repobak_repo/2配置并生成新的阿里云yum源缓存#1.配置Base源[[email protected]]#wget......
  • Linux-搭建内网yum源
    服务器:CentOS7YUM源:阿里云空间要求:CentOS6+CentOS750G,考虑后期更新预留,LVS空间100G1、在服务器配置CentOS7的yum源和CentOS6的yum源#Centos7[base7]name=CentOS-$releasever-Base-mirrors.aliyun.comfailovermethod=prioritybaseurl=http://mirrors.aliyun.com/cent......
  • Centos7 yum方式安装 mysql 5.6
    Centos7安装mysql5.6[root@server1~]#cat/etc/redhat-releaseCentOSLinuxrelease7.4.1708(Core)[root@server1~]#uname-r3.10.0-693.el7.x86_64一、安装MySQL前准备1)查看系统是否存在旧版本rpm-qa|grepmysql可能出现一到多个结果,也可能没有2)卸载旧版......
  • 用实验来证实CentOS7中yum之update与upgrade之间的异同
    一、实验环境主机IP:10.1.1.21与10.1.1.22操作系统版本:CentOSLinuxrelease7.2.1511(Core)内核版本:3.10.0-327.el7.x86_64二、实验过程1.检查2台机器的初始环境。[root@GeekDevOps~]#cat/etc/redhat-releaseCentOSLinuxrelease7.2.1511(Core)[root@GeekDevOps~]#......
  • Kafka 万字精讲|工作五年这些你都知道吗?
    目录前言一、Kafka简介1.1事件流平台1.2Kafka主要概念和术语1.3Zookeeper二、Kafka集群搭建和使用2.1使用DockerCompose搭建Kafka集群2.2Kafka集群的使用2.3offset偏移量的提交三、Kafka高级3.1生产者发送数据3.1.1发送数据的6个步骤3.1.2生产者分区选择策略3......
  • Linux中yum有何作用?主要功能是什么?
    Linux系统中的yum想必大家都听说过,甚至不少运维小伙伴都经常用到这个功能,但不少初学者对它了解的还不是很多,不知道yum是什么,以及它有哪些作用,本文为大家介绍一下,具体请看下文。在Linux中,yum是一个包管理器,用于管理和安装软件包。它是YellowdogUpdater,Modified的缩写,最初......
  • Finance_金蝶KIS专业版全模块精讲
    金蝶KIS专业版全模块精讲https://www.bilibili.com/video/BV19Y4y1X7DD?p=5&vd_source=8b9de621639420a0ceb703aceed712f7  第2节、公共基础设置新增部门 新增用户      第5节、固定资产  ......
  • python与yum的修复
    装python3.10时删了python3.7,结果导致yum也完蛋了。恢复的思路:彻底删除python和yum后重装。一、删除:1、卸载现有pythonrpm-qa|greppython|xargsrpm-ev--allmatches--nodeps##卸载pythonwhereispython|xargsrm-frv##删除所有参与文件whereispython##......
  • MySQL yum安装常见报错
    yum安装MySQL报公钥尚未安装解决方案1:将yum文件里的mysql-community.repo,编辑,gpgcheck=0解决方案二:更新RPM-GPG-KEY-mysql文件......
  • centos中使用yum报错
    1、执行yumrepolist具体报错内容Loadedplugins:product-id,search-disabled-repos,subscription-managerThissystemisnotregisteredwithanentitlementserver.Youcanusesubacription-managertoregister. File"/usr/libexec/urlgrabber-ext-down",line2......