如何实现本地yum源的共享

上一篇关于Linux yum客户端的配置的博客,介绍了如何通过修改本机yum配置文件来访问网络或者本地的yun sever, 本文就来介绍一下,如何把我们的本地RPM包像yum sever一样通过http或ftp网络方式共享出去。

一、准备好发行版光盘,包,元数据
    CentOS-6.8-x86_64-bin-DVD1.iso
二、准备网络服务http(s);ftp
根据netstat -ntl命令执行结果可以看出,80(http),21(ftp)端口都没有显示, 服务还没有配置

[root@centos6 ~]#netstat -ntl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State      
tcp        0      0 0.0.0.0:111                 0.0.0.0:*                   LISTEN      
tcp        0      0 0.0.0.0:44496               0.0.0.0:*                   LISTEN      
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      
tcp        0      0 127.0.0.1:631               0.0.0.0:*                   LISTEN      
tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN      
tcp        0      0 :::111                      :::*                        LISTEN      
tcp        0      0 :::55028                    :::*                        LISTEN      
tcp        0      0 :::22                       :::*                        LISTEN      
tcp        0      0 ::1:631                     :::*                        LISTEN      
tcp        0      0 ::1:25                      :::*                        LISTEN      

1)配置ftp服务
1.安装vsftpd包

[root@centos6 ~]#yum -y -q install vsftpd         <-- 利用配置过的yum仓库
[root@centos6 ~]#rpm -ql vsftpd
/etc/logrotate.d/vsftpd
/etc/pam.d/vsftpd
/etc/rc.d/init.d/vsftpd                           <-- 服务名称
....中间省略....
/usr/share/man/man8/vsftpd.8.gz
/var/ftp
/var/ftp/pub                                      <-- 共享文件存放路径

2.启动ftp服务
以下两种方法均可

[root@centos6 ~]#/etc/rc.d/init.d/vsftpd start    <-- 路径名
Starting vsftpd for vsftpd:                                [  OK  ]
[root@centos6 ~]#service vsftpd start             <-- service指令
Starting vsftpd for vsftpd:                                [  OK  ]

3.设置开机自启动

[root@centos6 ~]#chkconfig vsftpd on

2)配置http服务
1.安装httpd包

[root@centos6 ~]#yum -y install httpd             <-- 利用配置过的yum仓库
[root@centos6 ~]#rpm -ql httpd
/etc/httpd
....中间省略....
/etc/rc.d/init.d/htcacheclean
/etc/rc.d/init.d/httpd                            <-- 服务名称
....中间省略....
/var/www/html                                     <-- 共享文件存放路径
....后面省略....

2.启动http服务

[root@centos6 ~]#cd /etc/httpd/conf.d/
[root@centos6 conf.d]#mv welcome.conf welcome.conf.bak    <-- 重命名welcome.conf文件,否则通过http访问不到/var/www/html共享文件夹
[root@centos6 ~]#/etc/rc.d/init.d/httpd start             <-- 路径名
Starting httpd:                                            [  OK  ]
[root@centos6 ~]#service httpd start                      <-- service指令
Starting httpd:                                            [  OK  ]

3.设置开机自启动

[root@centos6 ~]#chkconfig httpd on

三、关闭防火墙服务

[root@centos6 ~]#service iptables stop             <-- 关闭服务
[root@centos6 ~]#chkconfig iptables off            <-- 禁止开机启动

四、拷贝目标文件到共享目录
1.ftp服务的共享目录是/var/ftp/pub

[root@centos6 /]#cd /var/ftp/pub
[root@centos6 6]#mkdir 6                           <-- 创建以版本号命名的文件夹
[root@centos6 6]#cp -r /misc/cd/Packages           <-- 从光盘拷贝包文件
[root@centos6 6]#cp -r /misc/cd/repodata           <-- 从光盘拷贝元数据
[root@centos6 6]#ls
Packages  repodata

通过浏览器访问ftp://192.168.196.132,已经可以访问共享文件了            <– 本机IP192.168.196.132

如何实现本地yum源的共享

2.同样方法可以把rpm包拷贝到http服务的共享目录下/var/www/html
还有另外一种方法就是把目录/var/ftp/pub挂载到目录/var/www/html,这样通过http访问/var/www/html相当于访问/var/ftp/pub,我们就省去了重复复制的操作

[root@centos6 ~]#mount /var/ftp/pub /var/www/html -B

通过浏览器访问http://192.168.196.132,已经可以访问共享文件了

如何实现本地yum源的共享

五、yum客户端的配置
1.修改yum配置文件

[root@centos6 ~]#vi /etc/yum.repos.d/centos.repo 
[ftpbase]
name=ftp yum base
baseurl=ftp://192.168.196.132/pub/$releasever     
gpgcheck=0
enabled=1

[httpbase]
name=http yum base
baseurl=http://192.168.196.132/$releasever
gpgcheck=0
enabled=1

2.清理缓存

[root@centos6 ~]#yum clean all
Loaded plugins: fastestmirror, refresh-packagekit, security
Cleaning repos: ftpbase httpbase
Cleaning up Everything
Cleaning up list of fastest mirrors

3.创建缓存

[root@centos6 ~]#yum makecache
Loaded plugins: fastestmirror, refresh-packagekit, security
Determining fastest mirrors
ftpbase                                                                                        | 4.0 kB     00:00     
ftpbase/group_gz                                                                               | 226 kB     00:00     
ftpbase/filelists_db                                                                           | 6.3 MB     00:00     
ftpbase/primary_db                                                                             | 4.7 MB     00:00     
ftpbase/other_db                                                                               | 2.8 MB     00:00     
httpbase                                                                                       | 4.0 kB     00:00     
httpbase/group_gz                                                                              | 226 kB     00:00     
httpbase/filelists_db                                                                          | 6.3 MB     00:00     
httpbase/primary_db                                                                            | 4.7 MB     00:00     
httpbase/other_db                                                                              | 2.8 MB     00:00     
Metadata Cache Created

