CentOS 内网YUM源配置使用
YUM介绍
- yum,是Yellow dog Updater, Modified 的简称,是杜克大学为了提高RPM 软件包安装性而开发的一种软件包管理器。起初是由yellow dog 这一发行版的开发者Terra Soft 研发,用python 写成,那时还叫做yup(yellow dog updater),后经杜克大学的Linux@Duke 开发团队进行改进,遂有此名。yum 的宗旨是自动化地升级,安装/移除rpm 包,收集rpm 包的相关信息,检查依赖性并自动提示用户解决。yum 的关键之处是要有可靠的repository,顾名思义,这是软件的仓库,它可以是http 或ftp 站点,也可以是本地软件池,但必须包含rpm 的header,header 包括了rpm 包的各种信息,包括描述,功能,提供的文件,依赖性等。正是收集了这些header 并加以分析,才能自动化地完成余下的任务。
- yum 的理念是使用一个中心仓库(repository)管理一部分甚至一个distribution 的应用程序相互关系,根据计算出来的软件依赖关系进行相关的升级、安装、删除等等操作,减少了Linux 用户一直头痛的dependencies 的问题。这一点上,yum 和apt 相同。apt 原为debian 的deb 类型软件管理所使用,但是现在也能用到RedHat 门下的rpm 了。
- yum 主要功能是更方便的添加/删除/更新RPM 包,自动解决包的倚赖性问题,便于管理大量系统的更新问题。
- yum 可以同时配置多个资源库(Repository),简洁的配置文件(/etc/yum.conf),自动解决增加或删除rpm 包时遇到的依赖性问题,保持与RPM 数据库的一致性。
YUM配置
- yum 的配置文件分为两部分:
- 一种是直接配置/etc目录下的yum.conf文件。
- 一种是在/etc/yum.repos.d目录下增加.repo文件。
- 配置文件yum.conf详解。
[main]
cachedir= /var/cache/yum/ $basearch/$releasever # yum缓存的目录,yum在此存储下载的rpm包和数据库
keepcache=0 # 是否保留缓存内容,0:表示安装后删除软件包,1表示安装后保留软件包
debuglevel=2 # 调试级别(0-10),默认为2
logfile= /var/log/yum .log # 存放系统更新软件的日志的目录
exactarch=1 # 有1和0两个选项,设置为1,则yum只会安装和系统架构匹配的软件包
obsoletes=1 # 这是一个update的参数,具体请参阅yum(8),简单的说就是相当于upgrade,允许更新陈旧的RPM包
gpgcheck=1 # 1和0两个选择,分别代表是否是否进行gpg校验,如果没有这一项,默认是检查的
plugins=1 # #是否允许使用插件,1是允许,默认是0不允许
installonly_limit=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详解
[base] # 用于区别各个不同的repository,必须有一个独一无二的名称
name=CentOS-$releasever - Base - mirrors.aliyun.com # 是对repository 的描述,支持像$releasever $basearch这样的变量
failovermethod=priority # 有两个选项roundrobin和priority,意思分别是有多个url可供选择时,yum选择的次序,roundrobin是随机选择,如果连接失败则使用下一个,依次循环;
# priority则根据url的次序从第一个开始。如果不指明,默认是roundrobin
baseurl=http: //mirrors .aliyun.com /centos/ $releasever /os/ $basearch/ # #yum源访问地址,可以用http/ftp/file
http: //mirrors .aliyuncs.com /centos/ $releasever /os/ $basearch/
http: //mirrors .cloud.aliyuncs.com /centos/ $releasever /os/ $basearch/
gpgcheck=1 # 是否检查源的合法性;1:检查,0:不检查
gpgkey=http: //mirrors .aliyun.com /centos/RPM-GPG-KEY-CentOS-7 # 源的校验地址
搭建yum仓库优点
- 节省流量,避免从公网重复下载软件包;为公司省钱;
- 提升下载速度;外网下载受带宽影响,下载速度较慢,而yum仓库在局域网中就很快;
- 方便统一管理,软件版本,都能做到统一;
- 避免访问外网,很多大公司,都是与公网隔绝的,尤其是大公司的类生产环境,绝对不予许随便访问外网,这是获取安装包的途径就只能通过内网yum仓库;
情景一:内网YUM源光盘
- 所有服务器避免访问外网,获取安装包的途径就只能通过内网yum仓库。
服务端YumServer配置
# 准备环境
[root@YumServer ~] # cat /etc/redhat-release
CentOS Linux release 7.5.1804 (Core)
[root@YumServer ~] # uname -a
Linux YumServer 3.10.0-862.el7.x86_64 #1 SMP Fri Apr 20 16:44:24 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
[root@YumServer ~] # setenforce 0
[root@YumServer ~] # sed -i.bak '7s/enforcing/disabled/' /etc/selinux/config
[root@YumServer ~] # systemctl stop firewalld && systemctl disable firewalld
# 下载安装基础软件
[root@YumServer ~] # yum install -y vim wget curl
# 备份系统自带repo
[root@YumServer ~] # cd /etc/yum.repos.d/
[root@YumServer /etc/yum .repos.d] # tar -zcf repo_bak.tar.gz *.repo
[root@YumServer yum.repos.d] # tar -ztf repo_bak.tar.gz
CentOS-Base.repo
CentOS-CR.repo
CentOS-Debuginfo.repo
CentOS-fasttrack.repo
CentOS-Media.repo
CentOS-Sources.repo
CentOS-Vault.repo
# 清除*.repo
[root@YumServer yum.repos.d] # rm ./*.repo -f
[root@YumServer yum.repos.d] # ls
repo_bak. tar .gz
[root@YumServer ~] # wget https://mirrors.163.com/centos-vault/centos/7.5.1804/isos/x86_64/CentOS-7-x86_64-Everything-1804.iso
# 新建挂载点
[root@YumServer ~] # mkdir /mnt/cdrom7
[root@YumServer ~] # mount -o loop -t iso9660 CentOS-7-x86_64-Everything-1804.iso /mnt/cdrom7
[root@YumServer ~] # mkdir -p /data/mirrors/centos/7/os/x86_64/
[root@YumServer ~] # cp -a /mnt/cdrom7/* /data/mirrors/centos/7/os/x86_64/
# 新建localYum.repo
[root@YumServer ~] # cat /etc/yum.repos.d/localYum.repo
[base]
name=cdrom7 yum
baseurl= file : ///mnt/cdrom7
gpgcheck=0
enabled=1
[root@YumServer ~] # yum clean all && yum makecache
# 下载安装部署nginx,其他软件rpm包保存至同一目录路径即可
[root@YumServer ~] # wget -P /data/mirrors/centos/7/os/x86_64/Packages/ https://nginx.org/packages/centos/7/x86_64/RPMS/nginx-1.20.0-1.el7.ngx.x86_64.rpm
[root@YumServer ~] # rpm -ivh /data/mirrors/centos/7/os/x86_64/Packages/nginx-1.20.0-1.el7.ngx.x86_64.rpm
[root@YumServer ~] # cat /etc/nginx/conf.d/yum.conf
server {
listen 80 default_server;
server_name _;
location / {
# 仓库文件路径
root /data/mirrors/ ;
# 开启目录显示功能
autoindex on;
# 关闭详细文件大小统计,默认为b,以kb、mb、gb为单位显示
autoindex_exact_size off;
# 开启以服务器时区显示文件修改日期
autoindex_localtime on;
# 以html风格将目录展示在浏览器中
autoindex_format html;
charset utf-8,gbk;
}
}
# 检查配置语法并启动nginx
[root@YumServer ~] # nginx -t
nginx: the configuration file /etc/nginx/nginx .conf syntax is ok
nginx: configuration file /etc/nginx/nginx .conf test is successful
[root@YumServer ~] # systemctl start nginx && systemctl enable nginx
[root@YumServer ~] # hostname -I
172.16.70.182
注意:其他软件rpm包拷贝/data/mirrors/centos/7/os/x86_64/Packages/即可。
- 浏览器访问http://172.16.70.182
客户端YumTest配置
# 备份系统自带repo
[root@YumTest ~] # cd /etc/yum.repos.d/
[root@YumTest /etc/yum .repos.d] # tar -zcf repo_bak.tar.gz *.repo
[root@YumTest yum.repos.d] # tar -ztf repo_bak.tar.gz
CentOS-Base.repo
CentOS-CR.repo
CentOS-Debuginfo.repo
CentOS-fasttrack.repo
CentOS-Media.repo
CentOS-Sources.repo
CentOS-Vault.repo
# 清除*.repo
[root@YumTest yum.repos.d] # rm ./*.repo -f
[root@YumTest ~] # cat /etc/yum.repos.d/localYum.repo
[base]
name=cdrom7 repo
baseurl=http: //172 .16.70.182 /centos/7/os/x86_64/
gpgcheck=0
enabled=1
[updates]
name=cdrom7 update
baseurl=http: //172 .16.70.182 /centos/7/os/x86_64/
gpgcheck=0
enabled=1
[root@YumTest ~] # yum clean all && yum makecache
# 测试安装net-tools
[root@YumTest ~] # yum install -y net-tools
[root@YumTest ~] # rpm -q net-tools
net-tools-2.0-0.22.20131004git.el7.x86_64
情景二:内网YUM源镜像站
- YumServer作为服务器端定期同步中科大镜像站,部署一套内网的yum源环境,以供内网服务器使用,节省流量避免从公网重复下载软件包。
服务端YumServer配置
# 准备环境
[root@YumServer ~] # cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
[root@YumServer ~] # uname -a
Linux YumServer 3.10.0-1160.el7.x86_64 #1 SMP Mon Oct 19 16:18:59 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
[root@YumServer ~] # setenforce 0
[root@YumServer ~] # sed -i.bak '7s/enforcing/disabled/' /etc/selinux/config
[root@YumServer ~] # systemctl stop firewalld && systemctl disable firewalld
[root@YumServer ~] # yum install -y vim wget curl rsync
[root@YumServer ~] # systemctl start rsyncd && systemctl enable rsyncd
Created symlink from /etc/systemd/system/multi-user .target.wants /rsyncd .service to /usr/lib/systemd/system/rsyncd .service.
[root@YumServer ~] # ss -ntpl | grep rsync
LISTEN 0 5 *:873 *:* users :(( "rsync" ,pid=1182,fd=4))
LISTEN 0 5 :::873 :::* users :(( "rsync" ,pid=1182,fd=5)
[root@YumServer ~] # mkdir -p /data/mirrors/centos/7/{epel,rpm,software,extras,os,updates}
[root@YumServer ~] # mkdir -p /data/mirrors/centos/6/{epel,rpm,software,extras,os,updates}
[root@YumServer ~] # wget -P /data/mirrors/centos/7/rpm https://nginx.org/packages/centos/7/x86_64/RPMS/nginx-1.20.0-1.el7.ngx.x86_64.rpm
[root@YumServer ~] # rpm -ivh /data/mirrors/centos/7/rpm/nginx-1.20.0-1.el7.ngx.x86_64.rpmrpm
[root@YumServer ~] # cat /etc/nginx/conf.d/yum.conf
server {
listen 80 default_server;
server_name _;
location / {
# 仓库文件路径
root /data/mirrors/ ;
# 开启目录显示功能
autoindex on;
# 关闭详细文件大小统计,默认为b,以kb、mb、gb为单位显示
autoindex_exact_size off;
# 开启以服务器时区显示文件修改日期
autoindex_localtime on;
# 以html风格将目录展示在浏览器中
autoindex_format html;
charset utf-8,gbk;
}
}
[root@YumServer ~] # nginx -t
nginx: the configuration file /etc/nginx/nginx .conf syntax is ok
nginx: configuration file /etc/nginx/nginx .conf test is successful
[root@YumServer ~] # systemctl start nginx && systemctl enable nginx
[root@YumServer ~] # cat /data/mirrors/yum.sh
#!/bin/bash
# 同步centos7
rsync -av rsync : //rsync .mirrors.ustc.edu.cn /epel/7/x86_64/ /data/mirrors/centos/7/epel/x86_64 > /data/yum_7_epel .log 2>&1
rsync -av rsync : //rsync .mirrors.ustc.edu.cn /centos/7/extras/x86_64/ /data/mirrors/centos/7/extras/x86_64 > /data/yum_7_extras .log 2>&1
rsync -av rsync : //rsync .mirrors.ustc.edu.cn /centos/7/updates/x86_64/ /data/mirrors/centos/7/updates/x86_64 > /data/yum_7_updates .log 2>&1
rsync -av rsync : //rsync .mirrors.ustc.edu.cn /centos/7/os/x86_64/ /data/mirrors/centos/7/os/x86_64 > /data/yum_7_os .log 2>&1
# 同步centos6
rsync -av rsync : //rsync .mirrors.ustc.edu.cn /epel/6/x86_64/ /data/mirrors/centos/6/epel/x86_64 > /data/yumi_6_epel .log 2>&1
rsync -av rsync : //rsync .mirrors.ustc.edu.cn /centos/6/extras/x86_64/ /data/mirrors/centos/6/extras/x86_64 > /data/yum ._6_extras.log 2>&1
rsync -av rsync : //rsync .mirrors.ustc.edu.cn /centos/6/updates/x86_64/ /data/mirrors/centos/6/updates/x86_64 > /data/yum_6_updates .log 2>&1
rsync -av rsync : //rsync .mirrors.ustc.edu.cn /centos/6/os/x86_64/ /data/mirrors/centos/6/os/x86_64 > /data/yum_6_os .log 2>&1
[root@YumServer ~] # crontab -e
#每个月1号的23:00点同步一次yum源
0 23 1 * * /usr/bin/bash /data/mirrors/yum .sh > /dev/null 2>&1
=========================================================================================================
# 同步centos7所有信息
[root@YumServer ~] # rsync -av rsync://rsync.mirrors.ustc.edu.cn/centos/7/ /data/mirrors/centos/7/
=========================================================================================================
# 新增yum_rest.sh模板文件
[root@YumServer ~] # cat /data/mirrors/centos/7/software/yum_rest.sh
#!/bin/bash
# 备份系统自带repo
cd /etc/yum .repos.d/
tar -zcf repo_bak. tar .gz *.repo
# 清除*.repo
rm ./*.repo -f
wget http: //172 .16.70.192 /centos/7/software/CentOS-Base .repo
wget http: //172 .16.70.192 /centos/7/software/epel .repo
/usr/bin/yum clean all
/usr/bin/yum makecache
# 新增CentOS-Base.repo模板文件
[root@YumServer ~] # cat /data/mirrors/centos/7/software/CentOS-Base.repo
[base]
name=CentOS-$releasever - Base
baseurl=http: //172 .16.70.192 /centos/ $releasever /os/ $basearch/
gpgcheck=1
gpgkey= file : ///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
#released updates
[updates]
name=CentOS-$releasever - Updates
baseurl=http: //172 .16.70.192 /centos/ $releasever /updates/ $basearch/
gpgcheck=1
gpgkey= file : ///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
baseurl=http: //172 .16.70.192 /centos/ $releasever /extras/ $basearch/
gpgcheck=1
gpgkey= file : ///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
baseurl=http: //172 .16.70.192 /centos/ $releasever /centosplus/ $basearch/
gpgcheck=1
enabled=0
gpgkey= file : ///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
# 新增epel.repo模板文件
[root@YumServer ~] # cat /data/mirrors/centos/7/software/epel.repo
[epel]
name=Extra Packages for Enterprise Linux 7 - $basearch
baseurl=http: //172 .16.70.192 /epel/7/ $basearch
failovermethod=priority
enabled=1
gpgcheck=1
gpgkey= file : ///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
[epel-debuginfo]
name=Extra Packages for Enterprise Linux 7 - $basearch - Debug
baseurl=http: //172 .16.70.192 /epel/7/ $basearch /debug
failovermethod=priority
enabled=0
gpgkey= file : ///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
gpgcheck=1
[epel- source ]
name=Extra Packages for Enterprise Linux 7 - $basearch - Source
baseurl=http: //172 .16.70.192 /epel/7/SRPMS
failovermethod=priority
enabled=0
gpgkey= file : ///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
gpgcheck=1
[root@YumServer ~] # hostname -I
172.16.70.192
- 浏览器访问http://172.16.70.192
客户端配置
[root@YumTest ~] # wget http://172.16.70.192/centos/7/software/yum_rest.sh
[root@YumTest ~] # bash yum_rest.sh
CentOS 内网YUM源配置使用的更多相关文章
- 搭建内网Yum源
搭建内网yum源 阅读(2,238) 一:因内网服务器 众多,当统一安装一些比较大的rpm的时候全部从外网下载就比较慢,而且还占用了一定的出口流量,因此在内网部署了一台yum服务器,将阿里云的epel ...
- #centos7 创建内网yum源 OpenStack源部署
#centos7 创建内网yum源#centos7 自动化安装 本地 内网 web源创建.更新 createrepo http OpenStack源部署 Elven原创 http://www.cnbl ...
- 【转】内网yum源搭建
我们内网yum要玩的话,先加hosts,然后找运维要CentOS_base.repo这个文件,然后yum clean all && yum makecache ========== ...
- RedHat和CentOS使用本地yum源配置
2013-04-01 11:38:30 标签:本地yum源 版权声明:原创作品,谢绝转载!否则将追究法律责任. 使用yum命令安装所需的软件,如果设备网络状况很好,当然也没必要去配置本地yum源,直接 ...
- linux 配置内网yum源
一.yum服务器端配置1.安装FTP软件#yum install vsftpd #service vsftpd start#chkconfig --add vsftpd#chkconfig vsftp ...
- 利用nginx 来实现内网yum源(反向代理)
简介 在项目部署时,尤其是在政府企业,对于外网简直是奢望,但是对于运维来说,没有外网的话只能自建yum源.我今天来说的是一种简单的自建yum源方法,前提是必须有一台内外网都有的机器,我们一般称为前置机 ...
- RadHat搭建内网YUM源server
前言:随着内网linuxserver越来越多,在每台server上安装软件.都要先把安装盘上传上去.在配置本地yum服务,即麻烦又费时.能够在内网的一台linuxserver上安装yum服务,然后其它 ...
- Linux学习笔记5-搭建内网Yum源
一.安装Nginx 1.安装依赖: [root@nodeSource local]# yum install gc-devel gcc-c++ pcre-devel zlib-devel 2.解压N ...
- 公司内网yum源
新增yum源配置文件 vi /etc/yum.repos.d/szyum.repo 内容如下: #[redhat6.3] [base] name=redhat63 baseurl=http://10. ...
- centos 7 常用yum源配置
使用centos系统最熟悉的莫过于yum命令,yum命令可以让安装软件变得那么简单,编译安装的依赖关系大部分都会解决. 工具/原料 centos 7 wget yum 方法/步骤 什么是y ...
随机推荐
- 使用增强版 singleflight 合并事件推送,效果炸裂!
hello,大家好啊,我是小楼. 最近在工作中对 Go 的 singleflight 包做了下增强,解决了一个性能问题,这里记录下,希望对你也有所帮助. singleflight 是什么 single ...
- 解密Prompt7. 偏好对齐RLHF-OpenAI·DeepMind·Anthropic对比分析
前三章都围绕指令微调,这一章来唠唠RLHF.何为优秀的人工智能?抽象说是可以帮助人类解决问题的AI, 也可以简化成3H原则:Helpful + Honesty + Harmless.面向以上1个或多个 ...
- Kali系统 连接 Xshell
1> 进入kali系统,修改ssh配置文件:vi /etc/ssh/sshd_config 2> 将PermitRootLogin without-password修改为:PermitRo ...
- 代码随想录算法训练营Day45 动态规划
代码随想录算法训练营 代码随想录算法训练营Day45 动态规划|70. 爬楼梯(进阶) 322. 零钱兑换 70. 爬楼梯 (进阶) 题目链接:70. 爬楼梯 (进阶 假设你正在爬楼梯.需要 n 阶你 ...
- 最流行的AI绘图工具Midjourney,你不得不知道的使用技巧
关注文章下方公众号,可免费获取AIGC最新学习资料 本文字数:1500,阅读时长大约:10分钟 Midjourney成为了最受欢迎的生成式AI工具之一.它的使用很简单.输入一些文本,Midjourn ...
- Java(if选择、switch选择、循环)
1.if 选择结构 //语法 if(表达式){ //语句:(表达式为真) }else{ //语句:(表达式为假) } --------------------------------------- 例 ...
- WPF中有中心点的slider滑动条
想要实现的效果 原生滑动条 需要认识一下滑动条的组成 在原生控件中生成"资源字典"对应的样式 然后在track所在的列进行添砖加瓦 由于track在row="1" ...
- c++中vector容器的用法
C语言中const关键字是constant的缩写,通常翻译为常量.常数等,它可以修饰变量.数组.指针.函数参数. vector 是向量类型,它可以容纳许多类型的数据,如若干个整数,所以称其为容器.ve ...
- JIRA安装
JIRA安装 操作系统: 阿里云centos6.8 域名: yan.jzhsc.com 1.安装与配置JAVA sudo -u root -H bash # 在oracle官网下载JDK,安装并配置环 ...
- Jconsole 开启远程连接遇到的一些坑
最近在学习 JVM,其中涉及到性能.内存等指标分析需要使用工具分享,Java 提供了几个可视化工具来监控和管理 Java 应用,比如 Jconsole.JVisual.JMC,他们以图形化的界面实时的 ...