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