在虚拟机上使用CentOS6的两个iso文件创建本地yum仓库和http仓库

yum客户端和服务器端都是本虚拟机

一、创建本地磁盘访问的yum仓库


条件和要求:

a.guest虚拟机需要添加2个光驱,分别装载CentOS6.4发行版的DVD1和DVD2

b.DVD1和DVD2的挂载目录分别是:/media/cdrom/下的os和extras,并设置开机挂载

c.使用CentOS-Media.repo作为yum客户端配置文件,将其他repo文件删掉或改名

d.分别安装各DVD上的包: zsh包在DVD1上、zsh-html包在DVD2上

执行步骤:

1.挂载光盘

[root@www ~]# mkdir -p /media/cdrom/{os,extras}

[root@www ~]# ls /dev/cdrom*
/dev/cdrom  /dev/cdrom1

[root@www ~]# vim /etc/fstab  #添加下面两行设置开机启动
/dev/cdrom    /media/cdrom/osiso9660defaults,ro0 0
/dev/cdrom1/media/cdrom/extrasiso9660 defaults,ro0 0
[root@www ~]# mount -a
[root@www ~]# mount
.....(略去)......
/dev/sr0 on /media/cdrom/os type iso9660 (ro)
/dev/sr1 on /media/cdrom/extras type iso9660 (ro)
#如果你的iso文件放在guest虚拟机的某个文件系统目录中,则需要使用如下配置
#/XXXX.iso /XXXiso9660 defaults,loop,ro0 0

#由于DVD上已经包含yum仓库的元数据,因此无需创建专门的yum仓库
[root@www ~]# cd /media/cdrom/os/
[root@www os]# ls repodata/
08faa81a545bb1157be476ada0524206d137084f50d285b9f7f875b3b02839df-other.sqlite.bz2
2727fcb43fbe4c1a3588992af8c19e4d97167aee2f6088959221fc285cab6f72-c6-x86_64-comps.xml
6ce81da964e0028da004fd4deb817a89d4db450a3d0af4a826d7c6abad0168a9-other.xml.gz
cb96727ddc89e5e1786456c6f2c08a81418296f949470311ee9c2ebb1a6ccc7d-c6-x86_64-comps.xml.gz
d221c3d1c22cc4e4c4dafc40aa2bf3d353d67882a0d98f7f88ad8215f2d48818-filelists.sqlite.bz2
df5b1510036696c30d69d32d0609c5bfb6f121083ff97bf98a7540c644f6e4ac-primary.sqlite.bz2
f050fc8b41b566153c15bb1d287e6c5a016809415bfce9ddc3540176ce8afdaf-filelists.xml.gz
f6f4019e1d7ff186c247c58d394a5faaab51e9ca1fb9c174c94a204588536d14-primary.xml.gz
repomd.xml
TRANS.TBL

2.配置yum客户端配置

[root@www os]# cd /etc/yum.repos.d
[root@www yum.repos.d] ls
CentOS-Media.repo

[root@www yum.repos.d]# vim CentOS-Media.repo
[root@www yum.repos.d]# cat CentOS-Media.repo
[c6-media]
name=CentOS-$releasever - Media - Local
baseurl=file:///media/cdrom/os     #可以在baseurl同时设置两个DVD的挂载目录
    file:///media/cdrom/extras
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

3.通过本地yum测试软件安装

#先清缓存
[root@www os]# yum clean all  
Loaded plugins: fastestmirror, refresh-packagekit, security
Cleaning repos: c6-media
Cleaning up Everything
Cleaning up list of fastest mirrors

#刷新yum源
[root@www os]# yum repolist
Loaded plugins: fastestmirror, refresh-packagekit, security
Determining fastest mirrors
 * c6-media: 
file:///media/cdrom/extras/repodata/repomd.xml: [Errno 14] Could not open/read file:///media/cdrom/extras/repodata/repomd.xml
Trying other mirror.
c6-media-local                                                                                   | 4.0 kB     00:00 ... 
c6-media-local/primary_db                                                                        | 4.4 MB     00:00 ... 
repo id                                             repo name                                                     status
c6-media-local                                      CentOS-6 - Media - Local                                      6,381
repolist: 6,381
#出现了Errno,不用管它,因为DVD2是附加盘而没有仓库目录repodata

