架设yum服务器

一、原理

服务器端:

    存放所有的rpm软件包,通过命令分析rpm包之间的依赖关系,将这些依赖关系记录成文件存放在服务器上。

客户端:

    配置yum配置文件,安装某个软件包,通过yum服务器上记录的依赖关系,自动解决rpm软件包的依赖关系。

目的:

自动解决rpm软件包的依赖关系,自动下载安装。


###分析安装软件依赖管理

man rpm

-R, --requires

              List capabilities on which this package depends.

rpm -q --requires vsftpd-2.2.2-11.el6_3.1.x86_64.rpm 

###分析软件包

# rpm -qf `which yum`

yum-3.2.29-40.el6.centos.noarch

配置文件

# rpm -ql yum-3.2.29-40.el6.centos.noarch

logfile=/var/log/yum.log  #日志文件

CentOS-Base.repo#官方提供的yum源

CentOS-Media.repo#本地yum源

  删除其它三个文件

*********************************************************************************

###yum源

[root@nan2 yum.repos.d]# pwd

/etc/yum.repos.d

[root@nan2 yum.repos.d]# cat CentOS.repo 

[Packages]

name=Packages

baseurl=ftp://10.201.1.221/Packages

gpgcheck=0

enabled=1

~~~~~~~~~~~~~~~~~~

出现错误:

   当安装软件时,退出,后台在运行

解决方法:

ps -ef |grep yum #后台所有进程

kill -9 1091     #杀进程

~~~~~~~~~~~~~~~~~~

###yum命令

 查看yum安装包 list是查出yum里存在的软件

[root@nan2 yum.repos.d]# yum list|grep vsftpd

vsftpd.x86_64       2.2.2-11.el6_3.1               Packages 

   #Packages是没有安装

 删除安装的软件

]# yum remove vsftpd-2.2.2-11.el6_3.1.x86_64

 安装软件

   #-y是不需要手动输入y,但一般不建议

 清理缓存

# yum clean all

**********************************************************************************

1.建立本地软件仓库

1)挂载光盘
mount /dev/cdrom /mnt/dvd

2) 建立本地配置文件
[CentOS6-Media]                      #容器的名称,尽量跟软件包
name=CentOS-$releasever - Media      #说明
baseurl=file:///share/               #目录
gpgcheck=1                           #gpg校检
enabled=1                            #是否可用
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6  #密钥

[root@nan2 yum.repos.d]# mkdir /share/               #把目录复制到/share/
[root@nan2 share]# cp -rf /mnt/dvd/* .

2.FTP软件仓库

因为复制的文件比较大,所以如果空间不够,需要添加一个硬盘!!!!
如果空间足够,就不需要增加磁盘空间:

虚拟机设置
fdisk /dev/sdb  #新增一个硬盘(a,b,c....)
新增 n
安装 partprobe  
mkfs -t ext4 /dev/sdb1         #格式化
mount /dev/sdb1 /share/        #挂载
fdisk -l

dumpe2fs /dev/sdb1 |grep UUID  #查看UUID
***设置自动挂载****
vim /etc/fstab                 #手工分区挂载
UUID=  /share  ext4  defaults  #根据配好的配置
init 6
df -lh

正式创建ftp软件仓库

(1)复制镜像文件到share
shell>mkdir /share
shell>mount /dev/cdrom /mnt/dvd
shell>cp -rf /mnt/dvd/* .
(2)安装vsftp,配置CentOS-ftp.repo文件
shell>cd /share/Centos
shell>rpm -ivh vsftpd-2.0.5-28.el5.x86_64.rpm
shell> pwd
/etc/yum.repos.d
shell>rm -fr *
shell>cat CentOS-ftp.repo 
[Packages]
name=Packages
baseurl=ftp://10.90.2.48/Packages
gpgcheck=0
enable=1
shell>yum clean all
(3)保障匿名可以访问,匿名根目录/share
shell> vim /etc/vsftpd/vsftpd.conf 
anonymous_enable=YES
anon_upload_enable=YES
anon_root=/share
shell> /etc/init.d/vsftpd restart
(4)创建软件仓库
shell>pwd
/share/CentOS
shell>rpm -ivh createrepo-0.4.11-3.el5.noarch.rpm 
shell>cd /share
shell>createrepo -v -g repodata/repomd.xml .
shell>createrepo -v -g /share/repodata/repomd.xml /share/CentOS
repodate数据库是精确描述一个rpm包的详细信息,如依赖关系,包含关系,校验码等信息。
repomd.xml描述其他元数据文件的文件。相当与其它数据的索引。包含其它文件的时间戳和校验值。
这样客户端只要下载这一文件,就可以知道其他文件中哪些有更新
(5)测试
shell>yum clean all
shell>yum list
###出现错误:
Loaded plugins: fastestmirror, security
Determining fastest mirrors
ftp://10.90.2.48/Packages/repodata/repomd.xml: [Errno 4] IOError: [Errno ftp error] 550 Failed to change directory.
Trying other mirror.
Error: Cannot retrieve repository metadata (repomd.xml) for repository: Packages. Please verify its path and try again
###解决方法:
shell>ps -ef|grep yum 
进程杀掉
再yum list


















你可能感兴趣的:(架设yum服务器)