首页 > 系统相关 >day20_精讲yum工具

day20_精讲yum工具

时间:2024-02-13 19:24:13浏览次数:28  
标签:rpm 精讲 day20 yum mysql 167 root repos

yum精讲

linux常见的基础依赖环境,一般这些软件应该是在系统安装时,勾选上,如果没有则需要手动安装

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 -y

点名游戏

  • 抓鸭子
  • 抓几只
  • 抓3只
  • 抓鸭子
  • 抓几只
  • 没抓到
  • 抓鸭子(继续循环)

抓出来的笨蛋鸭子,中午分享5分钟

学习任务背景

开发团队需要一套数据库服务器环境来测程序

现在需要运维人员协助在测试机Centos7.6上安装好MySQL-5.6.43版本用于前期迁移准备工作

同时配置好本地yum源和外网源方便后续软件包安装(安装)

  • 任务是安装mysql软件 5.6.43
    • 下载mysql-5.6.43.rpm
      • 需要手动解决mysql安装的需要的依赖关系
    • 下载mysql-5.6.43.tar.gz源码包编译安装
      • 可以选择的
  • yum一键安装

学习目标

  • 理解为什么需要用yum

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

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

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

yum的作用、优缺点

yum源是什么

image-20220330093815289

yum源有几种形式

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

国内知名的网络yum源

网络yum源也是用的最多的

image-20220330094339252


选择的是

centos+epel两个yum仓库

  • centos仓库,等于在线获取了一个光盘的镜像站,里面有操作系统,自带的各种rpm包
  • epel源

所谓的yum源,其实就是

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

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

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

image-20220330095031915

上面是互联网中,第三方的yum源查看

软件官方提供的yum源查看

https://dev.mysql.com/doc/refman/8.0/en/linux-installation-yum-repo.html

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



image-20220330101427811

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

1. 找到一个光盘镜像吧 (vmware虚拟机+物理机+准备一个外置光驱+自己刻录一个centos7光盘) (vmware连接上centos7光盘即可)


2. 在系统中, 找到这个光盘文件(linux一切皆文件,你所有的物理硬件,都可以在系统上以文件形式找到)
ls /dev目录下

image-20220330101900062

找到光盘文件,进行挂载动作,让某一个目录和这个光盘,建立连接

mkdir /mnt/my_centos

[root@167 opt]# mount /dev/sr0  /mnt/my_centos/
mount: /dev/sr0 写保护,将以只读方式挂载
[root@167 opt]# 
[root@167 opt]# 
[root@167 opt]# ls /mnt
my_centos
[root@167 opt]# 
[root@167 opt]# ls /mnt/my_centos/
CentOS_BuildTag  EFI  EULA  GPL  images  isolinux  LiveOS  Packages  repodata  RPM-GPG-KEY-CentOS-7  RPM-GPG-KEY-CentOS-Testing-7  TRANS.TBL
[root@167 opt]# 
[root@167 opt]# 
[root@167 opt]# df -h
文件系统                 容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root   17G  8.3G  8.8G   49% /
devtmpfs                 1.9G     0  1.9G    0% /dev
tmpfs                    1.9G     0  1.9G    0% /dev/shm
tmpfs                    1.9G   21M  1.9G    2% /run
tmpfs                    1.9G     0  1.9G    0% /sys/fs/cgroup
/dev/sda1               1014M  170M  845M   17% /boot
tmpfs                    378M   12K  378M    1% /run/user/42
tmpfs                    378M     0  378M    0% /run/user/0
/dev/sr0                 4.2G  4.2G     0  100% /mnt/my_centos
[root@167 opt]# 
[root@167 opt]# 


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



vim /etc/yum.repos.d/my_cdrom.repo


[base]
name=0224-linux-yum-cdrom
baseurl=file:///mnt/my_centos/
enabled=1
gpgcheck=0



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



# 生成新的yum缓存(否则你第一次yum install会去下载很多元数据,比较慢)
[root@167 yum.repos.d]# 
[root@167 yum.repos.d]# yum makecache
已加载插件:fastestmirror, langpacks
Determining fastest mirrors
base                                                                                                                                                            | 3.6 kB  00:00:00     
(1/4): base/group_gz                                                                                                                                            | 166 kB  00:00:00     
(2/4): base/filelists_db                                                                                                                                        | 3.1 MB  00:00:00     
(3/4): base/primary_db                                                                                                                                          | 3.1 MB  00:00:00     
(4/4): base/other_db                                                                                                                                            | 1.3 MB  00:00:00     
元数据缓存已建立


5.此时你可以用yum,去本地光盘中装软件 





6.记住,删除东西,也别用rpm -e去删了,它只删了一个软件,没删依赖
删也用yum 去删
yum remove vim* -y


7.yum去安装,检查火狐浏览器



# 查看当前yum仓库,都有哪些rpm包
yum list

yum list |wc -l  # 查看当前yum仓库中,有多少rpm包可以用



