centos7如何在没有网络的情况下安装软件

原文地址:https://www.cnblogs.com/shenyuanhaojie/p/14033531.html

1.下载源码,然后上传到服务器上编译安装。编译有问题会报错,一般要么是缺包(比较多),要么是冲突(相对较少)。那就分析日志,缺包就找包,冲突就换包;找到包后再上传到服务器上搞,周而复始,直到完成。

 

2.

RPM包安装方式。先找到相关的RPM包,然后用rpm -ivh rpm包名 安装。

大部分RPM可在http://rpmfind.net/ 上找到 

一般来讲,该方案问可以很好的解决问题,但极端场景下也会缺包

RPM并不一定包含软件所有的依赖,有时候可能一个软件依赖了若干个RPM 

 

3.借助yum-plugin-downloadonly

准备1台和服务器最简安装了同版本Linux的机器,记为机器B,机器B需要能联网 

##TIPS:可以是实体机、虚拟机或者Docker容器,看个人的喜好。

##建议用Docker准备,一分钟就可以准备好了。 

 

在机器B上执行如下命令:

# 安装yum-plugin-downloadonly插件

yum install -y yum-plugin-downloadonly

# 把<vsftpd>换成你想要的包名

yum install --downloadonly <vsftpd>

 

下载的软件在:

/var/cache/yum/x86_64/7/base/packages/

该目录里会存放你想安装的软件所需要的所有RPM包

将所有RPM包拷贝到服务器上安装既可  rpm -ivh *.rpm  yum -y install *.rpm

#此方法下载可能会缺少依赖包,例如 yum install --downloadonly python2-pip 会缺少 python2-pip.noarch 0:8.1.2-14.el7 包

 

4.修改yum源为本地iso镜像源  #因为没有epel-release扩展源,可能有些包没有

找一个依赖比较全的镜像版本,这次使用CentOS-7-x86_64-DVD-1908.iso

#创建目录

mkdir /media/CentOS

然后上传镜像文件CentOS-7-x86_64-DVD-1908.iso到/media

开始挂载镜像

mount -t iso9660 /media/CentOS-7-x86_64-DVD-1908.iso /media/CentOS
# 此时可能会报错,显示信息如下
mount: /dev/loop0 is write-protected, mounting read-only
# 这时候报错是因为我们上传的镜像没有权限,只需要更改一下权限
chmod 777  CentOS-7-x86_64-DVD-1908.iso
# 再次执行就不会报错了

 

镜像挂载完成后如下操作

#切换目录到 /etc/yum.repos.d/ 下
cd /etc/yum.repos.d/
#将除了 CentOS-Media.repo 之外的文件修改其文件名
mv CentOS-Base.repo CentOS-Base.repo.bak
mv CentOS-CR.repo CentOS-CR.repo.bak
mv CentOS-Debuginfo.repo CentOS-Debuginfo.repo.bak
mv CentOS-fasttrack.repo CentOS-fasttrack.repo.bak
mv CentOS-Sources.repo CentOS-Sources.repo.bak
mv CentOS-Vault.repo CentOS-Vault.repo.bak
#修改 CentOS-Media.repo 文件
vim CentOS-Media.repo

 

修改文件为如下

centos7如何在没有网络的情况下安装软件

 

 

#将其中的 baseurl 修改为
baseurl=file:///media/CentOS/
#启用本地仓库
enabled=1

 

这时候就可以测试了

yum -y install ftp ..........

————————————————————————————————————————————

精华版

mkdir /media/CentOS  #创建iso挂载点,并上传镜像文件到/media
mount -t iso9660 /media/CentOS-7-x86_64-DVD-1908.iso /media/CentOS  #挂载
cd /etc/yum.repos.d/ && mkdir repos.backup && mv ./*.repo repos.backup  #备份
cp -a repos.backup/CentOS-Media.repo ./ && sed -i 's/enabled=0/enabled=1/g' CentOS-Media.repo  #启用CentOS-Media
yum clean all  #清除缓存
yum info vsftpd  #测试是否生效

上一篇:【C语言学习笔记】C语言发展史


下一篇:刷题-力扣-面试题 05.07. 配对交换