手把手教你搭建Linux离线YUM源环境

搭建离线YUM源
工作中,虚拟机通常都是部署在内网环境中,无法连接互联网,因此无法使用互联网上的YUM源。我们经常会遇到系统ISO镜像中软件包缺失,系统软件补丁无法升级,第三方软件包无法安装等情况。本文通过搭建离线YUM源,解决了困扰已久的问题。

1. 目的
系统补丁升级
安装第三方源软件包,比如ngnix等。
安装额外的一些软件包
2. YUM源的种类
源名称    说明
base    操作系统镜像源,包含了ISO镜像内的所有软件包
updates    包含了系统更新,升级的软件包
extras    扩充的软件包合集
epel    EPEL (Extra Packages for Enterprise Linux)是基于Fedora的一个项目,为“红帽系”的操作系统提供额外的软件包,适用于RHEL、CentOS和Scientific Linux.
3. 准备工作
准备一台可以联网的linux虚拟机
部署一台可以联网的linux虚拟机,虚拟机的部署及联网可以参考翻阅下我之前写的文档,这些不做叙述。
安装创建YUM仓库的软件工具
[root@localhost yum.repos.d]#  yum install createrepo   yum-utils -y

移除其他镜像源
···
[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# mkdir bak
[root@localhost yum.repos.d]# mv * bak
···
下载阿里云的repo文件
最小化安装的操作系统没有wget命令,可以通过网页的形式去下载,之后上传到/etc/yum.repos.d目录
[root@localhost ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
[root@localhost ~]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

什么是yum源repo文件,repo文件是yum源(软件仓库)的配置文件,通常一个repo文件定义了一个或者多个软件仓库的配置内容,例如将从哪里下载需要安装或者升级的软件包,repo文件中的设置内容将被yum读取和应用。

构建YUM源缓存
[root@localhost ~]# yum clean all   #清除当前的yum源缓存
[root@localhost ~]#  yum makecache  #重新生成缓存
[root@localhost ~]#  yum repolist   #查看当前可用的YUM源

安装并启用httpd服务
[root@localhost /]# yum install httpd
[root@localhost /]# systemctl start httpd
[root@localhost /]# systemctl status httpd
● httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
Active: active (running) since Wed 2021-06-30 00:49:06 CST; 5s ago
....output omitted....

4. 同步阿里云的YUM源到本地
在/var/www/html目录中创建一个yum目录,空间要足够大,本例中我选择挂载一个独立的分区到/var/www/html/yum目录,镜像同步到本地,预计占用30G的空间。这里选择将目录存放在httpd服务的根目录(/var/www/html),为后续搭建本地http yum仓库做准备。
[root@localhost /]# df -h
..output omitted...
/dev/sda3                   50G   53M   47G   1% /var/www/html/yum
[root@localhost /]# cd /var/www/html/yum
[root@localhost yum]#

同步镜像到本地目录
 #reposync根据之前下载的repo文件下载rpm包到指定文件夹
[root@localhost /]# cd /var/www/html/yum
[root@localhost yum]# reposync -r base 
[root@localhost yum]# reposync -r extras
[root@localhost yum]# reposync -r updates
[root@localhost yum]# reposync -r epel

5. 创建本地YUM仓库
为本地yum仓库,生成新的repo文件
[root@localhost yum]# cd /var/www/html/yum/base
[root@localhost yum]# createrepo ./
[root@localhost yum]# cd /var/www/html/yum/extras
[root@localhost yum]# createrepo ./
[root@localhost yum]# cd /var/www/html/yum/updates
[root@localhost yum]#createrepo ./
[root@localhost yum]# cd /var/www/html/yum/epel
[root@localhost yum]# createrepo ./

6. 更新YUM仓库
到此本地YUM仓库搭建完成,如果在对应的仓库中加入新的软件包时,需要更新仓库。本文中不涉及。

[root@localhost ]#  createrepo --update /var/www/html/yum/epel

7. 离线YUM仓库的使用
虚拟机导出为模板上传到生产网环境中(方法一)
将虚拟机导出为OVF模板,上传到现网虚拟化平台,配置维护域ip地址,确保与其他主机网络正常通信。配置客户端主机的yum源配置文件,将YUM仓库指向该主机,即可正常使用该YUM仓库。客户端yum源配置文件如下:
[root@client yum.repos.d]# cd /etc/yum.repos.d
[root@client yum.repos.d]# mkdir bak ; mv * bak
[root@client yum.repos.d]# vi http.repo
[base]
name=RHEL- - Base - http
baseurl=http://192.168.17.130/yum/base
enabled=1
gpgcheck=0

[updates]
name=RHEL- - updates - http
baseurl=http://192.168.17.130/yum/updates
enabled=1
gpgcheck=0

[epel]
name=RHEL- - epel - http
baseurl=http://192.168.17.130/yum/epel
enabled=1
gpgcheck=0

[extras]
name=RHEL- - extras - http
baseurl=http://192.168.17.130/yum/extras
enabled=1
gpgcheck=0

[root@client yum.repos.d]# yum clean all
[root@client yum.repos.d]# yum makecache
[root@client yum.repos.d]# yum list | grep kernel
kernel.x86_64                            3.10.0-1160.el7               @anaconda
kernel-tools.x86_64                      3.10.0-1160.el7               @anaconda    
kernel-tools-libs.x86_64                 3.10.0-1160.el7               @anaconda
abrt-addon-kerneloops.x86_64             2.1.11-60.el7.centos          base
erlang-kernel.x86_64                     R16B-03.18.el7                epel
kernel.x86_64                            3.10.0-1160.31.1.el7          updates
kernel-abi-whitelists.noarch             3.10.0-1160.31.1.el7          updates
kernel-debug.x86_64                      3.10.0-1160.31.1.el7          updates
kernel-debug-devel.x86_64                3.10.0-1160.31.1.el7          updates
kernel-devel.x86_64                      3.10.0-1160.31.1.el7          updates
[root@client yum.repos.d]# yum install kernel
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Resolving Dependencies
--> Running transaction check
---> Package kernel.x86_64 0:3.10.0-1160.31.1.el7 will be installed
--> Finished Dependency Resolution
.....output ommitted.........
Transaction test succeeded
Running transaction
  Installing : kernel-3.10.0-1160.31.1.el7.x86_64                                                                                                                                                         
Complete!
客户端测试安装kernel软件包,成功安装。

将虚拟机的yum软件包所在目录打包上传到现网的yum源主机(方法二)
将本机/var/www/html/yum目录通过sftp等客户端工具保存到移动硬盘,之后再上传到现有的yum源主机对应目录中。更新客户端主机的yum源配置,指向新的YUM仓库目录,即可正常使用该YUM仓库。
方法二中需要注意,打包目录上传目标主机时,要将yum目录整体打包传输。其他步骤与方法一完全相同。

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要配置Linux离线yum源,可以按照以下步骤进行: 1. 在一台联网的Linux机器上,下载需要的yum源文件和软件包,可以使用wget或者curl命令进行下载。 2. 将下载好的文件和软件包拷贝到离线机器上,可以使用scp命令或者U盘等移动存储设备进行拷贝。 3. 在离线机器上创建一个本地yum源的配置文件,可以使用vi或者nano等编辑器进行编辑,配置文件的格式如下: [local] name=Local Yum Repository baseurl=file:///path/to/local/repo enabled=1 gpgcheck= 其中,name是yum源的名称,baseurl是本地yum源的路径,enabled表示是否启用该yum源,gpgcheck表示是否进行GPG签名校验。 4. 将配置文件保存到/etc/yum.repos.d/目录下,可以使用cp命令进行复制。 5. 运行yum clean all命令清除缓存,然后运行yum makecache命令生成本地yum源的元数据。 6. 离线机器就可以使用yum命令进行软件包的安装和更新了,例如yum install package_name。 注意:在配置本地yum源时,需要确保本地机器的软件包版本和依赖关系与在线yum源一致,否则可能会出现软件包安装失败的情况。 ### 回答2: Linux是一种广为使用的操作系统,在服务器管理和开发领域尤其流行。在Linux中,yum是一个非常重要的软件包管理工具,可以帮助管理员管理和安装Linux软件包。然而,如果服务器没有访问互联网的权限,则yum无法连接到默认的yum源进行安装,此时我们就需要设置一个本地离线yum源来解决这个问题。 下面是一些步骤来配置离线yum源: 1.下载离线yum源: 管理员需要首先下载一个相应的离线yum源,可以在任何有网络的计算机上下载。在此过程中,必须确保下载了所需的RPM包和依赖项。 2.将离线yum源镜像文件放到Linux服务器上: 将之前下载的离线yum源放到服务器的某个目录中。在本文中,我们假设它在“/opt/yumrepos”目录下。 3.设置YUM配置文件: 管理员需要使用如下命令修改yum的配置文件。若不存在,则在该目录下创建该文件: vi /etc/yum.repos.d/local.repo 将以下代码添加到该文件内。 [root@localhost]$ cat /etc/yum.repos.d/local.repo [local] name=local baseurl=file:///opt/yumrepos enabled=1 gpgcheck=0 其中,name表示源的名称,baseurl设置为之前下载的文件存放的路径,enabled设置为1表示启用这个源,gpgcheck表示是否开启GPG检查(0表示不检查,1表示检查)。 4.测试yum源: 使用以下命令测试yum源是否可用: [root@localhost]# yum clean all && yum update 如果成功,它应该开始更新和安装软件包。 通过上述步骤,管理员就能成功配置一个离线yum源。这种方法可以确保管理员能够在没有互联网连接的情况下轻松管理和安装Linux软件包,非常方便实用。 ### 回答3: 在Linux系统中使用yum命令进行软件安装非常方便,但是默认的yum源速度比较慢,有可能会出现网络连接不畅的情况,因此一些组织或企业可能会搭建自己的离线yum源来加快软件安装速度和安全性。以下是配置离线yum源的步骤: 1. 安装yum-utils工具 yum-utils包含一些有用的工具,例如yum-config-manager和reposync,它们可以帮助我们管理yum源。命令如下: ```sh yum install -y yum-utils ``` 2. 创建接收yum软件列表的目录 在安装过程中,我们需要指定一个接收yum软件列表的目录,可以先预创建一个目录。例如,我们创建一个目录"yum-repo"来接收软件列表。 ```sh mkdir /root/yum-repo ``` 3. 下载yum软件资源库 在离线yum源搭建中,必须要下载软件资源库。我们可以从官网上下载rpm包或者直接使用库中的软件包(通常不会有所有软件的包,所以建议从官网下载) 4. 使用reposync同步yum软件资源库 在本操作中,我们使用reposync命令从默认yum源中同步资源到本地。我们使用–download-metadata命令获取软件池中的元数据。 ```sh reposync --gpgcheck -lm --repoid=base --newest-only --download-metadata --download_path=/root/yum-repo/ ``` 解释: * --gpgcheck:启用 GPG 检查(默认情况下,reposync 禁用 GPG 检查) * -lm:在退出时,生成 metadata (repodata) 信息 * --repoid=base:下载 ID 名称为 base 的 YUM 存储库 * --newest-only:仅从存储库中下载最新的 RPM 包 * --download-metadata:只下载元数据 * --download_path=/root/yum-repo/:将 RPM 和元数据下载到指定的目录 5. 创建yum软件资源库 通过使用createrepo命令扫描/download_path/目录的所有rpm包并创建metadata (repodata)。 ```sh createrepo /root/yum-repo/ ``` 这样,我们就已经创建好了一个离线yum源。最后还需要修改本地系统的yum源为本地yum源,具体可以参考使用文档。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值