Linux 搭建 YUM 服务器

 

之前写的2篇有关YUM文章:

       Linux yum 命令介绍

       http://www.cndba.cn/Dave/article/709

 

       Linux yum 安装

       http://blog.csdn.net/tianlesoftware/archive/2010/03/15/5381522.aspx

 

       YUMYellow dog Updater, Modified的缩写,是由Duke University所发起的计划,目的就是为了解决RPM的依赖关系的问题,方便使用者进行软件的安装、升级等等工作。在此在特别说明的是,YUM只是为了解决RPM的依赖关系的问题,而不是一种其它的软件安装模式。当然可以实现这样功能的除了YUM外,还有APT (Advanced Package Tool,是由debian所发展的一个软件管理工具)

       YUM的工作原理,在每一个 RPM软件的头(header)里面都会纪录该软件的依赖关系,那么如果可以将该头的内容纪录下来并且进行分析,可以知道每个软件在安装之前需要额外安装哪些基础软件。也就是说,在服务器上面先以分析工具将所有的RPM档案进行分析,然后将该分析纪录下来,只要在进行安装或升级时先查询该纪录的文件,就可以知道所有相关联的软件。

 

所以YUM的基本工作流程如下:

       服务器端:在服务器上面存放了所有的RPM软件包,然后以相关的功能去分析每个RPM文件的依赖性关系,将这些数据记录成文件存放在服务器的某特定目录内。

       客户端:如果需要安装某个软件时,先下载服务器上面记录的依赖性关系文件(可通过WWWFTP方式),通过对服务器端下载的纪录数据进行分析,然后取得所有相关的软件,一次全部下载下来进行安装。

 

       在这篇文章里,我们配置通过FTPYUM服务器。 RHEL的安装盘上有所有的YUM包。 我们只需要把这些YUM 软件放到硬盘上,并配置好FTP 在客户端修改相关的YUM 参数就可以了。

 

 

. 服务器端配置

1.1  安装FTP 服务,并配置自启动

[root@centos Server]# rpm -ivh vsftpd-2.0.5-16.el5.i386.rpm

warning: vsftpd-2.0.5-16.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186

Preparing...                ########################################### [100%]

   1:vsftpd                 ########################################### [100%]

[root@centos Server]# chkconfig vsftpd on

[root@centos Server]# chkconfig vsftpd --list

vsftpd          0:off   1:off   2:on    3:on    4:on    5:on    6:off

[root@centos Server]# service vsftpd restart

Shutting down vsftpd:                                      [FAILED]

Starting vsftpd for vsftpd:                                [  OK  ]

[root@centos Server]#

 

linux FTP 的配置,在下篇文章里会做说明, 这篇只演示如何使用。

 

 

1.2 复制RPM

       RHEL 5光盘中的ServerVTClusterClusterStorage四个目录复制到/var/ftp/pub下。

 

[root@centos RHEL_5.4 i386 DVD]# du -k

253     ./Cluster/repodata

69571   ./Cluster

143     ./ClusterStorage/repodata

10300   ./ClusterStorage

10546   ./Server/repodata

2626369 ./Server

182     ./VT/repodata

47724   ./VT

8512    ./images/pxeboot

8914    ./images/xen

166766  ./images

8646    ./isolinux

2934671 .

[root@centos RHEL_5.4 i386 DVD]# cp -rf Cluster /var/ftp/pub/

[root@centos RHEL_5.4 i386 DVD]# cp -rf ClusterStorage /var/ftp/pub/

[root@centos RHEL_5.4 i386 DVD]# cp -rf VT /var/ftp/pub/           

[root@centos RHEL_5.4 i386 DVD]# cp -rf Server/ /var/ftp/pub/

 

 

[root@centos pub]# pwd

/var/ftp/pub

[root@centos pub]# ls

Cluster  ClusterStorage  Server  VT

[root@centos pub]# du -k

276     ./Cluster/repodata

69816   ./Cluster

10584   ./Server/repodata

2638388 ./Server

160     ./ClusterStorage/repodata

10468   ./ClusterStorage

200     ./VT/repodata

47924   ./VT

2766600 .

[root@centos pub]#

 

1.3. 安装createrepo包,并重建包依赖关系

       createrepo包是用来生成RPM 依赖关系及分组信息的。 搭建YUM服务器,必须要重建着2个信息。

 

1.3.1 检查包安装情况

[root@centos Server]# rpm -q yum

yum-3.2.22-20.el5.centos

[root@centos Server]# rpm -q createrepo

package createrepo is not installed

[root@centos Server]# rpm -ivh createrepo-0.4.11-3.el5.noarch.rpm

warning: createrepo-0.4.11-3.el5.noarch.rpm: Header V3 DSA signature: NOKEY, key ID 37017186

