前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >实用技巧:教你如何在没有网络的Linux机器上快速安装软件

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

作者头像
用户1516716
发布2019-07-10 14:36:10
3.2K0
发布2019-07-10 14:36:10
举报
文章被收录于专栏:A周立SpringCloudA周立SpringCloud

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

  • 你需要在公司的一台服务器上安装xxx软件,例如vsftpd;
  • 该服务器无法连接公网;
  • 这台服务器很可能是一个最简安装的Linux(意味着该机器可能有很多常见的软件依赖缺失),你也搞不清楚究竟是不是最简安装的,只能用uname -a 或者/etc/redhat-release 看到发行版本;

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

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

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

最土但最极客的方法

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

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

  • 效率太差;
  • 操作复杂繁琐,中间可能会中断若干次。环节越多,出现失误的可能性越大;
  • 对于服务器,没有十足的把握谁敢这么操作……
  • 对于不同版本的CentOS / RedHat,很多依赖的包名都变了……有的包还挺难找的……

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

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

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

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

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

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

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

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

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

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

  • 准备1台和服务器最简安装了同版本Linux的机器,记为机器B,机器B需要能联网 。 TIPS:可以是实体机、虚拟机或者Docker容器,看你的喜好。 个人建议用Docker准备,一分钟就可以准备好了。Docker相关课程可在我的公众号上搜索一下,有全套系列;也可前往我的博客:http://www.itmuch.com/categories/Docker/ 阅读全套的Docker系列博客。
  • 远程上机器B。
  • 在机器B上执行如下命令:
  • 下载的软件在: 该目录里会存放你想安装的软件所需要的所有RPM包。
  • 将所有RPM包拷贝到服务器上安装既可。如果安装过程中提示xxx已安装是否需要覆盖,全部选否。

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

其他方法

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

拓展阅读

  • 怎样在 CentOS 里下载 RPM 包及其所有依赖包:https://blog.csdn.net/linuxnews/article/details/53244315
  • Ubuntu其实也有类似的命令apt-get install -d --reinstall 包名 ,这样既可只下载包,而不安装包了,然后拷贝到无网络的机器上安装既可。
  • apt一键下载所有依赖的包:https://blog.csdn.net/junbujianwpl/article/details/52811153
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-12-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 IT牧场 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 最土但最极客的方法
  • 不那么土也不那么极客的方法
  • 个人最喜欢也最简单的方法
  • 其他方法
  • 拓展阅读
相关产品与服务
容器镜像服务
容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档