Linux部署YUM仓库服务(不要听着励志的话做着颓废的人)

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: Linux部署YUM仓库服务(不要听着励志的话做着颓废的人)

目录




一、yum仓库简介


1.1 简介


1.2 yum实现过程


二、yum配置文件及命令


2.1 yum配置文件


2.2 仓库设置文件


2.3 日志文件


2.4 yum常见命令


2.5 命令详解


2.5.1  yum list [软件名]


2.5.2  yum info [软件名]


2.5.3 yum search <关键词>


2.5.4 yum whatprovides <关键词>


2.5.5 yum grouplist [包组名]


2.5.6  yum install [软件名]


2.5.7 yum remove <软件名>


2.5.8 yum groupinstall <包组名>


2.5.9 yum history


三、搭建仓库的方式


3.1 搭建本地yum仓库


3.2  http方式外网环境搭建yum仓库(搭建阿里云仓库)


3.3 http方式内网环境搭建yum仓库


3.4 ftp方式搭建yum仓库


四、总结


一、yum仓库简介



1.1 简介


基于RPM包构建的软件更新机制

可以自动解决依赖关系

所有软件包由集中的YUM软件仓库提供

c/s架构

       linux本身就是以系统简洁为自身优势,所以在安装操作系统的时候并没有将所有的库文件以及编译软件包进行安装,所以在linux操作系统上进行软件安装的时候会出现软件包依赖的情况。yum由仓库和客户端组成,也就是整个yum由两部分组成,所以yum可以存放在两台服务器上。也可以存放在一台服务器上。可以有官方来提供服务,也可以由第三方来提供,比如国内的阿里云,搜狐云,还有一些非盈利组织比如学校等。官方的源一般在国外,下载速度肯定有限,手动更改成国内的云可以大幅提升下载速度。


       yum软件仓库中的rpm软件包可以是由红帽官方发布的,也可以是第三方发布的,当然也可以是自己编写的


image.png


1.2 yum实现过程


       先在yum服务器上创建 yum repository(仓库),在仓库中事先存储了众多rpm包,以及包的相关的元数据文件(放置于特定目录repodata下),当yum客户端利用yum/dnf工具进行安装包时,会自动下载repodata中的元数据,查询元数据是否存在相关的包及依赖关系,自动从仓库中找到相关包下载并安装。


二、yum配置文件及命令



2.1 yum配置文件


位置:/etc/yum.conf //主配置文件


[root@localhost]# /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.2 仓库设置文件


