安装环境准备:
系统版本:CentOS Linux release 7.6.1810 (Core)
以下是资源包下载地址:
python-deltarpm-3.6-3.el7.x86_64.rpm
libxml2-2.9.1-6.el7_9.6.x86_64.rpm
libxml2-python-2.9.1-6.el7_9.6.x86_64.rpm
createrepo-0.9.9-28.el7.noarch.rpm
把下载的源码包都上传到服务器上,并解压
1、需要先在有网络机器上操作
1.1 命令安装
[root@root ~]# yum install yum-utils createrepo
1.2 各软件包功能
createrepo:生成yum源各软件之间的依赖索引
yum-utils:安装后可使用 yumdownloader 命令下载所需软件包
2、全量本地离线yum源
以下操作须在已连接互联网的机器上操作:
2.1 查看已配置好的网络源
[root@root ~]# yum repolist
2.2 创建存储网络源文件夹,并按照源ID将网络源拉取到本地
[root@root ~]# mkdir /root/yum [root@root ~]# reposync -r base -p /root/yum
2.2.1 reposync其他参数
-h, --help 显示此帮助消息并退出 -c CONFIG, --config=CONFIG 要使用的配置文件(默认为/etc/yum.conf) -a ARCH, --arch=ARCH 像运行指定的arch一样(默认值:current arch,注意:不会覆盖$ releasever。 x86_64是一个 i * 86的超集。) --source 在源包上运行 -r REPOID, --repoid=REPOID 指定repo id来查询,可以指定多个次(默认全部启用) -e CACHEDIR, --cachedir=CACHEDIR 用于存储元数据的目录 -t, --tempcache 使用临时目录存储/访问yum-cache -d, --delete 删除存储库中不再存在的本地包 -p DESTDIR, --download_path=DESTDIR 下载包的路径:默认为当前目录 --norepopath 不要将reponame添加到下载路径。只可以 在同步单个存储库时使用(默认为 添加reponame) -g, --gpgcheck 删除未通过GPG签名检查的软件包 -u, --urls 只列出要下载的URL,不要下载 -n, --newest-only 仅下载per-repo的最新软件包 -q, --quiet 尽可能少地输出 -l, --plugins 启用yum插件支持 -m, --downloadcomps 下载comps.xml --download-metadata 下载所有非默认元数据 --allow-path-traversal 允许存储在其repo目录之外的包,同步(UNSAFE,小心使用!)
2.2.2 打包压缩源文件
将拉取下来的源文件夹压缩,方便传输减少带宽消耗
[root@root ~]# tar -zcvf yum.tar.gz /root/yum/
3、无网机器测试
3.1 备份原有yum源,安装准备所需安装包
[root@root ~]# mkdir /etc/yum.repos.d/backup/ [root@root ~]# mv /etc/yum.repos.d/* /etc/yum.repos.d/backup/ 安装createrepo [root@root ~]# rpm -ivh deltarpm-3.6-3.el7.x86_64.rpm [root@root ~]# rpm -ivh python-deltarpm-3.6-3.el7.x86_64.rpm [root@root ~]# rpm -ivh libxml2-2.9.1-6.el7_9.6.x86_64.rpm --nodeps [root@root ~]# rpm -ivh libxml2-python-2.9.1-6.el7_9.6.x86_64.rpm --nodeps [root@root ~]# rpm -ivh createrepo-0.9.9-28.el7.noarch.rpm --nodeps
3.2 创建新yum源
[root@root ~]# cat > /etc/yum.repos.d/test.repo << EOF > [centos-base] > name=centos-base > baseurl=file:///root/yum/base > gpgcheck=0 > enabled=1 > EOF
3.3 生成本地yum源缓存
将本地同步下来的源文件生成缓存数据库文件,执行后会在/root/yum/base文件夹中生成一个叫repodata的文件,很重要!它包含各软件包之间的依赖关系、版本信息等。
[root@root ~]# createrepo /root/yum/base/
3.3 createrepo 其他参数
-u --baseurl <url> 指定Base URL的地址 -o --outputdir <url> 指定元数据的输出位置 -x --excludes <packages> 指定在形成元数据时需要排除的包 -i --pkglist <filename> 指定一个文件,该文件内的包信息将被包含在即将生成的元数据中,格式为每个包信息独占一行,不含通配符、正则,以及范围表达式。 -n --includepkg 通过命令行指定要纳入本地库中的包信息,需要提供URL或本地路径。 -q --quiet 安静模式执行操作,不输出任何信息。 -g --groupfile <groupfile> 指定本地软件仓库的组划分,范例如下: createrepo -g comps.xml /path/to/rpms 注意:组文件需要和rpm包放置于同一路径下。 -v --verbose 输出详细信息。 -c --cachedir <path> 指定一个目录,用作存放软件仓库中软件包的校验和信息。 当createrepo在未发生明显改变的相同仓库文件上持续多次运行时,指定cachedir会明显提高其性能。 --update 如果元数据已经存在,且软件仓库中只有部分软件发生了改变或增减, 则可用update参数直接对原有元数据进行升级,效率比重新分析rpm包依赖并生成新的元数据要高很多。 -p --pretty 以整洁的格式输出xml文件。 -d --database 该选项指定使用SQLite来存储生成的元数据,默认项。
3.4 查看离线源是否可以正常使用
清空缓存,查看是否可以正常加载源文件
[root@root base]# yum clean all [root@root base]# yum repolist 已加载插件:fastestmirror Loading mirror speeds from cached hostfile 源标识 源名称 状态 centos-base centos-base 10,072repolist: 10,072
标签:--,root,离线,无网,yum,base,rpm,el7 From: https://www.cnblogs.com/sunni/p/17822122.html