1. 程式人生 > 其它 >linux配置本地yum源實現在區域網中線上安裝軟體包

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目錄,如果使用其他版本有可能改路徑會改變,所以要根據錯誤提示修改

本文來自部落格園,作者:蓮藕淹,轉載請註明原文連結:https://www.cnblogs.com/meanshift/p/15574495.html