自建离线yum源



前言

由于公司主要业务都在专网、内网环境下运行,无法使用yum安装升级更新,服务器量少的情况下也可以使用离线安装,但是随着服务器规模上升并且人员混杂,还是使用统一的自建的yum源更加方面快捷。


一、yum以及源的概念?

yum是在RedHat中的一个包管理工具。基于RPM包管理,能够从指定服务器自动下载RPM包并且安装,可以自动处理依赖关系,能够一次安装所有依赖的软件包,无需一次一次的下载安装。yum源就是存放rpm包以及依赖关系的服务器,一般是指163、souhu、阿里、中国科技大学等公共的网络yum源,或者是自建的局域网yum仓库。


二、yum源标识(repo id)类型

base

指操作系统镜像源,包含了ISO镜像内的所有软件包

updates

包含了系统更新,升级的软件包

extras

扩充的软件包合集

epel

为“红帽系”的操作系统提供额外的软件包,适用于RHEL、CentOS和Scientific Linux.

自定义repo id
以k8s yum源为例,[repo id]本地可以随意定义,主要是看baseurl连接的源,当多个repo id重复时,会以最后加载的一个repo id为准

cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=k8s
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF

三、开始搭建

0、准备工作

首先需要准备一台可以连接互联网的服务器,安装所需依赖环境和软件包;

安装所需软件

yum -y install wget yum-utils createrepo 

createrepo:用于生成yum源各软件之间的依赖索引。
yum-utils:安装后可使用 yumdownloader 命令下载所需软件包。
reposync:Reposync用于将远程yum存储库同步到本地,使用yum检索包的目录。

配置yum源

这里使用阿里源Centos7的yum源为例

wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
#替换阿里源地址,官方推荐操作
sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo

1、全量离线yum源

1.1 查看已经配好的网络源id

yum repolist

1.2 按照源ID将网络源拉取到本地

reposync -r base -p /data/yum/base
reposync -r epel -p /data/yum/epel
reposync -r extras -p /data/yum/extras
reposync -r updates -p /data/yum/updates
reposync -r kubernetes -p /data/yum/kubernetes

1.3 生成repodata索引依赖

createrepo /data/yum/base
createrepo /data/yum/epel
createrepo /data/yum/extras
createrepo /data/yum/updates
createrepo /data/yum/kubernetes

在Packages同级目录中可以看到生成的repodata目录
在这里插入图片描述

1.4 使用测试

备份/etc/yum.repo.d/中的其他文件,手动添加:

[Centos7-base]
name=centos-base
baseurl=file:///opt/base/base
gpgcheck=0
enabled=1

#其他repo id按照同样格式书写
[kubernetes] 
name=k8s
baseurl=http://192.168.12.12/yum/kubernetes
......

注意:baseurl 可以使用file 、ftp或http,目录路径要写到Package和repodata目录。

1.5 测试

yum repolist

repo id                              repo name                            status
Centos7-base                         centos-base                          10,072
kubernetes                           k8s                                       0
repolist: 10,072

将本地的rpm包和依赖包压缩打包,放入内网环境,这样其他台的服务器也可能通过添加自定义的repop文件,以本机或者http的方式连接yum源仓库了


2、特定软件的离线yum源

上一种方法制作全量的yum离线源,虽然实用,但是把整个源全部都拉下来是在是太大了,仅拉取centos自带的yum源就占了10个G,加上epel和其他源,那就太大了。所以在大部分情况下不是很适用。

所以我们可以选择制作专门一个多多个软件包的小源,简单小巧,利于传输。

这里以docker举例,制作一个docker离线源

2.1 拉取特定服务rpm包和依赖

利用 yumdownloader 命令可以解决软件安装时的依赖关系,并且用参数可以将其所有都下载下来(并不安装到本地docker_rpms目录)

yumdownloader --resolve --destdir=./docker_rpms/ docker

2.2 生成repodata索引依赖

createrepo ./docker_rpms

2.3 测试

cat <<EOF>> /etc/yum.repos.d/test.repo
[docker]
name=dokcer-ce
baseurl=file:///root/docker_rpms
gpgcheck=0
enabled=1
EOF
yum repolist

repo id                              repo name                            status
Centos7-base                         centos-base                          10,072
docker                               dokcer-ce                                56
repolist: 10,128

验证成功!

  • 1
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答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源,具体可以参考使用文档。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值