如何查找并下载rpm依赖包并使用yum离线安装rpm包
Linux版本:CentOS Linux release 7.3.1611 (Core)
一、需求
最近在工作中需要postgresql + postgis的离线安装。安装有两种方式:
- 源码编译
- rpm包安装
源码编译耗费时间长,缺乏编译环境且生成目录位置不详,所以选择使用rpm包安装。但是我们最终目的是rpm包离线安装,目前不知道安装postgresql + postgis所依赖的rpm包有哪些,并且从网上找rpm包容易引起版本冲突啊,怎么办呢?
办法总比问题多,接着往下看。
二、在线安装
通过下载外部repo源的安装方式,我这里暂且称之为在线安装。
我们首先要使用在线安装的方式,成功安装postgresql + postgis,然后再考虑如何获取相关依赖rpm包的问题。请看具体命令:
1 | 安装postgresql依赖的rpm包 |
通过执行上述命令,在/etc/yum.repos.d/目录下会有以下几个文件:
- pgdg-96-centos.repo
- epel.repo
- epel-testing.repo
三个文件含有postgresql + postgis的外部下载源。通过yum的方式来安装:
1 | 安装postgresql |
安装成功。接下来就是要将postgresql + postgis依赖的rpm包收集起来,然后做一个yum本地源,就可以进行离线安装了。
三、收集依赖的rpm包
我们可以使用yum命令的–downloaddir参数及–downloadonly参数来将依赖的rpm包下载到本地。具体步骤如下:
- 首先需要将postgresql + postgis相关的包进行yum卸载,然后我们再install到本地
1 | yum remove postgresql96 postgresql96-server postgresql96-libs postgresql96-contrib postgresql96-devel postgis24_96 |
- 创建目录,指定rpm依赖包的存储目录。我们后续会用到httpd,所以我们先安装httpd服务。
1 | yum install -y httpd |
- 下载rpm依赖包
1 | yum install --downloaddir=/var/www/html/postgres --downloadonly postgresql96 postgresql96-server postgresql96-libs postgresql96-contrib postgresql96-devel postgis24_96 |
等下载完毕之后,rpm依赖包如下图所示:
然后我们再搭建yum本地源。
四、搭建yum本地源
- 下载createrepo工具
1 | yum install -y createrepo |
- 生成repodata目录
1 | cd /var/www/html/postgres |
- 删除之前在线安装时的repo文件
1 | cd /etc/yum.repos.d |
- 启动httpd服务
1 | service httpd start |
- 制作.repo文件
新建postgres.repo文件,并将其放入到/etc/yum.repos.d目录下。文件内容如下:
1 | [postgres] |
五、yum安装
1 | 先卸载postgresql相关包 |
安装成功,如下图所示;
六、总结
总结一下:
- 我们首先下载了外部repo源,然后通过yum install的方式将需要的服务成功安装。
- 然后执行
yum install --downloaddir=/var/www/html/postgres --downloadonly postgresql96 postgis24_96 ...
命令,这样就将postgresql96 postgis24_96 …等所依赖的rpm包下载到了/var/www/html/postgres目录下了。 - 有了依赖的rpm包,就简单多啦。直接制作yum本地源,生成repo文件就行了。
参考链接
点关注,不迷路
好了各位,以上就是这篇文章的全部内容了,能看到这里的人呀,都是人才。
白嫖不好,创作不易。各位的支持和认可,就是我创作的最大动力,我们下篇文章见!
如果本篇博客有任何错误,请批评指教,不胜感激 !
原文作者: create17
原文链接: https://841809077.github.io/2019/03/18/Linux/如何查找并下载rpm依赖包并使用yum离线安装rpm包.html
版权声明: 转载请注明出处(码字不易,请保留作者署名及链接,谢谢配合!)