Preparing...                ########################################### [100%]

   1:createrepo             ########################################### [100%]

[root@centos Server]# rpm -q createrepo

createrepo-0.4.11-3.el5

[root@centos Server]#

 

1.3.2 重建分组及依赖关系

 

       RHEL 5中每个目录下的repodata目录下都有一个repomd.xml,该文件中就记录了rpm包的依赖关系,还有一个comps-rhel5-*.xml文件,这个文件主要记录分组情况,建立yum仓库时,需要先重建该文件。

 

[root@centos repodata]# pwd

/var/ftp/pub/Server/repodata

[root@centos repodata]# ls

comps-rhel5-server-core.xml  filelists.xml.gz  other.xml.gz  primary.xml.gz  repomd.xml  TRANS.TBL

 

重建Server

[root@centos pub]# createrepo -g /var/ftp/pub/Server/repodata/comps-rhel5-server-core.xml /var/ftp/pub/Server/

2292/2292 - xorg-x11-xinit-1.0.2-15.el5.i386.rpm    --这里有2千多个包                          

Saving Primary metadata

Saving file lists metadata

Saving other metadata

[root@centos pub]#

 

重建VT

[root@centos pub]# createrepo -g /var/ftp/pub/VT/repodata/comps-rhel5-vt.xml /var/ftp/pub/VT/

36/36 - Virtualization-or-IN-5.2-11.noarch.rpm                                  

Saving Primary metadata

Saving file lists metadata

Saving other metadata

 

重建Cluster:

[root@centos pub]# createrepo -g /var/ftp/pub/Cluster/repodata/comps-rhel5-cluster.xml /var/ftp/pub/Cluster/

32/32 - Cluster_Administration-zh-TW-5.2-1.noarch.rpm                          

Saving Primary metadata

Saving file lists metadata

Saving other metadata

 

重建ClusterStorage

[root@centos pub]# createrepo -g /var/ftp/pub/ClusterStorage/repodata/comps-rhel5-cluster-st.xml /var/ftp/pub/ClusterStorage/

39/39 - Global_File_System-or-IN-5.2-1.noarch.rpm                              

Saving Primary metadata

Saving file lists metadata

Saving other metadata

[root@centos pub]#

 

