linux在離線狀態下安裝配置各種應用和包的幾種方法(搭建本地YUM源倉庫源、python-django項目依賴包遷移方法)


linux-centos中安裝相關知識

一、源代碼形式

1.      絕大多數開源軟件都是直接以原碼形式發布的

2.      源代碼一般會被打成.tar.gz的歸檔壓縮文件

3.      源代碼需要編譯成為二進制形式之后才能夠運行使用

4.      源代碼基本編譯流程:

1).configure 檢查編譯環境;

2)make對源代碼進行編譯;

3make insall 將生成的可執行文件安裝到當前計算機中
源代碼形式

二、RPM

RMP 是 LINUX 下的一種軟件的可執行程序,你只要安裝它就可以了。這種軟件安裝包通常是一個RPM包(Redhat Linux Packet Manager,就是Redhat的包管理器),后綴是.rpm。

RPM是Red Hat公司隨Redhat Linux推出了一個軟件包管理器,通過它能夠更加輕松容易地實現軟件的安裝。

  1.安裝軟件:執行rpm -ivh rpm包名,如:
  #rpm -ivh apache-1.3.6.i386.rpm 
  2.升級軟件:執行rpm -Uvh rpm包名。
  3.反安裝:執行rpm -e rpm包名。
  4.查詢軟件包的詳細信息:執行rpm -qpi rpm包名
  5.查詢某個文件是屬於那個rpm包的:執行rpm -qf rpm包名
  6.查該軟件包會向系統里面寫入哪些文件:執行 rpm -qpl rpm包名
RMP
1.源代碼形式的特點:操作復雜、編譯時間長、極易出現問題、依賴關系復雜

2.為了方便,RPM(redhat package manager)

3.RPM通過將代碼基於特定平台系統編譯為可執行文件,並保存依賴關系,來簡化開源軟件的安裝管理。針對不同的系統設定不同的包

4.常用命令規范:linuxcast-1.2.0-30.el6.1686.rpm 包名-版本號-適用平台-32/64-rpm

5.使用rpm –i software.rpm(安裝);

rpm -e software.rpm(卸載);

rpm –U software.rpm(升級形式安裝);

rpm –ivh http://www.linuxcast.net/software.rpm(支持通過http\ftp協議形式安裝)

-v 顯示詳細信息;-h顯示進度條

查詢功能:rpm –qa 列出全部已經安裝的.rpm軟件  rpm –qa |grep ***
RMP用法

三:YUM

1.      rpm軟件包形式的管理雖然方便,但是需要手工解決軟件包的依賴關系。很多時候安裝一個軟件安裝一個軟件需要安裝1個或者多個其他軟件,手動解決時,很復雜,yum解決這些問題。Yum是rpm的前端程序,主要目的是設計用來自動解決rpm的依賴關系,其特點:

1) 自動解決依賴關系

2) 可以對rpm進行分組,基於組進行安裝操作

3) 引入倉庫概念,支持多個倉庫

4) 配置簡單

2.  yum倉庫用來存放所有的現有的.rpm包,當使用yum安裝一個rpm包時,需要依賴關系,會自動在倉庫中查找依賴軟件並安裝。倉庫可以是本地的,也可以是HTTP、FTP、nfs形式使用的集中地、統一的網絡倉庫。

3. 倉庫的配置文件/etc/yum.repos.d目錄下

4. 使用:

1) yum install 安裝;

2) yum remove卸載;

3) yum update 升級制定軟件

5. 安裝的時候,會下載軟件包.Rpm在安裝,所以用國內倉庫

改變鏡像源

1) 訪問地址http://mirrors.163.com/

2)  點centos使用幫助

3) 按步驟來

6.  查詢軟件:可以使用yumsearch **
YUM說明

 四:PIP

pip 是 Python 包管理工具,該工具提供了對Python 包的查找、下載、安裝、卸載的功能。

目前如果你在 python.org 下載最新版本的安裝包,則是已經自帶了該工具。

Python 2.7.9 + 或 Python 3.4+ 以上版本都自帶 pip 工具。

pip在安裝完python后,可以使用軟連接進行配置。
PIP使用說明

 

如果對服務器連接外網有嚴格要求,就必須在離線環境下進行安裝配置。根據不同的情況,離線安裝有以下幾種方法:

安裝少量無依賴的應用和包

1.使用能上網的設備,在提供包下載的網站上下載需要的內容,用U盤或FTP等方法拷貝到內網服務器安裝。

  包下載網站: https://pypi.org/project  、http://rpmfind.net/ 等

  通過ftp拷貝:

    a)把包文件上傳到ftp

    b)從服務器把需要的包文件下載

      ftp 192.168.1.2

        # 輸入用戶名,密碼 登錄

      ftp> prompt    #關閉下載提示

      ftp> get | mget   filename            #  get單文件下載;mget多文件下載