[root@167 yum.repos.d]# yum list |grep -i firefox
firefox.x86_64                          52.7.3-1.el7_5                 installed


yum remove firefox -y

yum install firefox -y 





8.尝试在本地光盘中安装mysql,看看发生什么

查看当前yum源,是否有mysql的软件
经验告诉我 ,mysql这个软件,属于c/s模式
client/server模式
因此mysql这样的软件,也得先装服务端
(服务端的名字,基本是mysql-server-版本号.rpm)

再装客户端

历史典故
因为mysql8企业版 被oracle收购了,收费了,以及java也被oracle 
由于mysql收费了,因此开源组织,将其改造,换了个马甲,名字叫做mariadb用法一样,系统上运行后,什么都一样,只不过软件包的名字换了

yum remove mysql -y


你会发现在光盘仓库中,可以找到 的是 
mariadb 5.5.56-2.el7 
你是找不到 mysql -5.6.xx

这个仓库就不好使。。。
换一个仓库。。

如何从当前yum仓库,搜索某软件的用法

[root@167 yum.repos.d]# yum list|grep mariadb
mariadb-libs.x86_64                     1:5.5.56-2.el7                 @anaconda
mariadb.x86_64                          1:5.5.56-2.el7                 base     
mariadb-bench.x86_64                    1:5.5.56-2.el7                 base     
mariadb-devel.x86_64                    1:5.5.56-2.el7                 base     
mariadb-server.x86_64                   1:5.5.56-2.el7                 base     
mariadb-test.x86_64                     1:5.5.56-2.el7                 base     
[root@167 yum.repos.d]# 








学会查看yum的报错

image-20220330111506031

yum很好用

image-20220330103938210


image-20220330102951087

配置网络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.想用什么软件,可以先


image-20220330114402418

捋一捋,学了几个yum仓库

  • 本地光盘挂载仓库
  • 网络源仓库
  • 离线安装软件包,比如就是nginx,
    • 先准备好该软件的rpm包,准备好nginx的软件包,以及它的软件依赖rpm包
    • 准备到一个目录中,让其成为yum可识别的仓库即可
    • 然后创建yum仓库的repo文件,完事
    • yum install 软件
yum支持这俩功能
[root@167 ~]# #只下载,不安装
[root@167 ~]# # 下载,安装,且保留rpm包,便于你下次的离线安装

是如下俩参数,可以实现,很方便的通过网络源,下载你想要的rpm包
     --downloadonly
              Don't update, just download. This is done in the background, so the yum lock is released for other operations. This can also be chosen by typing 'd'ownloadonly  at
              the transaction confirmation prompt.

       --downloaddir=directory
              Specifies an alternate directory to store packages.


# 获取vim安装包,以及它必须的依赖

[root@167 0224_software]# yum install --downloadonly  --downloaddir=/0224_software/     vim

自建yum仓库(本地目录rpm包)

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


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获取软件依赖(离线安装、获取rpm)

关于yum的补充

通过yum获取rpm包缓存

建议操作,刘永飞证实

  • 准备一个最小化安装的系统,yum会自动判断,它需要什么基础依赖
    • 因为最小化,系统缺少很多依赖包
  • 再使用yum install --downloadonly --downloaddir=/0224_software/ nginx这个命令去尝试,看看下载多少依赖
    • vim ,只找到了2个依赖
    • 最小化机器进行操作,5个依赖
    • yum是针对当前机器的环境,判断,安装vim,需要多少个rpm依赖包
还有一个办法,修改yum配置文件,前提是你有一个可用的yum源仓库
1.需求是安装nginx,且获取nginx的rpm包,缓存下来(存在于epel仓库)
修改epel.repo文件,添加如下参数
keepcache=1

yum install nginx 

2.此时nginx相关的rpm包都在缓存目录下了
[root@167 yum.repos.d]# 
[root@167 yum.repos.d]# find /var/cache/yum/ -name *.rpm
/var/cache/yum/x86_64/7/epel/packages/nginx-1.20.1-9.el7.x86_64.rpm

修改yum仓库的优先级

1.你的机器,又有本地光盘仓库--------版本1.4
2.有有阿里云的仓库---------版本2.5

===================省事点,不要的仓库,移走就行===========了

只需要在对应的repo仓库文件中,针对仓库的区域设置,添加一个参数即可
priority=1

最后安装MySQL-5.6.43

1.获取软件的rpm包 ,也要想办法,找到mysql-5.6.43这个rpm包,用rpm装,还是yum装
2. mysql-5.6.43.tar.gz 编译安装
3.配置yum仓库
- 本地光盘
- 阿里云yum源
- 自建yum仓库文件夹

4.去mysql官网,寻找该软件的下载地址,设置为yum仓库即可





实践过程