4.测试安装DVD1和DVD2上的包

[root@www ~]# yum install -y zsh       
.....(略去)......

[root@www ~]# yum install -y zsh-html
.....(略去)......


OK,本地yum源创建成功

二、创建HTTP访问的yum仓库

条件和要求:

a.guest虚拟机需要添加2个光驱,分别装载CentOS6.4发行版的DVD1和DVD2

b.DVD1和DVD2的挂载目录分别是:/media/cdrom/下的os和extras

c.参考mirrors.aliyun.com的路径做HTTP仓库,www.tangsw.com为本虚拟机主机名。

      包含DVD1内容的yum仓库base-http路径: http://www.tangsw.com/centos/6/os/x86_64/下,主要目录为Packages和repodata

      包含DVD2内容的yum仓库extras-http路径 : http://www.tangsw.com/centos/6/extras/x86_64下,主要目录为Packages和repodata

          通过软连接实现将光盘包目录Packages映射到http服务器的数据目录Packages,让客户端能用yum下载rpm包来安装

           /media/cdrom/{os,extras}/Packages 映射到 /var/www/html/centos/6/{os,extras}/x86_64/Packages

d.使用CentOS-Media.repo作为yum的http客户端配置文件

e.分别安装各yum仓库上的包: zsh包在base-http上、zsh-html包在extras-http上

执行步骤:

1.挂载光盘(按“一、创建yum本地仓库”来做),安装后面用到的工具:createrepo命令、httpd包

2.准备一些建立yum仓库前的目录和文件

#创建仓库目录
[root@www ~]# mkdir -p /var/www/html/centos/6/{os,extras}/x86_64/repodata

#创建包目录
[root@www ~]# ln -s /media/cdrom/os/Packages/ /var/www/html/centos/6/os/x86_64/Packages
[root@www ~]# ln -s /media/cdrom/extras/Packages/ /var/www/html/centos/6/extras/x86_64/Packages

#复制公钥到包目录的父目录
[root@www ~]# cp /media/cdrom/os/RPM-GPG-KEY-CentOS-* /var/www/html/centos/6/os/x86_64
[root@www ~]# cp /media/cdrom/extras/RPM-GPG-KEY-CentOS-* /var/www/html/centos/6/extras/x86_64

#复制分组信息到仓库目录(只有DVD1,也就是base-http才有包组信息)
[root@www ~]# cp /media/cdrom/os/repodata/*comps.xml /var/www/html/centos/6/os/x86_64/repodata
[root@www ~]# cd /var/www/html/centos/6/os/x86_64/repodata
[root@www repodata]# ls
2727fcb43fbe4c1a3588992af8c19e4d97167aee2f6088959221fc285cab6f72-c6-x86_64-comps.xml
[root@www repodata]# mv 2727fcb43fbe4c1a3588992af8c19e4d97167aee2f6088959221fc285cab6f72-c6-x86_64-comps.xml c6-x86_64-comps.xml
[root@www repodata]# ls
c6-x86_64-comps.xml  #名字改短为了方便创建仓库的语句写短点

#目录结构如下
[root@www repodata]# cd /var/www/html/
[root@www html]# tree -L 5
.
└── centos
    └── 6
        ├── extras
        │   └── x86_64
        │       ├── Packages -> /media/cdrom/extras/Packages/
        │       ├── repodata
        │       ├── RPM-GPG-KEY-CentOS-6
        │       ├── RPM-GPG-KEY-CentOS-Debug-6
        │       ├── RPM-GPG-KEY-CentOS-Security-6
        │       └── RPM-GPG-KEY-CentOS-Testing-6
        └── os
            └── x86_64
                ├── Packages -> /media/cdrom/os/Packages/
                ├── repodata
                ├── RPM-GPG-KEY-CentOS-6
                ├── RPM-GPG-KEY-CentOS-Debug-6
                ├── RPM-GPG-KEY-CentOS-Security-6
                └── RPM-GPG-KEY-CentOS-Testing-6

3.创建仓库

#使用刚才的本地仓库安装创建仓库的createrepo命令
[root@www html]# yum install createrepo
.....(略去)......

