1. 程式人生 > >yum 系列(三) 離線部署

yum 系列(三) 離線部署

基於 位置 text yum 倉庫 機器 不安裝 軟件包 --nodeps led

yum 系列(三) 離線部署

一、下載 rpm 依賴包

準備一臺 全新的 CentOS7 mini 虛擬機 ,聯網下載所有所需的 rpm 包和其依賴,

yum install -y --downloadonly --downloaddir=/home/yum/packages createrepo ansible ruby rubygems

註意:

  1. 安裝軟件包 xxx 下載到 /xxx 位置,然後記得指定 --downloadonly,只下載,不安裝。

  2. 此方法,會將主軟件包和基於你現在的操作系統缺少的依賴關系包一並下載!

    基於你現在的操作系統,意味著不同版本的操作系統(桌面版、mini版等)下載的軟件依賴包個數會不一樣!

    你的操作系統已裝的包越多,那麽下下來的依賴會越少,所以請選擇合適的基操作系統!

下載完成後,我們可以看到 /home/yum/packages 下有多個 rpm 包(主包及其依賴),接下來我們就利用這些 rpm 包搭建一個本地 yum 倉庫。

二、搭建本地 yum 倉庫

(1) 拷貝 rpm 包

將拷貝下載的 rpm 包到離線目標機器(假設為 /home/yum/packages)

(2) createrepo 安裝

rpm -qa | grep libxml2 | xargs rpm -e --nodeps
rpm -qa | grep deltarpm| xargs rpm -e --nodeps

rpm -ivh /home/yum/packages/deltarpm-3.6-3.el7.x86_64.rpm
rpm -ivh /home/yum/packages/python-deltarpm-3.6-3.el7.x86_64.rpm
rpm -ivh /home/yum/packages/libxml2-2.9.1-6.el7_2.3.x86_64.rpm
rpm -ivh /home/yum/packages/libxml2-python-2.9.1-6.el7_2.3.x86_64.rpm
rpm -ivh /home/yum/packages/createrepo-0.9.9-28.el7.noarch.rpm

(3) createrepo 生成 yum 倉庫

createrepo /home/yum/packages           # 生成 yum 倉庫
createrepo --update /home/yum/packages  # 更新 yum 倉庫

(4) 添加 yum 配制文件

cat >> /etc/yum.repos.d/yum.repo << EOF
[local]
name=Local Repository               # 名稱描述
baseurl=file:///home/yum/packages   # yum 源目錄,源地址,可以用 file://,ftp://,http:// 等
enabled=1       # 是否啟用該 yum 源,0 為禁用
gpgcheck=0      # 檢查 GPG-KEY,0 為不檢查,1 為檢查
EOF

註:cat > yum.repo 有則覆蓋,無則生成;cat >> yum.repo 有則追加,無則生成。

(5) 更新 yum 倉庫

yum clean all
yum repolist
yum makecache

完整的 shell 腳本:

# 1. 安裝  createrepo
cd /home/yum/packages
rpm -qa | grep libxml2 | xargs rpm -e --nodeps
rpm -qa | grep deltarpm| xargs rpm -e --nodeps

rpm -ivh  deltarpm-3.6-3.el7.x86_64.rpm
rpm -ivh  python-deltarpm-3.6-3.el7.x86_64.rpm
rpm -ivh  libxml2-2.9.1-6.el7_2.3.x86_64.rpm
rpm -ivh  libxml2-python-2.9.1-6.el7_2.3.x86_64.rpm
rpm -ivh  createrepo-0.9.9-28.el7.noarch.rpm

# 2. 生成 yum 倉庫
createrepo /home/yum/packages

# 3. 添加配制文件
cat >> /etc/yum.repos.d/yum.repo << EOF
[local]
name=Local Repository               # 名稱描述
baseurl=file:///home/yum/packages   # yum 源目錄,源地址,可以用 file://,ftp://,http:// 等
enabled=1       # 是否啟用該 yum 源,0 為禁用
gpgcheck=0      # 檢查 GPG-KEY,0 為不檢查,1 為檢查
EOF

# 4. 更新 yum 源
mv /etc/yum.repos.d/yum.repo/Cent* /home/yum/yum.repos.d

yum clean all
yum repolist
yum makecache

每天用心記錄一點點。內容也許不重要,但習慣很重要!

yum 系列(三) 離線部署