你们上述,安装过mysql,可能会和这个有冲突
你可能需要执行如下的命令,清理阿里云安装的mysql环境
注意,本操作,和其他题目无关,不要随便删东西,删东西,请看好,你在做什么
注意,本操作,和其他题目无关,不要随便删东西,删东西,请看好,你在做什么
注意,本操作,和其他题目无关,不要随便删东西,删东西,请看好,你在做什么
注意,本操作,和其他题目无关,不要随便删东西,删东西,请看好,你在做什么
注意,本操作,和其他题目无关,不要随便删东西,删东西,请看好,你在做什么


yum remove mysql* mysql-* mysql mariadb* -y



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]# 






image-20220330124106958


image-20220330124428452


image-20220330124658126

标签:rpm,精讲,day20,yum,mysql,167,root,repos
From: https://www.cnblogs.com/fuminer/p/18014753

相关文章

  • YUM | 包安装 | 管理
    YUM功能:::hljs-center:::软件包安装:通过yum命令安装软件包。例如,安装一个名为example-package的软件包yuminstallexample-package更新包检查更新:检查可用更新:sudoyumcheck-update<package_name>软件包更新:yum能够检查系统上已安装软件包,并更新到......
  • day22-yum部署LAMP
    LAMP概述1、什么是LAMP其实就是Linux操作系统Apache/Nginxweb服务器Mysql/MariadbPerl/Php/PythonLAMP:Linux+Apache+MySQL+PHPLAMP架构(组合)LNMP:Linux+Nginx+MySQL+php-fpmLNMP架构(组合LAMP具有通用、跨平台、高性能、低价格的优势,因此LAMP无论是性......
  • Linux基础47 Ansible之ad-hoc, 命令模块(command, shell, script), 软件管理模块(yum,
    Ansible之ad-hoc一、什么是ad-hoc1.什么是ad-hocad-hoc简而言之就是“临时命令”,执行完即结束,并不会保存2.ad-hoc使用场景可以用作查看远程机器的进程,或者磁盘,或者拷贝文件3.ad-hoc命令使用[root@m01~]#ansibleweb01-mshell-a'free-m'web01|CHANGED|rc=......
  • LAMP架构简易部署 yum
    永久关闭selinux1.喜欢关闭所有的防火墙,内置防火墙,linux的软件防火1.关闭selinux,美国的航空安全局,开发的linux内置防火墙查询selinux状态,基本只有centos8会多些selinux的策略,centos7不用#看到disbaled表示selinux是永久禁止的[root@AlienCat~]#getenforceDisabled2.......
  • linux centos yum 报错[Errno 256]No more mirrors to try 解决方法
    解决方案大致有三种一、更新yum二、若不行,可能是因为DNS不稳定吧,因为yum安装时会从三个”repo源“(base,extras,updates)随机获取地址背景我使用yum方式安装软件时,比如zabbix这种软件,我们在安装时一般都是直接到zabbix官网,按照官方的步骤进行安装,但是有一个问题,官方的服务器不在国......
  • centos7 yum redis5-7
    (1).Redis概述Redis是一个开源的使用ANSIC语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value(键值型)数据库(非关系型数据库),并提供多种语言的API。Redis是一个高性能的Key-Value数据库。它的出现很大程度补偿来Memcached这类Key-Value型存储的不足,在部分场合下可......
  • 可观测性简史-可观测性价值精讲ppt-业务系统的护城河
    注:可观测性简史附在文末可观测性价值精讲随附:可观测性简史本文使用观测云-中国区1(杭州)站点,商业版账号。直接开通商业版可获得 500 元无限制代金券,实现本文观测场景每天消费仅需几分钱,可以用几十年了。docs.guance.com/billing/tra…或可以选择开通体验版,每天有2000的免费额度,,可......
  • centos系统离线下载yum命令的rpm文件并安装
    因为我用的是windows服务器,因此需要一台虚拟机,用来安装centos,虚拟机的安装网上好多教程,这里不做过多介绍这次同样是按步操作在本地服务器创建下载目录->将yum文件下载到本地->在远程服务器上创建目录->上传文件到远程服务器目录->使用命令安装yum到服务器上这次的案例......
  • 【linux-centos】更新yum源
    大家都知道Centos8于2021年年底停止了服务,大家再在使用yum源安装时候,出现下面错误“错误:Failedtodownloadmetadataforrepo‘AppStream’:Cannotprepareinternalmirrorlist:NoURLsinmirrorlist” sed-i's/mirrorlist/#mirrorlist/g'/etc/yum.repos.d/CentOS-*......
  • MySQL-8.3.0 innovation 创新版本YUM安装配置
     MySQL-8.3.0innovation版本已发布了,想抢先体验一下最新的功能,可以用以下的方式快速在虚拟机上安装一下哈 服务器环境:[root@node213~]#cat/etc/redhat-releaseCentOSLinuxrelease7.9.2009(Core)[root@node213~]#uname-aLinuxnode2133.10.0-1160.el7.x86_64#1......