1.4 修改YUM 配置文件

       在每个客户端使用YUM时,必须需要修改配置文件。

       我们先看文件: /etc/yum.repos.d/*.repo 这个文件名称可以随便定义,但是扩展名必须是repo.

      

[root@centos pub]# cat /etc/yum.repos.d/CentOS-Base.repo

[base]

name=CentOS-$releasever - Base

mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os

#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5

...

 

这个是我CentOS上的部分内容。 其他的类似。 这个文件其实是在使用yum安装的客户端使用的。 我们在服务器创建这个配置文件的原因是方便使用。 假如在公司里的Linux客户端非常多,我们不必去修改每个客户端的这个YUN配置文件。 只需要从服务器上将这个文件下载到本机就可以了。

 

YUM服务器上创建文件:

[root@centos pub]# cat /etc/yum.repos.d/rhel54.86.repo   

[rhel-base]

name= TianleSoftware Redhat Enterprise 5.4

baseurl=ftp://192.168.6.2/pub/Server

gpgcheck=0

enabled=1

 

[rhel-vt]

name= TianleSoftware Redhat Enterprise 5.4

baseurl=ftp://192.168.6.2/pub/VT

gpgcheck=0

enabled=1

 

[rhel-cluster]

name= TianleSoftware Redhat Enterprise 5.4

baseurl=ftp://192.168.6.2/pub/Cluster

gpgcheck=0

enabled=1

 

[rhel-ClusterStorage]

name= TianleSoftware Redhat Enterprise 5.4

baseurl=ftp://192.168.6.2/pub/ClusterStorage

gpgcheck=0

enabled=1

 

       说明: 这里提供的只是一个FTP地址,所以可以使用其他的方式来实现FTP 不一定非要像第一步里说明的,使用LINUXFTP

 

相关参数说明:

       [ ]内的是仓库的名字,不重复即可。

       name仓库的描述.

       baseurl: YUM源地址, 这里配置的是FTP,还可以是HTTP,FILE等。

       enabled 是否启用这个仓库,1为起用,0为禁用
       gpgcheck
:是否检查GPG签名(验证要安装的包是不是REDHAT官方的)。

 

. 客户端配置

 

 

[root@singledb yum.repos.d]# cd /etc/yum.repos.d/                    

[root@singledb yum.repos.d]# wget ftp://192.168.6.2/pub/rhel54.86.repo

--2011-01-03 11:39:53--  ftp://192.168.6.2/pub/rhel54.86.repo

           => `rhel54.86.repo.1'

Connecting to 192.168.6.2:21... connected.

Logging in as anonymous ... Logged in!

==> SYST ... done.    ==> PWD ... done.

==> TYPE I ... done.  ==> CWD /pub ... done.

==> SIZE rhel54.86.repo ... 471

==> PASV ... done.    ==> RETR rhel54.86.repo ... done.

Length: 471

 

100%[==========================================================>] 471         --.-K/s   in 0s     

 

2011-01-03 11:39:53 (23.6 MB/s) - `rhel54.86.repo.1' saved [471]

 

[root@singledb yum.repos.d]# yum update

Loaded plugins: rhnplugin, security

This system is not registered with RHN.

RHN support will be disabled.

rhel-ClusterStorage                                                          | 1.1 kB     00:00    

rhel-ClusterStorage/primary                                                  | 8.3 kB     00:00    

rhel-ClusterStorage                                                                           39/39

rhel-base                                                                    | 1.1 kB     00:00    

rhel-base/primary                                                            | 806 kB     00:00    

rhel-base                                                                                 2292/2292

rhel-cluster                                                                 | 1.1 kB     00:00    

rhel-cluster/primary                                                         | 5.9 kB     00:00    

rhel-cluster                                                                                  32/32

rhel-vt                                                                      | 1.1 kB     00:00    

rhel-vt/primary                                                              | 9.0 kB     00:00    

rhel-vt                                                                                       36/36

Skipping security plugin, no data

Setting up Update Process

No Packages marked for Update

 

yum 安装 ant

[root@singledb yum.repos.d]# yum -y install ant

Loaded plugins: rhnplugin, security

This system is not registered with RHN.

RHN support will be disabled.

Setting up Install Process

Resolving Dependencies

--> Running transaction check

---> Package ant.i386 0:1.6.5-2jpp.2 set to be updated

--> Processing Dependency: xml-commons-apis for package: ant

--> Running transaction check

---> Package xml-commons-apis.i386 0:1.3.02-0.b2.7jpp.10 set to be updated

--> Processing Dependency: xml-commons = 1.3.02-0.b2.7jpp.10 for package: xml-commons-apis

--> Running transaction check

---> Package xml-commons.i386 0:1.3.02-0.b2.7jpp.10 set to be updated

--> Finished Dependency Resolution

 

Dependencies Resolved

 

====================================================================================================

 Package                    Arch           Version                        Repository           Size

====================================================================================================

Installing:

 ant                        i386           1.6.5-2jpp.2                   rhel-base           2.0 M

Installing for dependencies:

 xml-commons                i386           1.3.02-0.b2.7jpp.10            rhel-base            19 k

 xml-commons-apis           i386           1.3.02-0.b2.7jpp.10            rhel-base           335 k

 

Transaction Summary

====================================================================================================

Install      3 Package(s)        

Update       0 Package(s)        

Remove       0 Package(s)        

 

Total download size: 2.4 M

Downloading Packages:

(1/3): xml-commons-1.3.02-0.b2.7jpp.10.i386.rpm                              |  19 kB     00:00    

(2/3): xml-commons-apis-1.3.02-0.b2.7jpp.10.i386.rpm                         | 335 kB     00:00    

(3/3): ant-1.6.5-2jpp.2.i386.rpm                                             | 2.0 MB     00:00    

----------------------------------------------------------------------------------------------------

Total                                                               3.3 MB/s | 2.4 MB     00:00    

Running rpm_check_debug

Running Transaction Test

Finished Transaction Test

Transaction Test Succeeded

Running Transaction

  Installing     : xml-commons                                                                  1/3

  Installing     : xml-commons-apis                                                             2/3

  Installing     : ant                                                                          3/3

 

Installed:

  ant.i386 0:1.6.5-2jpp.2                                                                          

 

Dependency Installed:

  xml-commons.i386 0:1.3.02-0.b2.7jpp.10         xml-commons-apis.i386 0:1.3.02-0.b2.7jpp.10       

 

Complete!

[root@singledb yum.repos.d]#

 

 

 

 

------------------------------------------------------------------------------

QQ:492913789

Email:ahdba@qq.com

Blog: http://www.cndba.cn/dave 


网上资源: http://tianlesoftware.download.csdn.net

相关视频:http://blog.csdn.net/tianlesoftware/archive/2009/11/27/4886500.aspx

DBA1 群:62697716(); DBA2 群:62697977()

DBA3 群:62697850   DBA 超级群:63306533;    

聊天 群:40132017

--加群需要在备注说明Oracle表空间和数据文件的关系,否则拒绝申请

  • 0
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
### 回答1: 要在Linux搭建yum仓库,需要按照以下步骤进行操作: 1. 安装httpd和createrepo软件包,这两个软件包是搭建yum仓库的基础。 2. 创建一个目录,用于存放rpm软件包,例如/var/www/html/yum。 3. 将需要添加到yum仓库的rpm软件包复制到该目录下。 4. 运行createrepo命令,生成repodata目录和相关文件,例如:createrepo /var/www/html/yum。 5. 配置httpd服务,将/var/www/html/yum目录设置为httpd服务的根目录,并启动httpd服务。 6. 在客户端上配置yum仓库,将仓库的baseurl设置为http://<yum服务器IP>/yum。 7. 完成上述步骤后,就可以使用yum命令从yum仓库中安装软件包了。 需要注意的是,搭建yum仓库需要一定的Linux基础知识和操作经验,建议在操作前先备份重要数据,以免造成不必要的损失。 ### 回答2: yum是一种用于在Linux操作系统中,自动从互联网上下载安装的软件包的软件工具。在Linux系统中,Yum仓库是用于存储Linux软件包和相关依赖关系的仓库。通过搭建自己的Yum仓库,可以更方便地管理软件包、集中控制软件版本,提高软件部署效率和安全性。 首先需要在服务器上安装httpd服务,以便于其他客户端可以通过http协议访问yum仓库。 接着需要安装createrepo工具,用于创建软件仓库的元数据。首先将准备好的软件包上传到web服务器指定的目录下,执行以下命令: $ createrepo --database /path/to/my_repo/ 注意:此处的/path/to/my_repo/指的是存储软件包的目录。 然后修改httpd服务的配置文件httpd.conf,将软件仓库的目录加入到httpd服务中: Alias /my_repo /path/to/my_repo/ <Directory /path/to/my_repo/> Options Indexes FollowSymLinks MultiViews Require all granted </Directory> 接着保存并重启httpd服务: $ systemctl restart httpd 最后,在客户端的yum配置文件(/etc/yum.repos.d)中添加新的仓库。例如,创建一个新的仓库文件my_repo.repo: [my_repo] name=My Repo baseurl=http://server_ip/my_repo enabled=1 gpgcheck=0 注意:此处的server_ip指的是Yum仓库所在服务器的实际IP地址。 现在可以使用yum命令来从你自己的仓库中安装软件包了: $ yum install package_name 通过以上步骤,就可以成功地搭建自己的Yum仓库了,方便地进行软件包管理、版本控制和软件部署。 ### 回答3: Linux是一种非常流行的操作系统,拥有一个强大的社区和开源生态系统。Linux搭建yum仓库是一种在Linux上管理软件包的常用方法。yum仓库是一种软件库,用于安装、更新和卸载软件包。在yum仓库中,您可以找到和下载大量的软件包。以下是如何搭建一个yum仓库的步骤。 1.准备环境 在搭建yum仓库之前,需要准备一个Linux机器,此处以CentOS为例。还需要一个HTTP服务器,这里使用Apache。确保系统已经安装了必要的软件包,如:httpd、createrepo和yum-utils。 2.配置HTTP服务器 yum使用HTTP和FTP来获取和安装软件包,因此需要配置一个HTTP服务器。可以使用Apache来搭建一个HTTP服务器。打开Apache配置文件,位置在/etc/httpd/conf/httpd.conf,搜索DocumentRoot,将其修改为所需目录,例如/var/www/html。 在此之后,启用Apache服务,这可以通过执行以下命令实现:systemctl enable httpd.service systemctl start httpd.service 3.创建yum仓库 将需要的rpm包拷贝到一个目录中,模拟一个yum仓库服务器。使用createrepo来创建仓库,这个工具会扫描指定目录中的所有rpm包并生成仓库的索引信息。 在httpd的DocumentRoot目录下,创建一个子目录yum,然后将rpm包放在这个目录下。使用createrepo工具来生成仓库索引。命令为createrepo /var/www/html/yum。 4.配置yum仓库文件 yum使用repo文件来指定软件源,新建一个*.repo文件,例如:centos7.repo,将其保存在/etc/yum.repos.d/目录下。编辑文件,添加如下内容: [base] baseurl=http://localhost/yum/ gpgcheck=0 enabled=1 在这个文件里,baseurl是yum仓库服务器的地址,gpgcheck是指是否检查GPG密钥,enbled设置为1表示该软件源可用。 5.测试yum仓库 现在,yum仓库已经配置好了,可以测试yum是否连接到了这个新的软件源。执行以下命令: yum clean all yum list 如果您可以看到新安装的rpm包,说明yum已经成功连接到了新的yum仓库服务器。 总结: 搭建yum仓库是非常方便的,您可以使用已有的HTTP服务器来构建,然后使用createrepo对rpm包进行索引。通过配置*.repo文件,您可以轻松地将新的软件源添加到yum,并使用yum命令来获取、安装和卸载rpm包。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值