#生成yum仓库base-http。元数据不放在Packages目录内(因为该目录为挂载iso内的目录,不能生成yum仓库源数据)
[root@www html]# cd /var/www/html/centos/6/os/x86_64
[root@www x86_64]# ls . repodata/
.:
Packages  RPM-GPG-KEY-CentOS-6        RPM-GPG-KEY-CentOS-Security-6
repodata  RPM-GPG-KEY-CentOS-Debug-6  RPM-GPG-KEY-CentOS-Testing-6
repodata/:
c6-x86_64-comps.xml
[root@www x86_64]# createrepo -u "http://www.tangsw.com/centos/6/os/x86_64/Packages" \
> -g /var/www/html/centos/6/os/x86_64/repodata/c6-x86_64-comps.xml \
> -o . Packages/
Spawning worker 0 with 3955 pkgs
Workers Finished
Gathering worker results
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete
#创建yum仓库的相关选项
#选项-u告诉仓库的rpm包在哪个URL目录,这里使用了http地址
#选项-g告诉仓库有关包的分组信息
#选项-o告诉仓库,在哪个本地目录下创建repodata目录以及其下的文件
Packages/为本地要创建仓库的rpm目录

[root@www x86_64]# ls repodata/   #成功创建了yum仓库base-http,下面是仓库元数据文件
2727fcb43fbe4c1a3588992af8c19e4d97167aee2f6088959221fc285cab6f72-c6-x86_64-comps.xml
5df078da5f9cc13498e5e2a9e6093ed52bd0c1ac2d32f4e392c0173eb3d2681c-primary.xml.gz
5f5db77f755ccd961249b556ffe979bd2b2f4ce91e6260c28a236f34396d7a43-filelists.xml.gz
643bc28fb483d4131a6b0ecbd17c769caae6c015062838c7dea629e47633892c-primary.sqlite.bz2
6edabfeb2957fc20cacf8d38c61a7f9d14593bd87d7c66300485d1f66d56f36f-other.xml.gz
b38a04081eabb1b28bf2d615cfbce1f7244e07a3cdc92208c4bcbfa0723ce331-other.sqlite.bz2
cb96727ddc89e5e1786456c6f2c08a81418296f949470311ee9c2ebb1a6ccc7d-c6-x86_64-comps.xml.gz
e2d9ea7a6ce208f11898da8212427ff0eef709aa4a8a6ac779c6180b8bea1d0b-filelists.sqlite.bz2
repomd.xml


#生成yum仓库extra-http。
[root@www x86_64]# pwd
/var/www/html/centos/6/os/x86_64
[root@www x86_64]# cd ../../extras/x86_64/
[root@www x86_64]# ls . repodata/
.:
Packages  RPM-GPG-KEY-CentOS-6        RPM-GPG-KEY-CentOS-Security-6
repodata  RPM-GPG-KEY-CentOS-Debug-6  RPM-GPG-KEY-CentOS-Testing-6
repodata/:
[root@www x86_64]# createrepo -u "http://www.tangsw.com/centos/6/extras/x86_64/Packages" \
> -o . Packages/
Spawning worker 0 with 2426 pkgs
Workers Finished
Gathering worker results
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete

[root@www x86_64]# ls repodata/  #成功创建了yum仓库extras-http,下面是仓库元数据文件
079695d74c53deee74e35928ee519cc36273934cd7b643ca2b5a2acc23a6f2aa-filelists.xml.gz
0f1f74b6731c95310593b90ab3145921f5b8de579a4bd46aed44d2b4b349575e-other.sqlite.bz2
22c88c0f4fef145d4efb14afe42703371102eebbddef15f89771352687efe74a-primary.xml.gz
598452fa46a28589e2215b43403ba1f0f177636bec652419b3a5b3bb308a86e8-filelists.sqlite.bz2
62b62111b2d9beda6486f5a40c53c860e676a84a3b7ca396b5939dd25d1441fc-other.xml.gz
6eff722739c77958a605f7e65c663a92a124a25c01b671661cda89d82ad25bd4-primary.sqlite.bz2
repomd.xml

4.安装httpd并启动www服务

#先安装httpd
[root@www ~]# yum install -y httpd
.....(略去)......


