當前位置:首頁 > IT技術 > 系統(tǒng)服務 > 正文

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

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

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

  • 你需要在公司的一臺服務器上安裝xxx軟件,例如vsftpd;

  • 該服務器無法連接公網(wǎng);

  • 這臺服務器很可能是一個最簡安裝的Linux(意味著該機器可能有很多常見的軟件依賴缺失),你也搞不清楚究竟是不是最簡安裝的,只能用uname -a?或者/etc/redhat-release?看到發(fā)行版本;

于是,你應該怎么安裝想要的軟件?

下面以帶有濃重的感情色彩,總結三種方案。

TIPS:本文以CentOS 7為例,探討幾種安裝方式。其他發(fā)行版,可參見拓展閱讀給出的方案。

?

最土但最極客的方法

一些人可能會下載源碼,然后上傳到服務器上編譯安裝。編譯有問題會報錯,一般要么是缺包(比較多),要么是沖突(相對較少)。那就分析日志,缺包就找包,沖突就換包;找到包后再上傳到服務器上搞,周而復始,直到完成。

個人對這種做法非常不喜歡——

  • 效率太差;

  • 操作復雜繁瑣,中間可能會中斷若干次。環(huán)節(jié)越多,出現(xiàn)失誤的可能性越大;

  • 對于服務器,沒有十足的把握誰敢這么操作……

  • 對于不同版本的CentOS / RedHat,很多依賴的包名都變了……有的包還挺難找的……

我14年前后,在一臺無網(wǎng)絡的機器上編譯安裝過MySQL(公司的測試環(huán)境,可以隨便玩),花了小半天……感受是:這種方式只有脾氣好、并且富有極客精神、不怕苦不怕累,還無敵有信心不弄壞公司服務器,并且還得還閑的蛋疼的大神才能hold住,對于我等凡人,恐怕是不大適用的。

PS. 可能有人說高手不都應該編譯安裝嗎?我個人覺得這種頂多也就算個偽高手——真正的高手看重的是解決方法是否有效,才不care你是一行命令自動安裝,還是用18頁命令編譯安裝……

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

這種方案應該是一半以上童鞋都會選擇的——RPM包安裝方式。先找到相關的RPM包,然后用rpm -ivh rpm包名?安裝。

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

一般來講,該方案問可以很好的解決問題,但極端場景下也會跪。原因依然是缺包……

RPM并不一定包含軟件所有的依賴,有時候可能一個軟件依賴了若干個RPM,你得通通找到,然后一起安裝……

個人最喜歡也最簡單的方法

借助yum-plugin-downloadonly?。這是個人最喜歡的方法,簡單粗暴高效。

下面附帶完整的安裝步驟:

  • 準備1臺和服務器最簡安裝同版本Linux的機器,記為機器B,機器B需要能聯(lián)網(wǎng)?。

    TIPS:可以是實體機、虛擬機或者Docker容器,看你的喜好。

    個人建議用Docker準備,一分鐘就可以準備好了。Docker相關課程可在我的公眾號上搜索一下,有全套系列;也可前往我的博客:http://www.itmuch.com/categories/Docker/ 閱讀全套的Docker系列博客。

  • 遠程上機器B。

  • 在機器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/

    該目錄里會存放你想安裝的軟件所需要的所有RPM包。

  • 將所有RPM包拷貝到服務器上安裝既可。如果安裝過程中提示xxx已安裝是否需要覆蓋,全部選否。

是不是非常簡單?應該也有很多童鞋知道這種方法的,本身也不是什么秘密。但就我的感知,很可能更多的人不知道,好幾個人問我了,所以分享一下。

其他方法

Yumdownloader?,用法和yum-plugin-downloadonly?大同小異。用本行高亮的部分作為關鍵詞自行搜索吧。

?

關注我,技術干貨、

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

?

?

?

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

開通會員,享受整站包年服務立即開通 >