linux配置本地yum源實現在局域網中在線安裝軟件包


安裝linux下安裝軟件需要安裝一系列的rpm包,用rpm -ivh xx和yum install xx

如果用rpm安裝軟件包的時候,需要自己下載rpm安裝包,如果rpm包不全總是提示依賴檢查失敗或者提示未知的錯誤,過程比較復雜。通過yum的命令安裝會很方便,但是,很多公司的服務器是在內網中運行,就無法通過yum命令訪問互聯網中的倉庫下載安裝軟件包。如果在本地配置yum源這樣就可以在無法訪問外網的情況下使用yum安裝軟件包。

准備

  • Httpd服務

搭建本地yum源需要httpd服務將安裝包代理,能夠通過http的方式訪問

系統默認按照

有些服務器中會自帶httpd服務,可以使用命令檢查是否安裝 httpd :

        rpm -qa|grep httpd

    如果默認按照的有就可以直接啟動使用

      systemctl start httpd 如果系統自帶,默認啟動

systemctl status httpd 檢查 httpd 是否正常安裝

systemctl enable httpd 設置 httpd 開機自啟動

在線安裝:

    如果系統沒有默認安裝httpd服務,則需要自己安裝,若允許服務器臨時訪問互聯網,可以直接使用下面命令在線按照httpd

        yum -y install httpd

    安裝完成之后啟動,設置開機自啟動

        systemctl start httpd

systemctl enable httpd

離線安裝:

    若系統沒有安裝且服務器在任何情況下也無法訪問互聯網,就需要離線安裝

安裝步驟如下:

        將httpd目錄下的httpd按照包上傳到服務器(共三個)

            

        在服務器上進入到httpd按照包存放目錄並執行插件安裝命令

            cd httpd

            rpm -Uvh *.rpm --nodeps –force

        啟動:

            systemctl start httpd啟動

systemctl status httpd 檢查 httpd 是否正常安裝

systemctl enable httpd 設置 httpd 開機自啟動

        測試:

在服務器中的/var/www/html/目錄下創建文件夾或文件,使用瀏覽器訪問:httpd://服務器ip/創建的文件夾或目錄

            

小技巧補充:

    在linux中想離線安裝軟件又沒有現成rpm安裝包時且不清楚具體需要哪些安裝包,如本文檔中的httpd安裝過程,服務器無法聯網,而搭建本地yum源又必須要httpd軟件,此時就不得不離線安裝httpd,此時如果想快速找到需要的rpm安裝包可以用如下方法就以本文的httpd安裝過程為例:

  1. 在一台能夠聯網的linux服務器(vmware虛擬機即可),使用yum –y install httpd在線安裝httpd服務,安裝過程中會有日志打印,找到下載安裝包的日志,這里會記錄安裝過程下載了哪些安裝包,如下圖所示這里一共下載了3個安裝包:

    httpd-2.4.6-88.el7.centos.x86_64.rpm

    httpd-tools-2.4.6-88.el7.centos.x86_64.rpm

    mailcap-2.1.41-2.el7.noarch.rpm

  1. 找到linux服務器對應版本的Everything版ios鏡像,在鏡像壓縮文件的Packages文件夾下搜索日志中出現的rpm安裝包,Everything IOS中集成了所有的軟件,所以一般都能夠找到

  2. 找到所有需要的rpm安裝包之后並上傳到服務中,在服務器上就可以使用安裝插件命令進行離線安裝

    安裝所有rpm包:rpm -Uvh *.rpm --nodeps –force

     

  • CentOS系統鏡像文件

既然搭建本地的yum源,就需要所有的rpm安裝包,centOS Everything ISO版鏡像文件中包含了完整安裝版的內容,並對其進行補充,集成了所有軟件,因此只要下載Everything ISO版的CentOS鏡像即可

CentOS下載地址:https://www.centos.org/download/

具體的下載方式可參考教程"從CentOS官網下載系統鏡像詳細教程",本文將采用CentOS 7.6來進行搭建,所以下載CentOS-7-x86_64-Everything-1810.iso鏡像,因為包含了所有的軟件包,可使用迅雷等下載工具

直接訪問USA站點,這里面包含了所有的版本:http://archive.kernel.org/centos-vault/

 

下載好的centOS鏡像文件:

安裝createrepo&plugin

createrepolinux下的創建倉庫的軟件包。

將createrepo和plugin的安裝包上傳到服務器

進入到上傳文件夾安裝全部插件

    cd createpro\&plugin/

