330linux笔记
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
yum的作用、优缺点
yum源是什么
windows下
第三方的软件仓库,如电脑管家,360 管家,里面提供了
软件管理工具
软件搜索,软件升级,软件卸载,软件安装,仅下载不安装,目的是获取该软件包
软件或许不靠谱,会携带插件,也就是后门软件
linux下
yum管理的是centos系列发行版的rpm包
也就是自动帮你下载,如下载:nginx.rpm,然后安装nginx.rpm
可以通过rpm - qi nginx 去管理,查询,
yum search xx软件 去yum源搜索xx软件
yum install xx软件 下载
yum remove xx软件 卸载xx软件
yum update 升级软件
yum upgrade 升级操作系统,所有软件 + 内核 (centos代码+ linux内核代码)
配置yum源
阿里云yum仓库(常用,好用)
清华源yum仓库
本地光盘rpm包仓库,自建的一个rpm文件夹仓库
yum源有几种形式
国内知名的网络yum源
网络yum源也是用的最多的
这里面每一个都是yum仓库,里面就是一堆linux的二进制安装包
选择的是
centos+epel两个yum仓库
centos仓库,等于在线获取了一个光盘的镜像站,里面有操作系统,自带的各种rpm包
epel源
所谓的yum源,其实就是
1 .下载了一个yum的配置文件,里面就是一个url而已!
2 .这个url指向了不同的镜像站,里面的一个rpm包集合地
3 .当你yum install安装的时候,yum自动去这个网站里,搜索mysql名字相关的rpm进行下载,安装
软件官方提供的yum源查看
https://dev.mysql.com/doc/refman/8.0/en/linux-installation-yum-repo.html
yum实践操作
yum仓库目录语法
yum的仓库文件,都被统一放在一个固定的目录
语法
是在这个目录中,名字是 *.rpm结尾的文件,就会被yum识别为仓库文件
平且只能是在第一层目录,否则都无法识别为yum仓库
因此 /etc/yum.repos.d/就是yum仓库文件夹,平且只能是这个文件夹的第一层目录
存在的 *.rpm文件
否则第一层目录 ,没有*.rpm文件,就是没有可使用yum仓库
也就是无法使用yum命令
[root@node1 yum.repos.d ]# pwd
/etc/yum.repos.d
[root@node1 yum.repos.d ]# ll
total 8
-rw-r--r--. 1 root root 2523 Dec 26 2020 CentOS-Base.repo.bak
drwxr-xr-x. 2 root root 204 Mar 30 11 :02 my_bak
-rw-r--r--. 1 root root 85 Mar 30 10 :49 my_cdrom.repo
[root@node1 yum.repos.d ]#
挂载本地光盘,作为镜像源(作为yum的rpm包仓库)
1.找到一个光盘镜像,把vmware虚拟机+物理机+准备一个外置光驱+机子刻录一个centos7光盘
vmware连接上centos7光盘即可
2.在系统中,找到这个光盘文件,linux一切接文件,你所有的物理硬件,都可以在系统上以文件的形式找到
ls /dev
找到光盘文件,进行挂载动作,让某一个目录和这个光盘建立连接
mkdir /mnt/my_centos
[root@node1 yum.repos.d ]# mount /dev/sr0 /mnt/my_centos/
mount: /dev/sr0 is write-protected , mounting read-only
[root@node1 yum.repos.d ]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 17 G 3.9 G 14 G 23 % /
devtmpfs 2.0 G 0 2.0 G 0 % /dev
tmpfs 2.0 G 0 2.0 G 0 % /dev/shm
tmpfs 2.0 G 12 M 2.0 G 1 % /run
tmpfs 2.0 G 0 2.0 G 0 % /sys/fs/cgroup
/dev/sda1 1014 M 130 M 885 M 13 % /boot
tmpfs 394 M 0 394 M 0 % /run/user/0
/dev/sr0 4.2 G 4.2 G 0 100 % /mnt/my_centos
[root@node1 yum.repos.d ]#
[root@node1 yum.repos.d ]# ll /mnt/my_centos/
total 678
-rw-rw-r--. 1 root root 14 May 2 2018 CentOS_BuildTag
drwxr-xr-x. 3 root root 2048 May 4 2018 EFI
-rw-rw-r--. 1 root root 227 Aug 30 2017 EULA
-rw-rw-r--. 1 root root 18009 Dec 10 2015 GPL
drwxr-xr-x. 3 root root 2048 May 4 2018 images
drwxr-xr-x. 2 root root 2048 May 4 2018 isolinux
drwxr-xr-x. 2 root root 2048 May 4 2018 LiveOS
drwxrwxr-x. 2 root root 655360 May 4 2018 Packages
drwxrwxr-x. 2 root root 4096 May 4 2018 repodata
-rw-rw-r--. 1 root root 1690 Dec 10 2015 RPM-GPG-KEY-CentOS-7
-rw-rw-r--. 1 root root 1690 Dec 10 2015 RPM-GPG-KEY-CentOS-Testing-7
-r--r--r--. 1 root root 2883 May 4 2018 TRANS.TBL
[root@node1 yum.repos.d ]#
创建yum的仓库文件,学习yum仓库文件语法
看一看阿里云,给你创建的yum仓库,语法长什么样,模仿这写就行
写一个关于光盘挂载的repo文件
此时的光盘数据在本地目录,/mnt/my_cenyos/
如果你的rpm包,得通过互联网去找,语法是 https:
如果你的rpm包是去系统中找,语法是 file:
vim /etc/yum.repos.d/my_cdrom.repo
[base ]
name=0224 -linux-yum-cdrom
baseurl=file:
enabled=1
gpgcheck=0
此时有了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
此时你可以用yum,去本地光盘中装软件
记住,删除东西,也别用rpm -e去删了,它只删了一个软件,没删依赖
删也用yum 去删
yum remove vim* -y
yum去安装,检查火狐浏览器
查看当前yum仓库,都有哪些rpm包
yum list
yum list |wc -l # 查看当前yum仓库中,有多少rpm包可以用
[root@node1 yum.repos.d ]# yum list |grep -i firefox
firefox.x86_64 52.7 .0 -1. el7.centos @base
yum remove firefox -y 卸载
yum install firefox -y 安装
尝试在本地光盘中安装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@node1 yum.repos.d ]# yum list |grep mariadb
mariadb-libs.x86_64 1 :5.5 .68 -1. el7 @base
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@node1 yum.repos.d ]#
yum很好用
配置网络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 /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仓库
本地光盘挂载仓库
网络源仓库
离线安装软件包,比如就是nginx,
先准备好该软件的rpm包,准备好nginx的软件包,以及它的软件依赖rpm包
准备到一个目录中,让其成为yum可识别的仓库即可
然后创建yum仓库的repo文件,完事
yum install 软件
yum支持这俩功能
[root@167 ~]# #只下载,不安装
[root@167 ~]# # 下载,安装,且保留rpm包,便于你下次的离线安装
是如下俩参数,可以实现,很方便的通过网络源,下载你想要的rpm包
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.
Specifies an alternate directory to store packages.
# 获取vim安装包,以及它必须的依赖
[root@167 0224_ software]# yum install
自建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 ]#
此时,创建repo文件,指向这个目录即可,就是一个本地仓库目录
你先移除其他的repo文件,让yum被识别
cat >> /etc/yum.repos.d/my_dir.repo <<EOF
[base ]
name=0224 -linux-my_dir
baseurl=file:
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 install --downloadonly --downloaddir=/0224_software/ nginx` 这个命令去尝试,看看下载多少依赖
yum是针对当前机器的环境判断,安装软件需要多少个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. 你的机器,又有本地光盘仓库
2. 又有阿里云的仓库
===================省事点,不要的仓库,移走就行===========了
只需要在对应的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://r epo.mysql.com//mysql80 -community-release-el7-5 .noarch.rpm
通过分析其url,找到了mysql-5.6 版本的rpm包,集合地儿
https://r epo.mysql.com/yum/mysql-5.6 -community/el/7 /x86_64/
2 .创建mysql的yum配置文件即可
[root@167 yum.repos.d]
[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]
如果出现依赖报错,需要你分析报错,解决对应的依赖关系
4 .安装完毕后,启动mysql-5.6 .43 即可
找到如下脚本,即可用systemctl去管理启动了
[root@167 yum.repos.d]
/usr/lib/systemd/system /mysqld.service
[root@167 yum.repos.d]
[root@167 yum.repos.d]
[root@167 yum.repos.d]
[root@167 yum.repos.d]
5 .启动mysql
[root@167 yum.repos.d]
[root@167 yum.repos.d]
[root@167 yum.repos.d]
6 .能执行基本的sql语句
[root@167 yum.repos.d]
[root@167 yum.repos.d]
[root@167 yum.repos.d]
[root@167 yum.repos.d]
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]
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!