实用技巧:教你如何在没有网络的Linux机器上快速安装软件

相信很多人遇到过这样的问题:

你需要在公司的一台服务器上安装xxx软件,例如vsftpd;

该服务器无法连接公网;

这台服务器很可能是一个最简安装的Linux(意味着该机器可能有很多常见的软件依赖缺失),你也搞不清楚究竟是不是最简安装的,只能用 或者 看到发行版本;

于是,你应该怎么安装想要的软件?

下面以带有浓重的感情色彩,总结三种方案。

TIPS:本文以CentOS 7为例,探讨几种安装方式。其他发行版,可参见拓展阅读给出的方案。

最土但最极客的方法

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

个人对这种做法非常不喜欢——

效率太差;

操作复杂繁琐,中间可能会中断若干次。环节越多,出现失误的可能性越大;

对于服务器,没有十足的把握谁敢这么操作……

对于不同版本的CentOS / RedHat,很多依赖的包名都变了……有的包还挺难找的……

我14年前后,在一台无网络的机器上编译安装过MySQL(公司的测试环境,可以随便玩),花了小半天……感受是:这种方式只有脾气好、并且富有极客精神、不怕苦不怕累,还无敌有信心不弄坏公司服务器,并且还得还闲的蛋疼的大神才能hold住,对于我等凡人,恐怕是不大适用的。

PS. 可能有人说高手不都应该编译安装吗?我个人觉得这种顶多也就算个伪高手——真正的高手看重的是解决方法是否有效,才不care你是一行命令自动安装,还是用18页命令编译安装……

不那么土也不那么极客的方法

这种方案应该是一半以上童鞋都会选择的——RPM包安装方式。先找到相关的RPM包,然后用 安装。

RPM可在http://rpmfind.net/ 上找到,我是说大部分。

一般来讲,该方案问可以很好的解决问题,但极端场景下也会跪。原因依然是缺包……

RPM并不一定包含软件所有的依赖,有时候可能一个软件依赖了若干个RPM,你得通通找到,然后一起安装……

个人最喜欢也最简单的方法

借助 。这是个人最喜欢的方法,简单粗暴高效。

下面附带完整的安装步骤:

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

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

个人建议用Docker准备,一分钟就可以准备好了。Docker相关课程可在我的公众号上搜索一下,有全套系列;也可前往我的博客:http://www.itmuch.com/categories/Docker/ 阅读全套的Docker系列博客。

远程上机器B。

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

下载的软件在:

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

将所有RPM包拷贝到服务器上安装既可。如果安装过程中提示xxx已安装是否需要覆盖,全部选否。

是不是非常简单?应该也有很多童鞋知道这种方法的,本身也不是什么秘密。但就我的感知,很可能更多的人不知道,好几个人问我了,所以分享一下。

其他方法

,用法和 大同小异。用本行高亮的部分作为关键词自行搜索吧。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181222G09A4Q00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券