1 所需工具介紹
- httpd:用於搭建http服務器
- createrepo:用於創建yum源
- yum-plugin-priorities:用於設置yum源的優先級
2 本源原理
- 利用httpd建立一個httpd服務器用於存放本地源的rpm包
- 利用createrepo建立本地rpm包的描述信息
- 並在/etc/yum.repos.d/中加入本地源的描述repo使得yum能夠找到本地源
- 最後再修改優先級使得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會用到,優先級越小越高
[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 驗證
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
4 下載依賴
可以看到大量的包需要從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可以看到
這樣就大功告成了