CentOS7 本地源搭建

1 所需工具介紹

  1. httpd:用於搭建http服務器
  2. createrepo:用於創建yum源
  3. yum-plugin-priorities:用於設置yum源的優先級

2 本源原理

  1. 利用httpd建立一個httpd服務器用於存放本地源的rpm包
  2. 利用createrepo建立本地rpm包的描述信息
  3. 並在/etc/yum.repos.d/中加入本地源的描述repo使得yum能夠找到本地源
  4. 最後再修改優先級使得yum優先從本地源安裝。

3 具體步驟

3.1 安裝工具

yum install -y httpd
yum install -y createrepo
yum install -y yum-plugin-priorities

3.2 配置工具

3.2.1 配置httpd

systemctl start httpd.service //開啓httpd服務
systemctl enable httpd.service //設置httpd自動啓動

這個時候httpd就已經能夠正常工作了,本機ip是172.16.30.101,那麼訪問http://172.16.30.101/可以看到


3.2.2 配置本地源文件

httpd服務器的位置默認在/var/www/html 在其下建立一個文件夾tools放入wget.x86_64 0:1.14-10.el7_0.1.rpm包,然後執行createrepo ./ 對tools文件夾建立描述信息

cd /var/www/html
mkdir tools
cd tools
rz //上傳repo文件(這裏採用的是xshell的lrzsz工具)
createrepo ./ //創建描述信息

訪問http://172.16.30.101/tools可以看到下圖,其中repodata就是createrepo生成的描述信息


3.2.3 創建yum repo文件

yum的repo路徑默認在/etc/yum.repos.d/中,用vi創建repo文件,yum會自動讀取這個路徑下的所有repo作爲安裝包的安裝源

vi /etc/yum.repos.d/local.repo

local.repo文件如下 //後爲註釋,不寫入文件中

[tools] //源名稱 隨意取
name=tools //源描述 隨意取
baseurl=http://172.16.30.101/tools/ //源地址 我們建立的http服務就可以用http地址
enabled=1 //源是否可用
gpgcheck=0 //時候檢查gpg,因爲沒有認證所以寫不檢查
priority=1 //優先級,yum-plugin-priorities會用到,優先級越小越高

編輯原有的Centos-Base.repo每段後面加入優先級
vi /etc/yum.repos.d/CentOS-Base.repo
例如:
[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
priority=2 //優先級設置成2低於本地源,這樣會優先從本地源下載

3.2.4 刷新yum緩存

yum clean all //清除yum信息
yum makecache //創建cache

到此本地源已經配置完畢了

3.3 驗證

172.16.30.103上並沒有安裝wget,下面我們用本地源安裝wget工具

3.3.1 遠程傳輸repo到172.16.30.103

scp /etc/yum.repos.d/local.repo [email protected]:/etc/yum.repos.d/

3.3.2 登陸172.16.30.103執行

yum clean all       //清除yum信息 
yum makecache       //創建cache

3.3.3 172.16.30.103安裝wget

yum install wget

我們能夠看到,Repository已經解析到了本地的tools源,到此本地源已經搭建成功



4 下載依賴

自己建立的庫總有不全的時候,因爲各種依賴的原因難以覆蓋完全。解決方法很簡單,在有網的環境下下載依賴包,更新本地庫,然後就能徹底離線了。
以mysql爲例,本地庫不全的時候結果如下:


可以看到大量的包需要從base中下載,無法實現真正離線安裝,執行命令

yum install --downloadonly --downloaddir=/var/www/html/tools perl
yum install --downloadonly --downloaddir=/var/www/html/tools net-tools
依賴包就下載到本地的/vat/www/html/tools中

刷新源,重新嘗試安裝mysql可以看到


這樣就大功告成了

5 總結

網上還有很多別的教程,但有些遺留而且不夠清晰,所以詳細記錄下。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章