相信很多人遇到过这样的问题:
uname -a
或者/etc/redhat-release
看到发行版本;于是,你应该怎么安装想要的软件?
下面以带有浓重的感情色彩,总结三种方案。
TIPS:本文以CentOS 7为例,探讨几种安装方式。其他发行版,可参见拓展阅读给出的方案。
一些人可能会下载源码,然后上传到服务器上编译安装。编译有问题会报错,一般要么是缺包(比较多),要么是冲突(相对较少)。那就分析日志,缺包就找包,冲突就换包;找到包后再上传到服务器上搞,周而复始,直到完成。
个人对这种做法非常不喜欢——
我14年前后,在一台无网络的机器上编译安装过MySQL(公司的测试环境,可以随便玩),花了小半天……感受是:这种方式只有脾气好、并且富有极客精神、不怕苦不怕累,还无敌有信心不弄坏公司服务器,并且还得还闲的蛋疼的大神才能hold住,对于我等凡人,恐怕是不大适用的。
PS. 可能有人说高手不都应该编译安装吗?我个人觉得这种顶多也就算个伪高手——真正的高手看重的是解决方法是否有效,才不care你是一行命令自动安装,还是用18页命令编译安装……
这种方案应该是一半以上童鞋都会选择的——RPM包安装方式。先找到相关的RPM包,然后用rpm -ivh rpm包名
安装。
RPM可在http://rpmfind.net/ 上找到,我是说大部分。
一般来讲,该方案问可以很好的解决问题,但极端场景下也会跪。原因依然是缺包……
RPM并不一定包含软件所有的依赖,有时候可能一个软件依赖了若干个RPM,你得通通找到,然后一起安装……
借助yum-plugin-downloadonly
。这是个人最喜欢的方法,简单粗暴高效。
下面附带完整的安装步骤:
是不是非常简单?应该也有很多童鞋知道这种方法的,本身也不是什么秘密。但就我的感知,很可能更多的人不知道,好几个人问我了,所以分享一下。
Yumdownloader
,用法和yum-plugin-downloadonly
大同小异。用本行高亮的部分作为关键词自行搜索吧。
apt-get install -d --reinstall 包名
,这样既可只下载包,而不安装包了,然后拷贝到无网络的机器上安装既可。