4案例4:自定义yum软件仓库
4.1问题
本例要求在CentOS真机上利用RHEL7的光盘镜像文件准备一个软件仓库目录,完成下列任务:
- 创建目录/var/www/html/rh7dvd
- 挂载rhel-server-7.2-x86_64-dvd.iso到上述目录
另外,利用收集的一些第三方RPM软件包文件,配置为可发布yum仓库目录,相关任务如下:
- 挂载RHEL7光盘镜像文件到/var/www/html/目录
- 下载LibreOffice办公软件的rpm集合版文件
- 将其中的内容释放到/opt/libreoffice/目录
- 为/opt/libreoffice/目录建立仓库档案
4.2方案
作为yum软件源的目录需要准备的内容:
- 大量的.rpm软件安装包文件
- 针对这些软件包的repodata/仓库档案
repodata/仓库档案提供的数据:
- filelists.xml.gz:提供所有软件包的文件安装清单
- primary.xml.gz:提供所有软件包的基本/主要信息
- other.xml.gz:提供所有软件包的其他信息
- repomd.xml:提供上述档案数据文件.xml.gz的下载的校验信息
4.3步骤
实现此案例需要按照如下步骤进行。
步骤一:准备/var/www/html/rh7dvd仓库目录
1)创建目录/var/www/html/rh7dvd
[root@room9pc13 ~]# mkdir /var/www/html/rh7dvd
2)挂载rhel-server-7.2-x86_64-dvd.iso到上述目录
[root@room9pc13 ~]# vim /etc/fstab
.. ..
/ISO/rhel-server-7.2-x86_64-dvd.iso /var/www/html/rh7dvd iso9660 loop,ro 0 0
[root@room9pc13 ~]# mount -a
3)确认部署结果
[root@room9pc13 ~]# ls /var/www/html/rh7dvd/
addons images Packages RPM-GPG-KEY-redhat-release
EFI isolinux release-notes TRANS.TBL
EULA LiveOS repodata
GPL media.repo RPM-GPG-KEY-redhat-beta
步骤二:准备/opt/libreoffice/仓库目录
1)将获取的LibreOffice软件集合包释放到指定目录
[root@room9pc13 ~]# ls LibreOffice_5.1.6.2_Linux_x86-64_rpm.zip
LibreOffice_5.1.6.2_Linux_x86-64_rpm.zip
[root@room9pc13 ~]# unzip LibreOffice_5.1*.zip -d /opt/libreoffice
Archive: LibreOffice_5.1.6.2_Linux_x86-64_rpm.zip
inflating: /opt/libreoffice/install
creating: /opt/libreoffice/langpack_zh-CN/
creating: /opt/libreoffice/langpack_zh-CN/RPMS/
.. .. //释放到 /opt/libreoffice 目录
2)使用createrepo建立档案
[root@room9pc13 ~]# createrepo /opt/libreoffice/
Spawning worker 0 with 53 pkgs
Workers Finished
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete
3)确认repodata/档案资料
[root@room9pc13 ~]# ls /opt/libreoffice/repodata
1a5d8311268f33ad2cbf91382110e1ef9875aeea366897253a5d27fd42f9e317-other.xml.gz
2cd176f0b00492c0c13e0a659eda7dedeb1ab526dec5fd7c9bac7758558770d2-filelists.xml.gz
6ecab3585a93a917202e177b9569046238332af449a6492fcace96ea79374668-filelists.sqlite.bz2
b09a1f838262e0b67a5ab0d6be516bd921a914afd89864e09650f95662a20371-primary.sqlite.bz2
b6fcf4a24de5dc08585bf52bd34be50d7df376d5fbcf50903bfd3c1dfdf160bf-other.sqlite.bz2
f57724cf309cc102b2ee25596bf8fb39db3c23880404209ac1e379f7b9fd5c49-primary.xml.gz
repomd.xml