當(dāng)前位置:首頁(yè) > IT技術(shù) > 系統(tǒng)服務(wù) > 正文

實(shí)用技巧:教你如何在沒有網(wǎng)絡(luò)的Linux機(jī)器上快速安裝軟件
2021-08-10 17:06:05

實(shí)用技巧:教你如何在沒有網(wǎng)絡(luò)的Linux機(jī)器上快速安裝軟件_服務(wù)器

相信很多人遇到過這樣的問題:

  • 你需要在公司的一臺(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ù)干貨、

實(shí)用技巧:教你如何在沒有網(wǎng)絡(luò)的Linux機(jī)器上快速安裝軟件_編譯安裝_02實(shí)用技巧:教你如何在沒有網(wǎng)絡(luò)的Linux機(jī)器上快速安裝軟件_rpm包_03? ??

?

?

?

本文摘自 :https://blog.51cto.com/u

開通會(huì)員,享受整站包年服務(wù)立即開通 >