linux配置本地yum源实现在局域网中在线安装软件包
安装linux下安装软件需要安装一系列的rpm包,用rpm -ivh xx和yum install xx
如果用rpm安装软件包的时候,需要自己下载rpm安装包,如果rpm包不全总是提示依赖检查失败或者提示未知的错误,过程比较复杂。通过yum的命令安装会很方便,但是,很多公司的服务器是在内网中运行,就无法通过yum命令访问互联网中的仓库下载安装软件包。如果在本地配置yum源这样就可以在无法访问外网的情况下使用yum安装软件包。
准备
-
Httpd服务
搭建本地yum源需要httpd服务将安装包代理,能够通过http的方式访问
系统默认按照
有些服务器中会自带httpd服务,可以使用命令检查是否安装 httpd :
rpm -qa|grep httpd
如果默认按照的有就可以直接启动使用
systemctl start httpd 如果系统自带,默认启动
systemctl status httpd 检查 httpd 是否正常安装
systemctl enable httpd 设置 httpd 开机自启动
在线安装:
如果系统没有默认安装httpd服务,则需要自己安装,若允许服务器临时访问互联网,可以直接使用下面命令在线按照httpd
yum -y install httpd
安装完成之后启动,设置开机自启动
systemctl start httpd
systemctl enable httpd
离线安装:
若系统没有安装且服务器在任何情况下也无法访问互联网,就需要离线安装
安装步骤如下:
将httpd目录下的httpd按照包上传到服务器(共三个)
在服务器上进入到httpd按照包存放目录并执行插件安装命令
cd httpd
rpm -Uvh *.rpm --nodeps –force
启动:
systemctl start httpd启动
systemctl status httpd 检查 httpd 是否正常安装
systemctl enable httpd 设置 httpd 开机自启动
测试:
在服务器中的/var/www/html/目录下创建文件夹或文件,使用浏览器访问:httpd://服务器ip/创建的文件夹或目录
小技巧补充:
在linux中想离线安装软件又没有现成rpm安装包时且不清楚具体需要哪些安装包,如本文档中的httpd安装过程,服务器无法联网,而搭建本地yum源又必须要httpd软件,此时就不得不离线安装httpd,此时如果想快速找到需要的rpm安装包可以用如下方法就以本文的httpd安装过程为例:
-
在一台能够联网的linux服务器(vmware虚拟机即可),使用yum –y install httpd在线安装httpd服务,安装过程中会有日志打印,找到下载安装包的日志,这里会记录安装过程下载了哪些安装包,如下图所示这里一共下载了3个安装包:
httpd-2.4.6-88.el7.centos.x86_64.rpm
httpd-tools-2.4.6-88.el7.centos.x86_64.rpm
mailcap-2.1.41-2.el7.noarch.rpm
-
找到linux服务器对应版本的Everything版ios镜像,在镜像压缩文件的Packages文件夹下搜索日志中出现的rpm安装包,Everything IOS中集成了所有的软件,所以一般都能够找到
-
找到所有需要的rpm安装包之后并上传到服务中,在服务器上就可以使用安装插件命令进行离线安装
安装所有rpm包:rpm -Uvh *.rpm --nodeps –force
-
CentOS系统镜像文件
既然搭建本地的yum源,就需要所有的rpm安装包,centOS Everything ISO版镜像文件中包含了完整安装版的内容,并对其进行补充,集成了所有软件,因此只要下载Everything ISO版的CentOS镜像即可
CentOS下载地址:https://www.centos.org/download/
具体的下载方式可参考教程"从CentOS官网下载系统镜像详细教程",本文将采用CentOS 7.6来进行搭建,所以下载CentOS-7-x86_64-Everything-1810.iso镜像,因为包含了所有的软件包,可使用迅雷等下载工具
直接访问USA站点,这里面包含了所有的版本:http://archive.kernel.org/centos-vault/
下载好的centOS镜像文件:
安装createrepo&plugin
createrepo是linux下的创建仓库的软件包。
将createrepo和plugin的安装包上传到服务器
进入到上传文件夹安装全部插件
cd createpro\&plugin/
rpm -Uvh *.rpm --nodeps –force
创建索引
将上面下载的iso镜像文件CentOS-7-x86_64-Everything-1810.iso解压
将解压文件中的Packages目录单独打包
单独打包Packages是为了方便上传到linux服务器
压缩成tar.gz格式的是为了方便在linux上挤压
如果直接上传Packages文件夹也是可以的,但会花费很长时间,里面有上万个文件
将Packages.tar.gz解压到/var/www/html/centos7/1810-x86_64/Local目录下
mkdir -p /var/www/html/centos7/1810-x86_64/Local
tar -zxvf Packages.tar.gz -C /var/www/html/centos7/1810-x86_64/Local/
上传key和repldate配置信息文件
将iso镜像文件CentOS-7-x86_64-Everything-1810.iso中的RPM-GPG-KEY-CentOS-7文件和repodata文件夹上传到服务器的/var/www/html/centos7/文件夹下
所有文件上传完成之后可以在浏览器中通过http方式访问到刚才上传的文件
http://bigdata136.hdp.com/centos7/1810-x86_64/Local/Packages/
创建索引
cd /var/www/html/
createrepo centos7/
修改 centos 源文件
cd /etc/yum.repos.d/
cp CentOS-Base.repo centos7-local.repo
复制repo文件之后将系统自带的其他*.repo文件全部删除或者移动到其他地方,否则后期运行 yum makecache 会出错
修改centos7-local.repo
vi centos7-local.repo
将原来内容全部删除,添加下面内容
[centos7-base]
name=CentOS7-Base
baseurl=http://bigdata136.hdp.com/centos7/
gpgcheck=0
enabled=1
priority=1
#baserul是创建索引的路径,即执行命令createrepo centos7/的路径,
# gpgcheck=0
值为0 表示跳过下载的rpm包的校验,
如果值为1,则要再添加gpgkey变量来指向校验文件如:
gpgkey= http://bigdata136.hdp.com/centos7/RPM-GPG-KEY-CentOS-7
要保证上文件路径能够在浏览器中访问到
重新加载yum缓存
#清除全部缓存
yum clean all
#重新加载yum缓存
yum makecache
#查看yum缓存列表
yum repolist
修改其他服务器的yum源配置
Yum源搭建完成之后,相当于服务端,若让其他服务器在安装软件时使用该服务端则需要如下操作
在其他服务器中分别删除/etc/yum.repos.d/下的所有文件
rm -rf /etc/yum.repos.d/
拷贝yum源配置文件到其他服务器
scp -r /etc/yum.repos.d/ bigdata137.hdp.com:/etc/
在其他服务器上重新加载yum缓存
yum clean all
yum makecache
yum repolist
测试
安装一个软件试下是否能够正常安装
安装ftp客户端:
安装ntp时钟同步服务器
错误处理:
yum源搭建的成功与否可以在执行yum makecache看到,若执行这个命令时没有报错,一般情况下是搭建成功,若有错误,则说明 yum 源的配置有错误,需要根据错误信息修改,常见错误列举如下:
错误一:
http://bigdata136.hdp.com/centos7/repodata/repomd.xml: [Errno 14] curl#6 - "Could not resolve host: bigdata136.hdp.com; Unknown error"
错误原因:
访问http://bigdata136.hdp.com/centos7/repodata/repomd.xml文件有错误,可能是忘记上传镜像文件中的repodata文件夹或在上传服务器是位置存放错误,必须要放到/var/www/html/centos7文件夹下
解决方法:
重新上传repodata文件夹,然后执行命令:
cd /var/www/html/
createrepo centos7/
执行重新加载yum缓存命令:
yum clean all
yum makecache
yum repolist
错误二:执行createrepo centos7/命令要在/var/www/html/执行
错误三:创建仓库文件夹路径错误
mkdir -p /var/www/html/centos7/1810-x86_64/Local
本文使用的是centOS7.6版本,安装软件包时会自动查找创建的仓库下的1810-x86_64/Local/Packages目录,如果使用其他版本有可能改路径会改变,所以要根据错误提示修改
本文作者:莲藕淹,转载请注明原文链接:https://www.cnblogs.com/meanshift/p/15574495.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY