基于HTTP 构建本地YUM 源

简介: 前端软件包管理器(Yellow Updater Modified,YUM)适用于Cent OS、Fedora、Red Hat及SUES中的Shell命令行

YUM 软件包管理



概述


  • 前端软件包管理器(Yellow Updater Modified,YUM)适用于Cent OS、Fedora、Red Hat及SUES中的Shell命令行


  • 主要用于管理RPM包,于RPM工具使用范围类似,YUM工具能够从指定的服务器自动下载RPM包并且安装,还可以自动处理依赖性关系。


  • 使用RPM工具管理和安装软件时,会发现rpm包有依赖,需要逐个手动下载安装


  • YUM工具的最大便利就是可以自动安装所有依赖的软件包,从而提升效率,节省时间。


工作原理


  • YUM正常运行,需要依赖两个部分,一是YUM源端,二是YUM客户端,也即用户使用端。


  • YUM客户端安装的所有RPM包都是来自YUM服务端,YUM源端通过HTTP或者FTP服务器发布。


  • 而YUM客户端能够从YUM源端下载依赖的RPM包是由于在YUM源端生成了RPM包的基准信息,包括RPM包版本号、配置文件、二进制信息、依赖关系等。


  • YUM客户端需要安装软件或者搜索软件,会查找/etc/yum.repos.d下以.repo结尾文件, CentOS Linux默认的.repo文件名为CentOS-Base.repo,该文件中配置了YUM源端的镜像地址,所以每次安装、升级RPM包,YUM客户端均会查找.repo文件。


  • YUM客户端如果配置了CentOS官方repo源,客户端操作系统必须能联外网,满足网络条件,才能下载软件并安装,如果没有网络,也可以构建光盘源或者内部YUM源。在只要YUM客户端时,YUM客户端安装软件,默认会把YUM源地址、Header信息、软件包、数据库信息、缓存文件存储在/var/cache/yum中,每次使用YUM工具,YUM优先通过Cache查找相关软件包,Cache中不存在,然后在访问外网YUM源。


企业案列演练


  • 由于YUM工具的使用简便、快捷、高效,在企业中得到广泛的使用,得到众多IT运维、程序人员的青睐,要能熟练使用YUM工具,需要先掌握YUM命令行参数的使用


  • YUM 常用命令参数:


[root@hbs ~]# yum makecache             缓存
[root@hbs ~]# yum -y install httpd      安装httpd软件包
[root@hbs ~]# yum search lrzsz           YUM搜索lrzsz软件包
[root@hbs ~]# yum list httpd           显示指定程序包安装情况httpd 
[root@hbs ~]# yum list all              显示所有已安装及可安装的软件包
[root@hbs ~]# yum remove httpd          删除程序包httpd
[root@hbs ~]# yum erase httpd           删除程序包httpd
[root@hbs ~]# yum update httpd           升级httpd 服务
[root@hbs ~]# yum provides ifconfig         列出ifconfig命令是那个软件包提供的
[root@hbs ~]# yum grouplist                查询可以用安装的组
[root@hbs ~]# yum update                内核升级或者软件更新(慎用)


配置本地源



  • 1、进入到/etc/yum.repos.d/目录中(因为该目录存放yum仓库的配置文件。)


  • 2、 使用vim命令创建一个后缀名.repo的新配置文件逐行添加配置参数


[media] :Yum软件仓库唯一标识符,避免与其他仓库冲突。
name=localhost:Yum软件仓库的名称描述,易于识别仓库用处。
baseurl=file:///mnt/cdrom:提供的方式包括FTP(ftp://..)、HTTP(http://..)、本地(file:///..)。
enabled=1:设置此源是否可用;1为可用,0为禁用。
gpgcheck=0:设置此源是否校验文件;1为校验,0为不校验。
gpgkey=file:///media/cdrom/RPM-GPG-KEY-redhat-release:若上面参数开启校验,那么请指定公钥文件地址。(ll /mnt/RPM-GPG-KEY-CentOS-7)
priority=1
priority 越小表示优先级越高


基于ISO 构建本地YUM 源


