yum仓库的搭建过程(基于file和http两种服务器)

 

目录

一、基于file://的本地光盘创建yum仓库过程

1、指定yum仓库服务器。

2、创建yum client 配置文件。

二、基于http的网络yum仓库服务搭建

1、安装httpd,启动httpd服务

2、创建对应的http仓库目录

3、创建yum client 配置文件

三、在Centos7中搭建Centos6可访问的yum仓库


YUM: Yellowdog Update Modifier, rpm的前端程序,可解决软件包相关依赖性,可在多个库之间定位软件包, up2date的替代工具
 

yum repository: yum repo,存储了众多rpm包,以及包的相关的元数据文件(放置于特定目录repodata下)

文件服务器有:
http://
https://
ftp://
file://
 

一、基于file://的本地光盘创建yum仓库过程

1、指定yum仓库服务器。

首先要了解,本地光盘中yum元文件存放位置,路径为:/misc/cd/,以下将以该光盘作为yum仓库服务器。此处使用file://文件服务器。             

rpm包放置在Package,yum元文件放置在repodata文件夹中。配置仓库路径时,要以repodata目录所在的目录,即/misc/cd/

[root@Centos7 yum.repos.d]#ls /misc/cd/
CentOS_BuildTag  EULA  images    LiveOS    repodata              RPM-GPG-KEY-CentOS-Testing-7
EFI              GPL   isolinux  Packages  RPM-GPG-KEY-CentOS-7  TRANS.TBL

2、创建yum client 配置文件。

yum主配置文件,其中记录了yum的配置信息,如下所示

[root@Centos7 ~]#vim /etc/yum.conf
[main]
cachedir=/var/cache/yum/$basearch/$releasever     #$basearch  CPU架构  $releasever  版本号
keepcache=0    #是否保留缓存
debuglevel=2    #调试模式,排错用
logfile=/var/log/yum.log    #日志
exactarch=1       #是否匹配CUP架构
obsoletes=1      
gpgcheck=1    #检查包是否合法
plugins=1        #是否支持插件
installonly_limit=5        #是否支持并行安装
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=23&ref=http://bugs.centos.org/bug_repor
t_page.php?category=yum
distroverpkg=centos-release

# PUT YOUR REPOS HERE OR IN separate files named file.repo
# in /etc/yum.repos.d        #yum仓库服务器路径

创建的yum仓库服务器,要存放在 /etc/yum.repos.d 下,并且文件名称必须以.repo为后缀。

使用yum repolist命令可以查询当前配置好的yum仓库。

此处,我创建一个名称为test.repo的配置文件,并进行一些基础配置。

[root@Centos7 yum.repos.d]#vim test.repo
[cdrom]    #repo id
name=cdrom repodb    #repo name
baseurl=file:///misc/cd     #yum仓库路径
gpgcheck=0

完成该配置文件以后,一个简单的yum仓库就创建好了,之后可以yum install 命令安装一个程序做测试,看是否可以成功安装。

注意:若centos环境为Centos5,则光盘中repodata目录的位置为/misc/cd/Server/ 

 

 

二、基于http的网络yum仓库服务搭建

基于file://文件服务器搭建的yum仓库,只能实现本机操作,要想实现用户跨网络的方式访问远程主机的数据y,并进行相关操作,则需要搭建基于网络的服务。此处我选择搭建一个http服务。

1、安装httpd,启动httpd服务

在进行搭建http服务的yum仓库之前,需要先安装http服务相应的包,包名为httpd。安装完成以后,使用rpm -ql httpd查看该包的文件列表,找到.service后缀的文件httpd.service,并将其启动,启动命令为systemctl  start  service

[root@Centos7 yum.repos.d]#yum -y install httpd 

[root@Centos7 yum.repos.d]#rpm -ql httpd

[root@Centos7 yum.repos.d]#systemctl start httpd.service

到这一步,一个基础的http服务的yum仓库就搭建完成了,现在可以通过浏览器访问本机IP,可以看到该http服务已经连通。

注意:如果发现在浏览器上连接不通,可能是防火墙没有关,在Centos7可以通过iptables -F来清除缓存;在Centos6可以通过service iptables stop命令来关闭。

yum仓库的搭建过程(基于file和http两种服务器)_第1张图片

2、创建对应的http仓库目录

上一步完成了基础服务的搭建,但是此时该仓库是空的,其内部没有任何数据。存放仓库这个http服务的目录为/var/www/html/,现在里面是空的,那么现在就要新建该目录,参照阿里云的结构,我创建了该目录结构为centos/7/os/x86_64/,此时通过浏览器访问主机地址+/centos/7/os/x86_64/可以查看该目录结构。

#mkdir centos/7/os/x86_64/ -pv
mkdir: created directory ‘centos’
mkdir: created directory ‘centos/7’
mkdir: created directory ‘centos/7/os’
mkdir: created directory ‘centos/7/os/x86_64/’

接下来,可以将/misc/cd/目录下的Packages和repodata两个文件夹复制到http服务的目录/var/www/html上,但是这样做复制的速度可能很慢。因此,我们还可以选择直接将光盘挂载到http服务的目录/var/www/html/上即可。挂载方式:

[root@Centos7 misc]#mount /dev/sr0 /var/www/html/centos/7/os/x86_64/
mount: /dev/sr0 is write-protected, mounting read-only

完成挂载以后,光盘中相应的数据便被挂载到http服务上了,接下来可以通过浏览器访问主机地址+/centos/7/os/x86_64/查看光盘内容。如图:

yum仓库的搭建过程(基于file和http两种服务器)_第2张图片

3、创建yum client 配置文件

在上一步中,已经完成了基于http网络的yum仓库的搭建。接一下需要创建yum client 配置文件。

[root@Centos7 yum.repos.d]#vim net.repo 
[centos]
name=http server
baseurl=http://172.16.252.52/centos/$releasever/os/$basearch
gpgkey=http://172.16.252.52/centos/$releasever/os/x86_64/RPM-GPG-KEY-CentOS-$releasever

此时就完成了yum客户端相关的配置文件,至此就完成整个基于http的网络yum服务搭建,接下来就可以利用该yum仓库下载安装程序了。

三、在Centos7中搭建Centos6可访问的yum仓库

在上述方式建立的yum仓库只能让Centos7用户访问,如果Centos6用户想要使用,则需要再创建Centos6的yum仓库。方法和基于http的网络yum服务搭建方法类似。

#在Centos7中操作
[root@Centos7 html]#mkdir centos/6/os/x86_64/ -pv 
mkdir: created directory ‘centos/6’
mkdir: created directory ‘centos/6/os’
mkdir: created directory ‘centos/6/os/x86_64/’


[root@Centos7 html]#mount /dev/sr1/ /var/www/html/centos/6/os/x86_64/
mount: /dev/sr1 is write-protected, mounting read-only

#在Centos6中操作
[root@centos6 ~]#vim /etc/yum.repos.d/test.repo 
[centos]
name=http server
baseurl=http://172.16.252.52/centos/$releasever/os/$basearch
gpgkey=http://172.16.252.52/centos/$releasever/os/x86_64/RPM-GPG-KEY-CentOS-$releasevera

 

你可能感兴趣的:(yum仓库的搭建过程(基于file和http两种服务器))