位置:/etc/yum.repos.d/*.repo   //yum仓库文件位置


默认的yum仓库 是centos官方的yum源,需要联网才可以使用


[root@localhost yum.repos.d]# ls /etc/yum.repos.d/
bak               CentOS-Debuginfo.repo  CentOS-Sources.repo
CentOS-Base.repo  CentOS-fasttrack.repo  CentOS-Vault.repo
CentOS-CR.repo    CentOS-Media.repo


2.3 日志文件


位置:/var/log/yum.log //日志文件


[root@localhost ~]# cat /var/log/yum.log
Feb 18 10:12:12 Installed: tree-1.6.0-10.el7.x86_64
Feb 18 10:33:10 Installed: 12:dhcp-4.2.5-68.el7.centos.x86_64
Feb 20 08:46:40 Installed: tree-1.6.0-10.el7.x86_64


2.4 yum常见命令


命令

作用

yum repolist all 列出所有仓库
yum list all 列出仓库中所有软件包
yum info 软件包名称  查看软件包信息
yum install 软件包名称 安装软件包
yum reinstall 软件包名称 重新安装软件包
yum update 软件包名称 升级软件包
yum remove 软件包名称 卸载软件包
yum clean all 清除所有仓库缓存
yum check-update 检查可更新的软件包
yum grouplist 查看系统中已经安装的软件包组
yum groupinstall 软件包组 安装指定的软件包组
yum groupremove 软件包组 移除指定的软件包组

yum groupinfo 软件包组

查询指定的软件包组信息
yum history 查看当前yum操作历史
yum history undo 加入序号卸载序号里安装的软件
yum history redo 加入序号重新执行序号里的操作



2.5 命令详解


2.5.1  yum list [软件名]


显示可用的安装包,如不加软件名是显示所有的可用包


image.png


2.5.2  yum info [软件名]


显示安装包详细信息,如不加软件名是显示所有包的详细信息


image.png


2.5.3 yum search <关键词>


根据关键字查找软件安装包,相当于你只知道这个包里的某个关键字会全部给你匹配出来


image.png


2.5.4 yum whatprovides <关键词>


查找只知道命令而不知道具体的包


image.png


2.5.5 yum grouplist [包组名]


安装包组的查询,不加包组名就是显示所有


image.png


2.5.6  yum install [软件名]


安装软件包,如安装http服务


image.png


2.5.7 yum remove <软件名>


卸载已安装的软件


image.png


2.5.8 yum groupinstall <包组名>


包组安装同yum install


#若系统是最小化安装没有桌面,而想要安装执行这条命令
yum groupinstall gnome desktop
#如无法使用请先升级
yum -y upgrade
#再安装
yum -y groups install "GNOME Desktop"
#GNOME Desktop 是桌面组

1.此时我有台最小化安装的机子


image.png


2.升级,一共有四百多个包


image.png


3.安装,共有1090个包

image.png

image.png

image.png


4.在虚拟机输入startx后跳转黑屏,这时我们重启再输入init 5就可以进入了

image.png

image.png

image.png


2.5.9 yum history


查看历史的使用记录


image.png


我们通常在写yum命令的时候加上-y表示 “是否继续?[y/N]”中的y


三、搭建仓库的方式



FTP服务:ftp://ip地址/站点里路径

HTTP服务:http://域名或者ip地址/站点里的路径

本地仓库:file://绝对路径 (file:///mnt 此处第三个/为根目录)


3.1 搭建本地yum仓库


查看我的另一篇博客


搭建本地yum仓库


若要永久挂载需要在/etc/fstab文件中写入下面的信息


[root@localhost ~]# vim /etc/fstab

image.png


小贴士


当没有网而又没有搭建本地yum仓库的情况下,可以使用下面这条命令,但是只下载需要的包没有建立依赖关系


[root@localhost ]#yum -y install --downloadonly --downloaddir=/data/bind  bind


#downloadonly只下载


#downloaddir指定下载的目录,目录如果不存在,会自动创建


3.2  http方式外网环境搭建yum仓库(搭建阿里云仓库)


国外云仓库比较慢,可以使用阿里云仓库代替


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

image.png


[root@localhost yum.repos.d]# yum clean all && yum makecache
[root@localhost yum.repos.d]# yum list all

image.png


3.3 http方式内网环境搭建yum仓库


搭建方法与ftp类似


setenforce 0
systemctl stop firewalld.service
#两台机子关闭防火墙和selinux


服务端:192.168.109.131上的操作


yum install -y httpd
systemctl start httpd
cd /var/www/html/
mkdir centos7
ls
mount /dev/sr0 /var/www/html/centos7/
网页访问本机IP


客户端:192.168.109.132上的操作


cd /etc/yum.repos.d/
mkdir bak
mv *.repo bak
vim http.repo
#####################
[http]
name=centos
baseurl=http://192.168.109.131/centos7
gpgcheck=0
enabled=1
#######################
yum clean all &&yum makecache
yum list all
3.4 ftp方式搭建yum仓库
setenforce 0
systemctl stop firewalld.service
#两台机子关闭防火墙和selinux


3.4 ftp方式搭建yum仓库

setenforce 0
systemctl stop firewalld.service
#两台机子关闭防火墙和selinux


服务端:192.168.109.131上的操作


image.png


[root@localhost ~]#systemctl start vsftpd

image.png


客户端:192.168.109.132上的操作

image.png

image.png


baseurl=ftp://192.168.109.131/centos7  
#指名从服务器端的centos7目录中读取
#ftp的根目录就是/var/ftp

image.png


[root@localhost yum.repos.d]# yum list all
#显示所有列表

image.png


四、总结



搭建yum仓库方式


1.FTP服务

2.HTTP服务

3.本地仓库


rpm软件包的来源


1.centos发布的rpm包的集合

2.第三方组织发布的rpm包集合

3.用户自定义的rpm包集合

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
23天前
|
Linux 应用服务中间件 Shell
linux系统服务二!
本文详细介绍了Linux系统的启动流程,包括CentOS 7的具体启动步骤,从BIOS自检到加载内核、启动systemd程序等。同时,文章还对比了CentOS 6和CentOS 7的启动流程,分析了启动过程中的耗时情况。接着,文章讲解了Linux的运行级别及其管理命令,systemd的基本概念、优势及常用命令,并提供了自定义systemd启动文件的示例。最后,文章介绍了单用户模式和救援模式的使用方法,包括如何找回忘记的密码和修复启动故障。
42 5
linux系统服务二!
|
23天前
|
Linux 应用服务中间件 Shell
linux系统服务!!!
本文详细介绍了Linux系统(以CentOS7为例)的启动流程,包括BIOS自检、读取MBR信息、加载Grub菜单、加载内核及驱动程序、启动systemd程序加载必要文件等五个主要步骤。同时,文章还对比了CentOS6和CentOS7的启动流程图,并分析了启动流程的耗时。此外,文中还讲解了Linux的运行级别、systemd的基本概念及其优势,以及如何使用systemd管理服务。最后,文章提供了单用户模式和救援模式的实战案例,帮助读者理解如何在系统启动出现问题时进行修复。
42 3
linux系统服务!!!
|
27天前
|
Linux 数据库
Linux服务如何实现服务器重启后的服务延迟自启动?
【10月更文挑战第25天】Linux服务如何实现服务器重启后的服务延迟自启动?
138 3
|
27天前
|
关系型数据库 MySQL Linux
Linux系统如何设置自启动服务在MySQL数据库启动后执行?
【10月更文挑战第25天】Linux系统如何设置自启动服务在MySQL数据库启动后执行?
72 3
|
29天前
|
消息中间件 Linux RocketMQ
在Red Hat Enterprise Linux 9上使用Docker快速安装并部署
通过以上步骤,你可以在Red Hat Enterprise Linux 9上使用Docker快速安装并部署RocketMQ。这种方法不仅简化了安装过程,还提供了一个灵活的环境来管理和扩展消息队列系统。RocketMQ作为一款高性能的分布式消息系统,通过Docker可以实现快速部署和高效管理。
57 2
|
13天前
|
存储 缓存 Linux
【Linux】另一种基于rpm安装yum的方式
通过本文的方法,您可以在离线环境中使用RPM包安装YUM并进行必要的配置。这种方法适用于无法直接访问互联网的服务器或需要严格控制软件源的环境。通过配置本地YUM仓库,确保了软件包的安装和更新可以顺利进行。希望本文能够为您在特定环境中部署YUM提供实用的指导。
83 0
|
12天前
|
监控 Linux
如何检查 Linux 内存使用量是否耗尽?这 5 个命令堪称绝了!
本文介绍了在Linux系统中检查内存使用情况的5个常用命令:`free`、`top`、`vmstat`、`pidstat` 和 `/proc/meminfo` 文件,帮助用户准确监控内存状态,确保系统稳定运行。
97 6
|
13天前
|
Linux
在 Linux 系统中,“cd”命令用于切换当前工作目录
在 Linux 系统中,“cd”命令用于切换当前工作目录。本文详细介绍了“cd”命令的基本用法和常见技巧,包括使用“.”、“..”、“~”、绝对路径和相对路径,以及快速切换到上一次工作目录等。此外,还探讨了高级技巧,如使用通配符、结合其他命令、在脚本中使用,以及实际应用案例,帮助读者提高工作效率。
52 3
|
13天前
|
监控 安全 Linux
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景,包括 ping(测试连通性)、traceroute(跟踪路由路径)、netstat(显示网络连接信息)、nmap(网络扫描)、ifconfig 和 ip(网络接口配置)。掌握这些命令有助于高效诊断和解决网络问题,保障网络稳定运行。
39 2
|
21天前
|
缓存 监控 Linux

热门文章

最新文章

下一篇
无影云桌面