#启动httpd服务
[root@www ~]# service httpd restart
Stopping httpd:                                            [FAILED]
Starting httpd:                                            [  OK  ]

#查看服务监听进程是否正常
[root@www ~]# netstat -tnlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name   
tcp        0      0 0.0.0.0:111                 0.0.0.0:*                   LISTEN      1471/rpcbind        
tcp        0      0 192.168.8.11:80             0.0.0.0:*                   LISTEN      2805/httpd          
tcp        0      0 192.168.56.11:80            0.0.0.0:*                   LISTEN      2805/httpd          
tcp        0      0 127.0.0.1:80                0.0.0.0:*                   LISTEN      2805/httpd          
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      1684/sshd           
tcp        0      0 127.0.0.1:631               0.0.0.0:*                   LISTEN      1557/cupsd          
tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN      1764/master         
tcp        0      0 0.0.0.0:45305               0.0.0.0:*                   LISTEN      1504/rpc.statd      
tcp        0      0 :::44683                    :::*                        LISTEN      1504/rpc.statd      
tcp        0      0 :::111                      :::*                        LISTEN      1471/rpcbind        
tcp        0      0 :::22                       :::*                        LISTEN      1684/sshd           
tcp        0      0 ::1:631                     :::*                        LISTEN      1557/cupsd          
tcp        0      0 ::1:25                      :::*                        LISTEN      1764/master         
#当前服务进程正常
a.如果看到连接会话只启用IPv6的端口,而没有启用IPv4的端口,那应该是配置文件问题
    用rpm -qc httpd找到httpd的配置文件httpd.conf(本人的为/etc/httpd/conf/httpd.conf)
        修改Listen 80为Listen www.tangsw.com:80 
        注意这里使用了本地主机名,必须在将本地IP映射到该主机名中(本地无DNS服务),手动映射方法为:
        在/etc/sysconfig/network修改主机名
        在/etc/hosts增加主机名到本地IP的映射
b.如果监听进程正常启动,则看日志分析故障
    rpm -ql httpd | grep log
        如果发现是安全性问题
            简单方法是用setup命令,开启httpd的防火墙端口
            修改/etc/selinux/config,关闭selinux,然后重启linux
            
#设置开机启动
[root@www ~]# chkconfig httpd on

#确保用浏览器访问如下路径没问题
http://www.tangsw.com/centos

5.配置yum客户端

[root@www ~]# vim /etc/yum.repos.d/CentOS-Media.repo

[root@www ~]# cat /etc/yum.repos.d/CentOS-Media.repo
[c6-media]
name=CentOS-$releasever - Media - Local
baseurl=file:///media/cdrom/os
file:///media/cdrom/extras
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
enabled=0
[base-http]
name=CentOS-$releasever - Base - Http
baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
enabled=1
[extras-http]
name=CentOS-$releasever - extras - Http
baseurl=http://mirrors.aliyun.com/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
enabled=1
#注意为了测试HTTP的yum源,这里将本地yum源禁用
#$releasever变量值为6,$basearch变量值为x86_64,本机用的是64位CentOS

6.测试客户端配置是否正确

#清理缓存
[root@www ~]# yum clean all
Loaded plugins: fastestmirror, refresh-packagekit, security
Cleaning repos: base-http extras-http
Cleaning up Everything
Cleaning up list of fastest mirrors

#查看yum源信息
[root@www ~]# yum repolist
Loaded plugins: fastestmirror, refresh-packagekit, security
Determining fastest mirrors
base-http                                                                                        | 3.7 kB     00:00     
base-http/primary_db                                                                             | 4.6 MB     00:06     
extras-http                                                                                      | 3.4 kB     00:00     
extras-http/primary_db                                                                           |  27 kB     00:00     
repo id                                           repo name                                                       status
base-http                                         CentOS-6 - Base - Http                                          6,575
extras-http                                       CentOS-6 - extras - Http                                           35
repolist: 6,610
#可以看到只有两个http的yum源,分别有3,955和2,426个包,分别对应DVD1和DVD2

#查看包的分组信息是否正确
[root@www ~]# yum grouplist
Loaded plugins: fastestmirror, refresh-packagekit, security
Setting up Group Process
Loading mirror speeds from cached hostfile
base-http/group_gz                                                                               | 219 kB     00:00     
Installed Groups:
   Additional Development
   Base
   Debugging Tools
   Desktop
   Desktop Debugging and Performance Tools