[root@hbs ~]# cat /etc/yum.repos.d/hbs.repo 
[xx]
name=hbs
baseurl=file:///mnt
enabled=1
gpgcheck=0
gpgkey=file:///mnt/RPM-GPG-KEY-CentOS-7  指定载目录下的GPG-KEY文件验证。
[root@hbs ~]# 


  • 3、 挂载光盘步骤


[root@hbs ~]# mount /dev/cdrom /mnt/    挂在光盘
mount: /dev/sr0 is write-protected, mounting read-only
[root@hbs ~]# 
[root@hbs ~]# df -h      查看挂在情况
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda3        20G  1.6G   18G   8% /
devtmpfs        901M     0  901M   0% /dev
tmpfs           912M     0  912M   0% /dev/shm
tmpfs           912M  9.0M  903M   1% /run
tmpfs           912M     0  912M   0% /sys/fs/cgroup
/dev/sda1       197M  121M   77M  62% /boot
tmpfs           183M     0  183M   0% /run/user/0
`/dev/sr0        4.3G  4.3G     0 100% /mnt`
[root@hbs ~]# 


  • 4、开启开机自启动挂载


  • 方式一:vim /etc/fstab


  • 方式二:vim /etc/rc.local


[root@hbs ~]# cat /etc/fstab |grep iso9660   在/etc/fstab文件下面添加
/dev/cdrom /mnt       iso9660          defaults   0 0
[root@hbs ~]# 
添加:/dev/cdrom /mnt       iso9660          defaults   0 0
[root@hbs ~]# cat /etc/rc.local |grep /mnt  在/etc/rc.local下面添加
/dev/cdrom /mnt
[root@hbs ~]# 
添加:/dev/cdrom /mnt


配置163的网络源



网络源地址



Centos7:http://mirrors.163.com/.help/CentOS7-Base-163.repo


Centos6:http://mirrors.163.com/.help/CentOS6-Base-163.repo



Centos7:http://mirrors.aliyun.com/repo/Centos-7.repo


Centos6: http://mirrors.aliyun.com/repo/Centos-6.repo


openstack: http://mirrors.aliyun.com/repo/Centos-openstack.repo


基于HTTP 构建局域 网络源


  • YUM光盘源默认只能本机使用,局域网其他服务器无法使用YUM光盘源,如果想使用的话,需要在每台服务器上构建YUM本地源,该方案在企业中不可取,所以需要构建HTTP局域网YUM源解决,可以通过CreateRepo创建本地YUM源端,repo即为Repository。


  • 构建HTTP局域网YUM源方法及步骤如下:


  • 1、挂载光盘镜像文件至/mnt


[root@hbs ~]# mount /dev/cdrom /mnt/
mount: /dev/sr0 is write-protected, mounting read-only


  • 2、 拷贝/mnt/Packages目录下所有软件包至/var/www/html/centos/


[root@hbs ~]# mkdir -p /var/www/html/centos/
[root@hbs ~]# cp -R /mnt/Packages/* /var/www/html/centos/


  • 3、使用Createrepo创建本地源,执行如下命令会在Centos目录生成repodata目录


[root@hbs ~]# yum -y install createrepo*  先安装 createrepo 软件包
[root@hbs ~]# cd /var/www/html/
[root@hbs html]# ls
centos
[root@hbs html]# createrepo centos/    生成网络源


  • 4、利用HTTP发布YUM本地源


  • 本地YUM源通过CreateRepo搭建完毕,需要借助HTTP WEB服务器发布/var/www/html/centos/中所有软件,YUM或者RPM安装HTTP WEB服务器,并启动httpd服务。


[root@hbs html]# yum -y install httpd-devel
[root@hbs ~]# getenforce    关闭selinux,建议关闭后重启下
Disabled
[root@hbs ~]# 
[root@hbs ~]# systemctl stop firewalld   关闭防火墙
[root@hbs ~]# systemctl stop httpd
[root@hbs ~]# systemctl start httpd    重新启动httpd
[root@hbs ~]# ps -e|grep httpd         查看HTTPD进程是否启动
 17340 ?        00:00:00 httpd
 17341 ?        00:00:00 httpd
 17342 ?        00:00:00 httpd
 17343 ?        00:00:00 httpd
 17344 ?        00:00:00 httpd
 17345 ?        00:00:00 httpd
