内网环境下CentOs离线安装程序
Posted 我要出家当道士
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了内网环境下CentOs离线安装程序相关的知识,希望对你有一定的参考价值。
目录
零、情景介绍
正常情况下我们都习惯在线安装,使用譬如 yum 或 apt 等安装工具。但在内外环境下只能通过下载源码或者编译好的安装包安装,安装过程中会提示各类依赖的缺失等问题。下面将完整的介绍从下载 rpm 包,到传输文件到 centos主机上,再到安装离线安装包,以及安装过程中会出现的问题的解决的过程。
整个过程是在实际使用中总结的,可以尝试使用,若出现解决不了的问题可以留言讨论。
一、下载 RPM 包
下面提供两个在线下载安装包的网站,推荐使用阿里的,下载速度更快。
阿里巴巴开源镜像站-OPSX镜像站-阿里云开发者社区 (aliyun.com)https://developer.aliyun.com/mirror/Packages for Linux and Unix - pkgs.orghttps://pkgs.org/
1、安装包的选择
发行版:
el7 为 centos7;
el8 为 centos8;
架构:
aarch64(ARM)
x86_64 (x86)
发行版我们好判断,但架构可能一头雾水,不知道该选择哪一个。服务器一般都是 x86_64 的,如果不确定可以通过输入 arch 或 uname 查看本机架构:
2、rpm包的命名规则
openssh-server-7.4p1-21.el7.aarch64.rpm
字段 | 说明 |
openssh-server | 软件包名 |
7.4p1 | 软件版本 |
21 | 软件发行的次数 |
el7 | 适合的linux平台 |
aarch64 | 适合的硬件平台 |
rpm | rpm包扩展名 |
二、传输rpm包到CentOs主机上
很多情况下需要离线安装的linux主机大多在内网环境下,无法使用网络。我们可以通过windows(Linux)主机将安装包发送到目标 Centos 主机上。而且由于内网主机可能是刚安装的,环境一片空白。所以传输文件只能使用最基础的工具。下面以windows向Centos传输为例。
我个人使用的 scp,使用起来十分方便。
在windows主机上文件所在目录打开cmd,输入如下命令即可完成传输。需要注意的是,windows与linux主机需要位于同一局域网下,可以 ping 一下,ping 通即可。
scp gcc.rpm tp@192.168.10.10:~/gcc.rpm
执行如上语句,会将 gcc.rpm 传输到 Centos 主机的 home 目录下。
三、安装rpm包的工具
centos下使用 rpm 的安装工具。具体的使用命令如下:
1、安装
rpm -ivh 包全名
#选项:
# -i(install) 安装
# -v(verbose) 显示详细信息
# -h(hash) 显示进度
# --nodeps 不检测依赖性
2、查询
#选项
# -q 查询(query)
# -a 所有
# -i 查询软件信息(information)
# -l 列表(list)
# -f 查询系统文件属于哪个RPM包(file)
# -R 查询软件包的依赖性(requires)
# 单个包查询
rpm -q 包名
# 查询所有包
rpm -qa
# 查询包详情
rpm -qi 包名
# 安装位置
rpm -ql 包名
# 查询系统文件属于哪个RPM包
rpm -qf 系统文件名
# 查询软件包的依赖性
rpm -qR 包名
3、卸载
rpm -e 包名
#选项:
# -e (erase) 卸载
# --nodeps 不检测依赖性
四、安装rpm
sudo rpm -ivh net-tools.rpm
因为net-tools的依赖较少,而且centos都支持,所以执行上面的语句即可完成。
实际使用中,仅仅下载一个安装包大多情况下无法一次性安装成功,每个软件都存在大量的依赖。一般的解决办法是缺啥补啥,注意以来的版本,需要满足最低需求。
日后我会编写个爬虫软件,自动爬取软件的所有依赖,并生成安装脚本。留个坑,嘿嘿。
五、相关问题
1、循环依赖
举例:安装 iscsi,需要下载两个 rpm 包,但依次安装时提示如下,这两个 rpm 包相互依赖了。
解决的办法,就是将循环依赖的包,一起安装,都放在 -ivh 参数后面。如下所示:
sudo rpm -ivh iscsi-initiator-utils.rpm iscsi-initiator-utils-iscsiuio.rpm
2、文件冲突
在安装 rpm 安装包时偶尔会报如下错误,即文件冲突的错误
解决办法,冲突时进行替换:
sudo rpm -ivh --replacefiles openssh-server.rpm
以上是关于内网环境下CentOs离线安装程序的主要内容,如果未能解决你的问题,请参考以下文章