相信很多人遇到過這樣的問題:
-
你需要在公司的一臺(tái)服務(wù)器上安裝xxx軟件,例如vsftpd;
-
該服務(wù)器無法連接公網(wǎng);
-
這臺(tái)服務(wù)器很可能是一個(gè)最簡(jiǎn)安裝的Linux(意味著該機(jī)器可能有很多常見的軟件依賴缺失),你也搞不清楚究竟是不是最簡(jiǎn)安裝的,只能用
uname -a
?或者/etc/redhat-release
?看到發(fā)行版本;
于是,你應(yīng)該怎么安裝想要的軟件?
下面以帶有濃重的感情色彩,總結(jié)三種方案。
TIPS:本文以CentOS 7為例,探討幾種安裝方式。其他發(fā)行版,可參見拓展閱讀給出的方案。
?
最土但最極客的方法
一些人可能會(huì)下載源碼,然后上傳到服務(wù)器上編譯安裝。編譯有問題會(huì)報(bào)錯(cuò),一般要么是缺包(比較多),要么是沖突(相對(duì)較少)。那就分析日志,缺包就找包,沖突就換包;找到包后再上傳到服務(wù)器上搞,周而復(fù)始,直到完成。
個(gè)人對(duì)這種做法非常不喜歡——
-
效率太差;
-
操作復(fù)雜繁瑣,中間可能會(huì)中斷若干次。環(huán)節(jié)越多,出現(xiàn)失誤的可能性越大;
-
對(duì)于服務(wù)器,沒有十足的把握誰敢這么操作……
-
對(duì)于不同版本的CentOS / RedHat,很多依賴的包名都變了……有的包還挺難找的……
我14年前后,在一臺(tái)無網(wǎng)絡(luò)的機(jī)器上編譯安裝過MySQL(公司的測(cè)試環(huán)境,可以隨便玩),花了小半天……感受是:這種方式只有脾氣好、并且富有極客精神、不怕苦不怕累,還無敵有信心不弄壞公司服務(wù)器,并且還得還閑的蛋疼的大神才能hold住,對(duì)于我等凡人,恐怕是不大適用的。
PS. 可能有人說高手不都應(yīng)該編譯安裝嗎?我個(gè)人覺得這種頂多也就算個(gè)偽高手——真正的高手看重的是解決方法是否有效,才不care你是一行命令自動(dòng)安裝,還是用18頁(yè)命令編譯安裝……
不那么土也不那么極客的方法
這種方案應(yīng)該是一半以上童鞋都會(huì)選擇的——RPM包安裝方式。先找到相關(guān)的RPM包,然后用rpm -ivh rpm包名
?安裝。
RPM可在http://rpmfind.net/?上找到,我是說大部分。
一般來講,該方案問可以很好的解決問題,但極端場(chǎng)景下也會(huì)跪。原因依然是缺包……
RPM并不一定包含軟件所有的依賴,有時(shí)候可能一個(gè)軟件依賴了若干個(gè)RPM,你得通通找到,然后一起安裝……
個(gè)人最喜歡也最簡(jiǎn)單的方法
借助yum-plugin-downloadonly
?。這是個(gè)人最喜歡的方法,簡(jiǎn)單粗暴高效。
下面附帶完整的安裝步驟:
-
準(zhǔn)備1臺(tái)和服務(wù)器最簡(jiǎn)安裝了同版本Linux的機(jī)器,記為機(jī)器B,機(jī)器B需要能聯(lián)網(wǎng)?。
TIPS:可以是實(shí)體機(jī)、虛擬機(jī)或者Docker容器,看你的喜好。
個(gè)人建議用Docker準(zhǔn)備,一分鐘就可以準(zhǔn)備好了。Docker相關(guān)課程可在我的公眾號(hào)上搜索一下,有全套系列;也可前往我的博客:http://www.itmuch.com/categories/Docker/ 閱讀全套的Docker系列博客。
-
遠(yuǎn)程上機(jī)器B。
-
在機(jī)器B上執(zhí)行如下命令:
1
2
3
4
# 安裝yum-plugin-downloadonly插件
yum install -y yum-plugin-downloadonly
# 把vsftpd換成你想要的包名
yum install --downloadonly <vsftpd>
-
下載的軟件在:
1
/var/cache/yum/x86_64/7/base/packages/
該目錄里會(huì)存放你想安裝的軟件所需要的所有RPM包。
-
將所有RPM包拷貝到服務(wù)器上安裝既可。如果安裝過程中提示xxx已安裝是否需要覆蓋,全部選否。
是不是非常簡(jiǎn)單?應(yīng)該也有很多童鞋知道這種方法的,本身也不是什么秘密。但就我的感知,很可能更多的人不知道,好幾個(gè)人問我了,所以分享一下。
其他方法
Yumdownloader
?,用法和yum-plugin-downloadonly
?大同小異。用本行高亮的部分作為關(guān)鍵詞自行搜索吧。
?
關(guān)注我,技術(shù)干貨、
? ??
?
?
?
本文摘自 :https://blog.51cto.com/u