.........(略去).......

7.测试在客户端安装软件包zsh和zsh-html

[root@www yum.repos.d]# yum -y install zsh
Loaded plugins: fastestmirror, refresh-packagekit, security
Loading mirror speeds from cached hostfile
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package zsh.x86_64 0:4.3.11-4.el6.centos will be installed
--> Finished Dependency Resolution
Dependencies Resolved
========================================================================================================================
 Package               Arch                     Version                               Repository                   Size
========================================================================================================================
Installing:
 zsh                   x86_64                   4.3.11-4.el6.centos                   base-http                   2.2 M
Transaction Summary
========================================================================================================================
Install       1 Package(s)
Total download size: 2.2 M
Installed size: 5.0 M
Downloading Packages:
zsh-4.3.11-4.el6.centos.x86_64.rpm                                                               | 2.2 MB     00:03     
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing : zsh-4.3.11-4.el6.centos.x86_64                                                                       1/1 
  Verifying  : zsh-4.3.11-4.el6.centos.x86_64                                                                       1/1 
Installed:
  zsh.x86_64 0:4.3.11-4.el6.centos                                                                                      
Complete!


[root@www yum.repos.d]# yum -y install zsh-html
Loaded plugins: fastestmirror, refresh-packagekit, security
Loading mirror speeds from cached hostfile
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package zsh-html.x86_64 0:4.3.11-4.el6.centos will be installed
--> Finished Dependency Resolution
Dependencies Resolved
========================================================================================================================
 Package                  Arch                   Version                                Repository                 Size
========================================================================================================================
Installing:
 zsh-html                 x86_64                 4.3.11-4.el6.centos                    base-http                 478 k
Transaction Summary
========================================================================================================================
Install       1 Package(s)
Total download size: 478 k
Installed size: 3.0 M
Downloading Packages:
zsh-html-4.3.11-4.el6.centos.x86_64.rpm                                                          | 478 kB     00:00     
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing : zsh-html-4.3.11-4.el6.centos.x86_64                                                                  1/1 
  Verifying  : zsh-html-4.3.11-4.el6.centos.x86_64                                                                  1/1 
Installed:
  zsh-html.x86_64 0:4.3.11-4.el6.centos                                                                                 
Complete!

大功告成!

原创文章,作者:王重阳,如若转载,请注明出处:http://www.178linux.com/8214

(0)
王重阳王重阳
上一篇 2015-09-21
下一篇 2015-09-22

相关推荐

  • Linux进程篇16.2pstree命令:【进程树】

    pstree命令:【进程树】

    Linux干货 2017-12-18
  • 作业:0805

    1.查出用户UID最大值的用户名、UID及shell类型 > cat /etc/passwd|cut -d: -f 1,3,7 |sort -t: -k2 -n| tail -1 2.查出/tmp的权限,以数字方式显示 > st…

    Linux干货 2016-08-08
  • vim编辑器

    一、vim简介    vi: Visual Interface,文本编辑器     文本: ASCII, Unicode     文本编辑种类:         行编辑器: sed…

    Linux干货 2016-08-10
  • Linux的文件查找之find的使用

    文件查找   本章节内容:   使用locate命令   使用find命令   使用Gnome搜索工具    一、文件的查找(find和locate的对比): 文件查找:是在文件系统上查找符合条件的文件。 locate find 查找时效性 非实时查找 实时查找 文件索引数据库 需要依赖查询系统上预…

    Linux干货 2016-08-15
  • Linux Basics

    计算机的组成及其功能:             CPU:运算器、控制器、寄存器、缓存             存储器:内存,RAM(Random Access Memory)   …

    Linux干货 2016-09-17
  • linux 第二周

     一. 文件管理       文件被组织到文件系统(file system)中,通常会成为一个树状(tree)结构。Linux有一个根目录/, 也就是树状结构的最顶端。这个树的分叉的最末端都代表一个文件,而这个树的分叉处则是一个目录(directory, 相当于我们在windows界面中看到的文件夹)。在图1…

    Linux干货 2017-05-29