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安裝過程為例:
- 在一臺能夠聯網的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
- 找到linux伺服器對應版本的Everything版ios映象,在映象壓縮檔案的Packages資料夾下搜尋日誌中出現的rpm安裝包,Everything IOS中集成了所有的軟體,所以一般都能夠找到
- 找到所有需要的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
createrepo是linux下的建立倉庫的軟體包。
將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