自定义yum仓库
阅读原文时间:2023年07月09日阅读:3

自定义yum仓库

案例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


案例5:发布及测试yum仓库

5.1问题

沿用案例5,本例要求掌握发布及测试yum仓库的方法,方便在网络内提供集中的yum源服务器,主要完成下列任务:

在CentOS真机上发布yum源,包括:rhel7系统的光盘目录仓库、LibreOffice的rpm软件包仓库

在主机pc207上使用上述yum源

5.2方案

通过网络发布yum软件源时,只需要配置HTTP或FTP资源服务器,然后将提前准备好的yum仓库目录部署到可访问的资源位置即可。

在访问网络yum软件源时,注意客户端的baseurl地址必须与资源提供方式一致:

baseurl=htp://服务器地址/目录名==》/var/www/html/目录名

baseurl=ftp://服务器地址/目录位置==》/var/ftp/目录名

5.3步骤

实现此案例需要按照如下步骤进行。

步骤一:在CentOS真机上发布yum仓库

1)快速搭建httpd服务器(若已建好,此步可跳过

[root@room9pc13~]#yum -y install httpd//装包

[root@room9pc13~]#systemctl restart httpd//起服务

[root@room9pc13~]#systemctl enable httpd//设置开机自启

2)确认前一步已经部署到Web网站目录的RHEL7光盘数据:

[root@room9pc13~]#du -sh /var/www/html/rh7dvd///检查部署结果

3.9G/var/www/html/rh7dvd/

3)将准备好的LibreOffice仓库目录部署到Web网页目录

[root@room9pc13~]#mv /opt/libreoffice/ /var/www/html/

[root@room9pc13~]#du -sh /var/www/html/llibreoffice/ //检查部署结果

234M/var/www/html/libreoffice

步骤二:在pc207上访问yum仓库

1)添加新的yum仓库设置

[root@pc207~]#vim /etc/yum.repos.d/new.repo

[rh7dvd]

name=RHEL 7.2 Server

baseurl=http://192.168.4.254/rh7dvd

gpgcheck=0

[libreoffice]

name=LibreOffice 5

baseurl=http://192.168.4.254/libreoffice

gpgcheck=0

2)测试新的yum仓库

[root@pc207~]#yum repolist

….

repo id repo name status

libreoffice LibreOffice 5 53

rh7dvd RHEL 7.2 Server 4620

….