[root@hbs ~]# 


  • 5、在YUM客户端,创建/etc/yum.repos.d/http.repo文件,写入如下内容


[root@localhost yum.repos.d]# cat http.repo
[http]
name="CentOS7 HTTP YUM"
baseurl=http://192.168.10.11/centos/
gpgcheck=0
enabled=1
[updates]
name="CentOS7 HTTP YUM"
baseurl=http://192.168.10.11/centos
gpgcheck=0
enabled=1
[root@localhost yum.repos.d]# yum -y install vim
Loaded plugins: fastestmirror
http                                                            | 2.9 kB  00:00:00     
updates                                                         | 2.9 kB  00:00:00     
(1/2): http/primary_db                                          | 3.0 MB  00:00:00     
(2/2): updates/primary_db                                       | 3.0 MB  00:00:00     
Determining fastest mirrors
相关文章
|
4月前
|
缓存 Linux Shell
RHEL7部署http应用配置共享yum源
RHEL7部署http应用配置共享yum源
81 0
|
7月前
|
Linux
通过HTTP方式自建CentOS系列Yum源
通过HTTP方式自建CentOS系列Yum源
104 0
|
7月前
|
Go
Go 使用标准库 net/http 包构建服务器
Go 使用标准库 net/http 包构建服务器
27 0
|
4天前
|
中间件 Go API
Golang深入浅出之-Go语言标准库net/http:构建Web服务器
【4月更文挑战第25天】Go语言的`net/http`包是构建高性能Web服务器的核心,提供创建服务器和发起请求的功能。本文讨论了使用中的常见问题和解决方案,包括:使用第三方路由库改进路由设计、引入中间件处理通用逻辑、设置合适的超时和连接管理以防止资源泄露。通过基础服务器和中间件的代码示例,展示了如何有效运用`net/http`包。掌握这些最佳实践,有助于开发出高效、易维护的Web服务。
17 1
|
2月前
|
监控 网络安全 C++
Qt 5.14.2 网络编程揭秘:构建高效HTTP客户端与文件下载器
Qt 5.14.2 网络编程揭秘:构建高效HTTP客户端与文件下载器
|
9月前
|
JSON 自然语言处理 Java
Java中的HttpServletResponse:构建定制化的HTTP响应
在现代的Java Web应用开发中,与客户端的数据交互不仅限于请求,同样重要的是如何构建并发送适当的HTTP响应。在Spring框架中,`HttpServletResponse` 对象为我们提供了处理和定制HTTP响应的能力。本文将引导您深入了解`HttpServletResponse`对象,探讨其特点、用法、实现方式以及在实际应用中的优势。
|
9月前
|
缓存 Linux 开发工具
centos 7 yum安装失败(HTTP Error 404 - Not Found)的解决方法
centos 7 yum安装失败(HTTP Error 404 - Not Found)的解决方法
608 0
|
10月前
|
XML JSON 负载均衡
探秘Linux网络设计:Reactor模型与高效http静态服务器构建
本文将深入探讨Linux网络设计中的Reactor模型,并展示如何利用该模型构建高效的http静态服务器。在现代互联网环境中,快速响应和高吞吐量对于提供卓越用户体验至关重要。通过理解Reactor模型的基本概念和工作原理,我们将揭示它在构建高并发应用中的关键作用。本文还将详细介绍如何利用Reactor模型优化网络通信,实现快速的http请求处理和静态资源传输。通过实践经验的分享,包括事件驱动编程、多线程和多进程处理以及负载均衡等技巧,读者将获得构建高效http静态服务器的实际指导和启示。
184 0
探秘Linux网络设计:Reactor模型与高效http静态服务器构建
|
测试技术 API
构建知识体系 第2期 - 单元测试如何做 http 测试
上一篇文章我们大概的了解了单元测试的理论知识以及如何配置和使用,以及针对模块、controller如何编写测试用例。
96 0
构建知识体系 第2期 - 单元测试如何做 http 测试
|
监控 安全 Linux
【阿里云镜像】基于YUM方式构建Zabbix监控平台
【阿里云镜像】基于YUM方式构建Zabbix监控平台
367 1
【阿里云镜像】基于YUM方式构建Zabbix监控平台