由于工作环境是离线的,在使用Linux安装软件的时候会经常出现依赖包无法下载的情况,经过几天的探索和测试,在CentOS7.5和CentOS8.1两个系统中通过制作yum源实现软件的离线安装。
思路肯定是需要准备一台能连互联网的机器(最好是新创建的系统,因为使用过的系统以前可能安装过相关依赖包),通过这台机器将所需要安装包保存下来,转移到离线环境中,再想办法能够使其正常安装。
我在很多文章中也看到使用yumdownloader或者使用downloadonly等方法来下载、保存安装包及依赖包,然后再在离线环境中安装,可能是我需要安装的软件比较特殊,总是会安装出错,一直“正在处理依赖关系”。
最后通过摸索,我将yum install 安装过程的所有包存放在某个路径下,在这个路径中添加yum仓库文件,再在离线环境中修改机器的yum仓库源,再yum install的时候就可以了。
缓存yum install包
首先修改yum install的缓存路径:
vi /etc/yum.conf
将内容改为:
[main]
cachedir=/var/cache/yum/packages
keepcache=1
debuglevel=2
logfile=/var/log/yum.log
exactarch=1
obsoletes=1
gpgcheck=1
plugins=1
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
重点是设置cachedir并将keepcache改成1。
这样再进行yum install的时候所有相关的文件都会保存到所设定的cachedir中。
CentOS8思路也是一样,但是/etc/yum.conf的内容不一样,默认是没有cachedir和keepcache的,可以手动添加一下:
[main]
cachedir=/var/cache/yum/packages
keepcache=1
gpgcheck=1
installonly_limit=3
clean_requirements_on_remove=True
best=True
然后是需要安装yum仓库制作的插件,CentOS7.5和8.1是一样的:
yum -y install createrepo
在yum 的cachedir中添加仓库文件:
createrepo -v /var/cache/yum/packages
添加成功后cachedir中会出现一个repodata文件夹:
添加repodata.png
这样包含所需安装的软件的安装、依赖包及仓库就创建好了,将其传输到离线机器上,再修改离线机器的yum源。
修改yum源
yum源位于/etc/yum.repos.d下,先将原本的文件进行备份,以防万一:
mkdir -p /etc/yum.repos.d/repo.bak #创建备份文件夹
mv *.repo repo.bak #转移文件
在/etc/yum.repos.d目录下,新建一个repo:
vi /etc/yum.repos.d/*****.repo
添加以下内容:
[cifs-utils]
name=CentOS-$releasever - Plus
baseurl=file:///opt/datas/***** #这里是上传的yum仓库路径
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
#如果是CentOS8需要改成:gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
然后就可以通过yum install来安装之前准备的安装包了。
网友评论