2.安裝

  直接安裝:  

    yum   -y   install    xxx.rpm

    pip install -y xxx.whl

  編譯安裝:

    tar -xvzf python3.8.3.tar.gz

    cd python3.8.3

    ./configure --prefix=/opt/python383

    make && make install

python-django項目遷移依賴包離線安裝

可以從已經安裝好環境的設備上批量下載離線安裝包,然后安裝到斷網環境的設備上。

    1.在項目中導出下載依賴包包:
    pip freeze > requirements.txt    導出環境中用到的依賴包記錄文本
    pip download -d /tmp/packages -r requirements.txt    
      要保存下載的包的目錄 -r requirements.txt 通過txt文件中的內容,下載相應的依賴包到指定目錄
 
 2.通過上面的方法,把包拷貝到內網服務器
 
 3.安裝包:
        pip install --no-index --find-links=packages -r requirements.txt
        也可以下載一個包后,通過pip install **.whl或者python setup.py install **.tar.gz 安裝
     指定安裝目錄
      pip38 install --no-index --find-links=packages -r requirements.txt --target=/opt/envs/django2.1.8/lib/python3.8/site-packages #未測試
 4. 注意:python3不再支持mysqldb,取而代之的是pymysql,安裝依賴包時應注意。

使用yum downloadonly下載RPM包及依賴包

1.下載yumdownloadonly插件

  yum install yum-plugin-downloadonly

2.下載到指定目錄(依賴包會一起下載)

   #   --downloadonly                只下載

   #   --downloaddir=temp         rpm的下載保存地址

  yum install --downloadonly --downloaddir=/root/httpd httpd

再例如:

#yum -y groupinstall "Developmenttools" --downloadonly --downloaddir=/download/111
#yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-deve xz gcc --downloadonly --downloaddir=/download/111

#yum -y install zlib-devel bzip2-devel openssl-devel ncurses-develsqlite-devel readline-devel tk-devel gdbm-devel
          db4-devel libpcap-develxz-devel man --downloadonly --downloaddir=/download/111

 

3. 通過上面的方法,把包拷貝到內網服務器

4.在內網服務器的rpm所在的文件夾內,執行以下腳本,批量安裝包和依賴
  rpm -Uvh --force --nodeps *.rpm

利用緩存下載離線包(不推薦)

默認情況下,yum在安裝軟件包后會自動清理軟件包,修改配置,使yum不再清理軟件包

  im /etc/yum.conf中修改keepcache = 0改為keepcache = 1
  /etc/init.d/yum-updatesd restart
  yum -y install httpd
  這時軟件包已經安裝下載,目錄為/var/cache/yum

使用yum downloader下載RPM包及依賴包

1.下載安裝downloader

     yum install yum-utils -y

2.downloader使用

    sudo yum downloader 軟件名

    sudo yumdownloader nano 

  默認情況下,下載的包會被保存在當前目錄中,我們需要使用root權限,因為yumdownloader會在下載過程中更新包索引文件。與yum命令不同的是,任何依賴包不會被下載。我們可以通過加參數,使得下載包的過程中同時下載依賴以及自定義下載位置,格式為:yumdownloader 軟件名 –resolve –destdir=保存目錄

例如:

  #--resolve  下載依賴包

  #--destdir=  下載保存目錄

  sudo yum downloader httpd --resolve --destdir=/root/package/httpd

3. 通過上面的方法,把包拷貝到內網服務器

4.在內網服務器的rpm所在的文件夾內,執行以下腳本,批量安裝包和依賴
 
  rpm -Uvh --force --nodeps *.rpm

通過搭建本地yum倉庫源實現離線安裝包和相關依賴(使用鏡像ISO文件)

1.YUM本地倉庫源配置文件介紹

CentOS使用的yum源是在/etc/yum.repos.d/目錄下的兩個文件中進行配置的CentOS-Base.repo和CentOS-Media.repo。
其中,CentOS-Base.repo是配置網絡yum源,CentOS-Media.repo是配置本地yum源。

2.配置ISO掛載

  #下載地址: http://mirrors.sohu.com/centos/7.6.1810/isos/x86_64/CentOS-7-x86_64-Minimal-1810.iso

    將鏡像文件centos7.iso拷貝至Linux文件目錄,如/usr/local/src

  # 創建掛載路徑

  sudo mkdir /mnt/iso

  # 掛載ISO鏡像到目錄

  mount  -o loop  /usr/local/src/centos7.iso    /mnt/iso

  # 驗證掛載

  df -h

3.配置本地YUM源 

  cd /etc/yum.repos.d   #yum源配置文件放置目錄

  mv CentOS-Base.repo CentOS-Base.repo.bak      #先將網絡yum源配置文件更名(讓其失效)

  vi CentOS-Media.repo    #編輯本地yum源文件

  (sudo touch /etc/yum.repos.d/local.repo) # 也可以創建一個新的源文件,把centos-media.repo改名

  name=CentOS-$releasever - Media        #本地yum源名稱(可隨意修改)

  baseurl=file:///mnt/iso/                   #光盤掛載目錄

  gpgcheck=0

  enabled=1                                   #使用此yum源(等於0為不啟用)

  gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 本地yum源密鑰

  其中,baseurl是本地yum源的位置,當然,根據我們iso的配置位置,這里是可以進行修改的。
  不過,我只是將iso文件掛載到
