HOME | linux | yum 與 pip離線安裝模組

yum 與 pip離線安裝模組

2020/09/22/01:29 , Post in linux , 評論(0) , 引用(0) , 閱讀(49) , Via 本站原創
當我們系統安裝在正式環境中,可能前端會有防火牆或是其他網路設備

導致我們沒辦法連線到internet去安裝一些套件,這時候就可以利用離線安裝

的方式,到一台相同版本,但是可以連上internet的機器上,將相關的模組下載下來

傳送到要安裝的系統進行安裝,這樣就可以避免為了安裝某個套件,而去修改防火牆
  
以centos用yum安裝套件來說,如果我要安裝python的virtualenv


#下載目錄為./,要下載的模組是python-virtualenv
yum install --downloadonly --downloaddir=./ python-virtualenv  


他會把所有依賴的套件全部下載下來,你就會看到在目錄底下有這些檔案

python2-rpm-macros-3-32.el7.noarch.rpm
python-devel-2.7.5-88.el7.x86_64.rpm
python-rpm-macros-3-32.el7.noarch.rpm
python-srpm-macros-3-32.el7.noarch.rpm
python-virtualenv-15.1.0-4.el7_7.noarch.rpm

接著我們可以把這五個檔案傳送到要安裝的系統上,接著一樣使用yum去安裝他


#安裝使用localinstall的方式,nogpgcheck表示不要進行驗證
yum localinstall -y --nogpgcheck python-virtualenv-15.1.0-4.el7_7.noarch.rpm


正常來說因為依賴的套件都已經下載傳送過來了,所以就可以直接安裝成功

但是有一種情況是,你在下載的時候,例如已經安裝過python-rpm-macros-3-32.el7.noarch.rpm

那系統會判斷你不需要python-rpm-macros-3-32.el7.noarch.rpm這個套件,就不會下載

這樣傳送過去就會少了這個套件,安裝的時候yum只好再透過internet去找,這時候因為無法連上網際網路

安裝就會失敗,所以使用這種方式的時候要拿來下載套件的機器最好是很乾淨,沒有安裝過太多模組。

  

python的pip也是類似的方式

例如我要安裝django以及flask,首先下載相關模組


pip download django
pip download flask


這樣我們就可以取得Django-3.1.1-py3-none-any.whl以及相對應依賴的whl檔案

接著我們把所有whl檔傳送到要安裝的設備上後,直接指定whl進行安裝


pip install Django-3.1.1-py3-none-any.whl
pip install Flask-1.1.2-py2.py3-none-any.whl


那如果一次有很多個套件要安裝呢,最簡單的方式我們先用一個乾淨的虛擬環境

安裝好我們所需要的模組


pip install django
pip install flask
#導出模組清單
pip freeze > requirements.txt
#下載requirements.txt中安裝的所有模組
pip download -r requirements.txt


接著我們把所有*.whl檔案以及requirements.txt傳到要安裝的設備上

接著就可以使用本地安裝一次安裝好所有套件了


pip install --no-index --find-links=./ -r requirements.txt




發表評論

暱稱

網址

電郵

開啟HTML 開啟UBB 開啟表情 隱藏 記住我 [登入] [註冊]