4.列出yum仓库

[root@centos6 ~]#yum repolist
Loaded plugins: fastestmirror, refresh-packagekit, security
Loading mirror speeds from cached hostfile
repo id                                                     repo name                                status
ftpbase                                                     ftp yum base                             6,696
httpbase                                                    http yum base 6,696
repolist: 13,392

结果可以看出,网络yum源已经创建成功,可以通过http或者ftp服务访问了

六、第三方的软件仓库的配置
上面是以发行版光盘为rpm包的来源,提供了元数据repodata,假如我们想要分享第三方的软件,就必须使用createrepo命令来生成所需的repodata

[root@centos6 6]#cd /var/ftp/pub/6     <--cd到Package所在目录
[root@centos6 6]#mv repodata /root/    <--移走已有repodata 
[root@centos6 6]#createrepo ./         <--创建元数据
Spawning worker 0 with 3206 pkgs       <--rpm包数小于6696是由于我们只拷贝一张光盘上的rpm包
Workers Finished
Gathering worker results

Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete
[root@centos6 6]#ls
Packages  repodata

来测试一下yum源

[root@centos6 6]#yum clean all
Loaded plugins: fastestmirror, refresh-packagekit, security
Cleaning repos: ftpbase httpbase
Cleaning up Everything
Cleaning up list of fastest mirrors
[root@centos6 6]#yum makecache
Loaded plugins: fastestmirror, refresh-packagekit, security
Determining fastest mirrors
ftpbase                                                                                     | 2.9 kB     00:00     
ftpbase/filelists_db                                                                        | 3.3 MB     00:00     
ftpbase/primary_db                                                                          | 2.5 MB     00:00     
ftpbase/other_db                                                                            | 1.4 MB     00:00     
httpbase                                                                                    | 2.9 kB     00:00     
httpbase/filelists_db                                                                       | 3.3 MB     00:00     
httpbase/primary_db                                                                         | 2.5 MB     00:00     
httpbase/other_db                                                                           | 1.4 MB     00:00     
Metadata Cache Created
[root@centos6 6]#yum repolist
Loaded plugins: fastestmirror, refresh-packagekit, security
Loading mirror speeds from cached hostfile
repo id                                                     repo name                           status
ftpbase                                                     ftp yum base                        3,206
httpbase                                                    http yum base 3,206
repolist: 6,412

yum源配置成,而且手动生成的repodata能正确反映rpm包的实际数目了!

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

(3)
ffuffu
上一篇 2017-06-17
下一篇 2017-06-17

相关推荐

  • 第一天参与马哥linux运维面授

    很高兴认识大家,介绍一下,我叫袁亚琼,来自美丽的云南。我是一个随和而又不随性95年女子,喜欢运动,擅长田径。学食品检测的,上学期间没怎么接触计算机,现在又来学专业计算机,内心还是有几丝恐慌,希望在今后的学习路上得到各位学友和老师的指导和帮助。等工作稳定,可以去云南放松一下,云南是个吃喝玩乐的好地方,同时也是个感受慢节奏生活的佳地。云南欢迎您哦! 选择学习li…

    Linux干货 2018-03-26
  • 利用nginx实现基于传输层的四层负载均衡

    nginx利用ngx_stream_core_module实现四层的负载均衡服务。作为四层负载均衡nginx和lvs的区别在于: lvs工作于内核层,相对来说效率更高,性能更强; nginx工作于用户空间; lvs不会受到套接字数量的限制; nginx作为四层负载均衡也需要监听套接字来和客户端,后台服务器进行连接,会受到套接字数量限制,不过这个问题可以通过k…

    2017-07-03
  • 马哥教育网络班19期+第七周课程练习

    1、创建一个10G分区,并格式为ext4文件系统;   (1) 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl;         mke2fs -b 2048 -m 2 -L 'MYDATA' -o defau…

    Linux干货 2016-06-21
  • shell脚本编程之变量

    一、创建shell脚本文件   创建shell脚本时,必须在第一行指定要使用的shell。格式为:   #!/bin/bash   通常在shell脚本中,#代表注释行,即不被执行的行,而第一行“#!”则是表示用哪个shell来执行脚本。   实例:   让我们来执行一下这个脚本:   上面的结果显…

    Linux干货 2016-02-14
  • 磁盘管理的补充及扩展

    磁盘管理的补充及扩展 挂载点和/etc/fstab(配置文件) 使用mount命令挂载为临时挂载开机重启后就会自动卸载,为了永久挂载必须写在配置文件中! 配置文件系统体系  被mount、fsck和其它程序使用  系统重启时保留文件系统体系  可以在设备栏使用文件系统卷标  使用mount  -a 命令挂载/etc/fstab中的所有文件系…

    Linux干货 2016-08-30
  • redis主/从配置及基于sentinel的故障转移

     一、NoSQL基础概念: ACID:原子性、一致性、隔离性、持久性;特性:数据量大、数据变化非常大(数据增长化、流量分布变化、数据间耦合结构变化)、数据源很多; CAP、BASECAP C:多个数据节点的的数据一致;A:用户发出请求后的有限时间范围内返回结果;P:network partition,网络发生分区后,服务是否依可用;CAP理论:一个分布式系统…

    Linux干货 2017-12-18