rpm -Uvh *.rpm --nodeps –force

創建索引

將上面下載的iso鏡像文件CentOS-7-x86_64-Everything-1810.iso解壓

將解壓文件中的Packages目錄單獨打包

    單獨打包Packages是為了方便上傳到linux服務器

    壓縮成tar.gz格式的是為了方便在linux上擠壓

    如果直接上傳Packages文件夾也是可以的,但會花費很長時間,里面有上萬個文件

將Packages.tar.gz解壓到/var/www/html/centos7/1810-x86_64/Local目錄下

    mkdir -p /var/www/html/centos7/1810-x86_64/Local

    tar -zxvf Packages.tar.gz -C /var/www/html/centos7/1810-x86_64/Local/

上傳key和repldate配置信息文件

將iso鏡像文件CentOS-7-x86_64-Everything-1810.iso中的RPM-GPG-KEY-CentOS-7文件和repodata文件夾上傳到服務器的/var/www/html/centos7/文件夾下

所有文件上傳完成之后可以在瀏覽器中通過http方式訪問到剛才上傳的文件

http://bigdata136.hdp.com/centos7/1810-x86_64/Local/Packages/

創建索引

    cd /var/www/html/

    createrepo centos7/

    

修改 centos 源文件

cd /etc/yum.repos.d/

cp CentOS-Base.repo centos7-local.repo

復制repo文件之后將系統自帶的其他*.repo文件全部刪除或者移動到其他地方,否則后期運行 yum makecache 會出錯

修改centos7-local.repo

    vi centos7-local.repo

    將原來內容全部刪除,添加下面內容

[centos7-base]

name=CentOS7-Base

baseurl=http://bigdata136.hdp.com/centos7/

gpgcheck=0

enabled=1

priority=1

 

#baserul是創建索引的路徑,即執行命令createrepo centos7/的路徑,

# gpgcheck=0

值為0 表示跳過下載的rpm包的校驗,

如果值為1,則要再添加gpgkey變量來指向校驗文件如:

gpgkey= http://bigdata136.hdp.com/centos7/RPM-GPG-KEY-CentOS-7

        要保證上文件路徑能夠在瀏覽器中訪問到

重新加載yum緩存

#清除全部緩存

yum clean all

#重新加載yum緩存

yum makecache

#查看yum緩存列表

yum repolist

修改其他服務器的yum源配置

    Yum源搭建完成之后,相當於服務端,若讓其他服務器在安裝軟件時使用該服務端則需要如下操作

    在其他服務器中分別刪除/etc/yum.repos.d/下的所有文件

        rm -rf /etc/yum.repos.d/

    拷貝yum源配置文件到其他服務器

        scp -r /etc/yum.repos.d/ bigdata137.hdp.com:/etc/

    在其他服務器上重新加載yum緩存

    yum clean all

yum makecache

yum repolist

測試

    安裝一個軟件試下是否能夠正常安裝

    安裝ftp客戶端:

        

    安裝ntp時鍾同步服務器

        

 

錯誤處理:

    yum源搭建的成功與否可以在執行yum makecache看到,若執行這個命令時沒有報錯,一般情況下是搭建成功,若有錯誤,則說明 yum 源的配置有錯誤,需要根據錯誤信息修改,常見錯誤列舉如下:

錯誤一:

    

http://bigdata136.hdp.com/centos7/repodata/repomd.xml: [Errno 14] curl#6 - "Could not resolve host: bigdata136.hdp.com; Unknown error"

錯誤原因:

訪問http://bigdata136.hdp.com/centos7/repodata/repomd.xml文件有錯誤,可能是忘記上傳鏡像文件中的repodata文件夾或在上傳服務器是位置存放錯誤,必須要放到/var/www/html/centos7文件夾下

解決方法:

        重新上傳repodata文件夾,然后執行命令:

cd /var/www/html/

            createrepo centos7/

        執行重新加載yum緩存命令:

yum clean all

yum makecache

yum repolist

錯誤二:執行createrepo centos7/命令要在/var/www/html/執行

錯誤三:創建倉庫文件夾路徑錯誤

    mkdir -p /var/www/html/centos7/1810-x86_64/Local

    本文使用的是centOS7.6版本,安裝軟件包時會自動查找創建的倉庫下的1810-x86_64/Local/Packages目錄,如果使用其他版本有可能改路徑會改變,所以要根據錯誤提示修改


免責聲明!

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



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