/mnt/iso/目錄,所以,我也沒有做修改。將enabled改為1,啟用本地yum源,其他配置保持不變。

4.更新yum源,查看是否有yum列表產生

  yum clean all 

  yum makecache

  yum repolist

  yum list

5.安裝rpm包

  yum install package_name

6.在虛擬環境中用DVD掛載ISO,配置YUM源

  https://cloud.tencent.com/developer/article/1336558

7.說明:使用mount命令掛載后,當系統重新啟動后這些掛載的配置就不再生效(需檢驗),所以我們需要修改配置文件/etc/fstab來讓掛載的配置永久生效

    vim /etc/fstab
    # 在文件的末尾添加如下內容(這是用DVD進行的掛載)
    /dev/sr0 /mnt/cdrom1 iso9660 defaults 0 0
    /dev/sr1 /mnt/cdrom2 iso9660 defaults 0 0

搭建本地離線yum倉庫(非ISO)

大致需要如下幾個步驟。

1.把rpm包及其相關依賴全部都下載到本地目錄

  mkdir /opt/localrepo

  #通過downloadonly、downloader、在rmp網站直接下載等方法把包文件下載到本地目錄

2.在/etc/yum.repos.d/目錄下配置本地倉庫源信息

  # vim /etc/yum.repos.d/localrepo.repo

  [localrepo]

  name=localrepo

  baseurl=file:///localrepo

  gpgcheck=0

  enabled=1

  # 說明

  .repo配置文件:

  localrepo是本地倉庫名,可任意起名,但是注意不能與已有的倉庫名重復。

  name后面是注釋信息,隨意書寫。

  baseurl這后面就是填寫本地倉庫路徑了,file://表示使用本地文件協議,后面的/localrepo本地rpm包存放路徑。

  gpgcheck=0這是和驗證包的安全信息的,最好設置成0,表示關閉安全驗證,否則還需要准備安全驗證文件,麻煩一堆一堆的。

  enabled=0,表示啟用本倉庫,0啟用,1關閉。

  更多詳細配置信息,請參考man yum.conf

3.使用createrepo命令生成repodata信息

    如果我們現在就直接使用本地倉庫安裝一個包,會報如下錯誤:

    couldn't open file /localrepo/repodata/repomd.xml

    告訴我們找不到/localrepo/repodata/repomd.xml這個文件,應為到目前位置我們的本地倉庫里除了rpm包之外什么都沒有,
    repomd.xml這個文件簡單來說就是存放本地倉庫rpm包的索引信息,具體用法不是我們關心的重點,可以使用createrepo直接生成。 假如我們本地倉庫沒有配置好,不僅本地倉庫無法使用,整個yum安裝工具都會一直報錯,此時我們把本地yum配置文件改名或暫時刪除即可 # createrepo命令默認系統沒有,需要我們額外安裝:
yum install createrepo -y 安裝完畢之后,直接使用: createrepo /localrepo/ 這時會發現本地倉庫repodata相關信息已經生成完畢。

4.使用yum repoinfo檢查確認

使用下述命令可以檢查看到本地倉庫基本信息:

  yum repoinfo as4k

    Repo-id      : localrepo

    Repo-name    : localrepo

    Repo-status  : enabled

    Repo-pkgs    : 48

    Repo-size    : 514 M

    Repo-baseurl : file:///localrepo/

    Repo-expire  : 

    Filter     : read-only:present

    Repo-filename: /etc/yum.repos.d/localrepo.repo

    repolist: 48

5.安裝rpm包測試

   yum install vim

6.使用說明

  可以看到使用起來,與線上倉庫區別不大。創建好的本地倉庫可直接scp復制到其它機器使用,yum配置文件及rpm倉庫直接復制過去即可,無需再創建一遍repodata信息。

7.對本地倉庫進行更新

  下載一個新的rpm軟件包到本地倉庫,此時我們使用yum repoinfo localrepo查看會發現軟件包的數量並沒有增加,
我們安裝新增的軟件包也會提示,找不到次軟件包的現象,可以按照下述步驟,更新倉庫信息。   查看舊的軟件包總數
yum repoinfo localrepo | grep pkgs   更新本地倉庫 createrepo --update /localrepo/   清除所有緩存 yum clean all   查看新的軟件包總數 yum repoinfo localrepo | grep pkgs   如果軟件包的數量增加,說明倉庫更新成功。

搭建在局域網可以訪問的YUM源

https://www.cnblogs.com/lynsen/p/10631255.html  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM