yum仓库的搭建

 YUM仓库服务

借助于YUM软件仓库,可以完成安装、卸载、自动升级rpm软件包等任务,能够自动查找并解决rpm包之间的依赖关系,而无需管理员逐个、手工地去安装每一个rpm包,使管理员在维护大量linux服务器时更加轻松自如。特别是在拥有大量linux主机的本地网络中,构建一个源服务器可以大大缓解软件安装、升级等对于Internet的依赖。

实验案例:软件仓库部署及应用

实验环境:

随着公司内部的linux服务器不断增多,软件更新、系统升级等需求也逐渐凸显出来,为了提高软件包管理效率、减少重复下载,公司要求部署一台软件仓库服务器,面向内网提供安装源。

需求描述:

  1. 1.    服务器使用RHEL6操作系统,IP地址为192.168.1.1
  2. 2.    基于FTP方式为其他服务器提供软件安装源,使用yum命令安装软件。
  3. 3.    软件仓库中的所有软件包来自于RHEL6DVD光盘以及第三方组织的RPM包的集合。

实验步骤:

一、部署yum服务端;

Rpm软件包来源:

1)、Red Hat公司发布的RPM集合;

2)、第三方组织的RPM包集合

3)、用户自定义的RPM包集合

 

  1. 1.    使用虚拟机开启一台RHEL6系统作为YUM服务器,配置主机IP地址为192.168.1.1

[[email protected]~]#vim/etc/sysconfig/network-scripts/ifcfg-eth0

  1. 2.    准备软件仓库目录

创建目录/var/ftp/rhel6

[[email protected] ~]#mkdir –p /var/ftp/rhel6

挂载RHEL6系统光盘到目录/media下,

[[email protected] ~]#mount /dev/cdrom /media

并将RHEL6光盘中的内容复制到该目录下。

[[email protected] ~]# cp –r./* /var/ftp/rhel6/

注:在rhel_6.0-i386-DVD的目录结构:

四大数据库:

HighAvailability:高可用相关软件包,如rhcs等相关套件。

LoadBalancer:  负载均衡相关软件包,如lvs,pirihan

ResilientStorage:存储数据库头信息。

Server:       常规软件包,如mysql,httpd,开发工具,系统管理工具等。

其他:

Packages:       真正存放所有软件包的目录。

Images rhel:安装进程所需要的引导和驱动镜像文件。

Islolinux:镜像文件引导时所需要的文件。

3.安装并启用vsftpd服务

安装vsftpd服务,

[[email protected] ~]# rpm –ivh/var/ftprhel6/Packages/vsftpd -2.2.2-6.el6_0.1.i686.rpm

赋予vsftpd开机自动启动权限,

[[email protected] ~]# chkconfig vsftpd on

启动vsftpd服务

[[email protected] ~]# service vsftpd start

注意:一般在公司中都会安装防火墙,在平时做实验的时候进行测试可以关闭防火墙;

[[email protected] ~]#service iptables stop

但是在公司中关闭防火墙对于公司来说是非常危险的;所以建议大家在防火墙上开启例外端口来保证数据的正常传输。

[[email protected] ~]#iptables –I INPUT –p tcp –dport 21 –j ACCEPT

添加支持FTP的模块:

[[email protected] ~]#modprobe ip_conntrack_ftp

保存对iptables防火墙所进行的修改,

[[email protected] ~]#service iptables save

启动iptables防火墙;

[[email protected] ~]#service iptables start

二、配置yum客户端

   (一)客户端通过FTP的方式访问

   1. 1)、在/etc/yum.repo.d目录下创建一个以.repo结尾的文件:

[[email protected] ~]# vim/etc/yum.repos.d/yum.repo

[Server]  //仓库名称

name=Server  //仓库描述信息

baseurl=ftp//192.168.1. 1/rhel6/Server    //URL访问路径

enabled=1    //启用此软件仓库(1表示“是”;2表示“否”)

gpgcheck=0   //是否验证软件包的签名(1表示“是”;2表示“否”)

[LoadBalancer]

name=LoadBalancer

baseurl= ftp//192.168.1.1/rhel6/LocaBalancer

enabled=1

gpgcheck=0

[HighAvailability]

name=HighAvailability

baseurl= ftp//192.168.1.1/rhel6/HighAvailability

enabled=1

gpgcheck=0

[ResilientStorage]

name=ResilientStorage

baseurl= ftp//192.168.1.1/ /rhel6/ResilientStorage

enabled=1

gpgcheck=0

验证:在客户端上安装rpm包,例如:bind

如果可以下载的话,那么你的yum服务器就表示搭建好了!!!

注:

注:通过HTTP的方式,与ftp方法类似

   (二)、配置YUM服务器作为本机的客户端。

    RHEL6系统上搭建的YUM服务器既可以作为服务端为其他主机提供RPM包安装服务,又可以作为客户端,为本机提供RPM包安装服务等。

 以上述的RHEL6系统为例:

1)、在/etc/yum.repo.d目录下创建一个以.repo结尾的文件:

[[email protected] ~]# vim/etc/yum.repos.d/yum.repo

[Server]  //仓库名称

name=Server  //仓库描述信息

baseurl=file:///var/ftp/rhel6/Server   //URL访问路径

enabled=1    //启用此软件仓库(1表示“是”;2表示“否”)

gpgcheck=0   //是否验证软件包的签名(1表示“是”;2表示“否”)

[LoadBalancer]

name=LoadBalancer

baseurl=file///var/ftp/LoadBalancer

enabled=1

gpgcheck=0

[HighAvailability]

name=HighAvailability

baseurl=file:///var/ftp/rhel6/HighAvailability

enabled=1

gpgcheck=0

[ResilientStorage]

name=ResilientStorage

baseurl=file:///var/ftp/rhel6/ResilientStorage

enabled=1

gpgcheck=0

三、对于用户搜集的非RHEL6光盘的更多其他软件包(必须包括存在依赖关系的所有安装文件,除了应准备相应的目录以外,还需要手动创造repodata数据文件,这就需要用到createrepo工具(RHEL6光盘中存在)

Createrepoa主要用于收集目录中的rpm包文件的头信息,以创建repodata软件仓库数据(经gzip压缩的xml文件)。

Openvas为例:

(1)          挂载光盘

 [[email protected] ~]# mount /dev/cdrom/media/

(2)           下载createrepo工具

[[email protected]~]#rpm -ivh /media/Packages/createrepo-0.9.8-4.el6.noarch.rpm

注意:安装createrepo包时要依赖以下两个包:deltarpmpython-deltarpm,不能忽略这两个包

 3)、安装FTP服务器

[[email protected] ~]# rpm –ivh /media/Packaged/vsftpd-2….(tab键自动补齐)

 4)、在/var/ftp/创建一个为other的文件。

[[email protected] ~]# mkdir /var/ftp/other

5)、将第三方rpm包全部复制到/var/ftp/other文件里

6)、创建软件仓库信息文件:

 [[email protected] ~]# createrepo --database/var/ftp/other

7)、在客户端上创建扩展名为.repo的文件,内容如下:

以本地作为yum客户端为例:

[[email protected] ~]# vim /etc/yum.repos.d/yum.repo

 [other]

 name=other

 baseurl=file:///var/ftp/other

 enabled=1

 gpgcheck=0

8)、安装other中的任意软件进行测试。

四、以上可能出现的问题解决方法:

1.如果首次安装软件包之后,再次安装别的软件包的时候,很可能会发现报错了,错误信息如下:

Error:Cannot retrieve repository metadata (repomd.xml) for repository:

InstallMedia, Please verify its path and try again.

原因:

   rhel6在首次读取该软件仓库之后,将一同被你拷贝到软件仓库目录的yum.repo复制一份到/etc/yum.repos.d/,而该文件也就是导致本地yum源失效的罪魁祸首。

解决方法:

 删除软件仓库中的多余文件

[[email protected] ~]# rm –rf /etc/yum.repos.d/packagekit-media.repo

2.如果安装软件包是出现“public key for ……rpmis not install”。

解决方法:导入完整性验证的公钥

#mount /dev/sr0 /media

#rpm –import /media/RPM-GRG-KEY-redhat-release
3.
yum服务器开启了selinux功能,客户端通过yum安装会失败。

解决方法:

1)、关闭selinux 功能setenforce 0

2)、setsebool allow_ftpd_full_access on

五、常用yum命令

YUM命令格式:

yum <options> <command> <package…>

相关参数说明:

常用的options

-y:如果在工作过程中如果需要使用者响应,这个参数可以直接回答yes

Command

list: 列出在yum server 上面有的rpm套件,

yum list installed 表示只列出系统中已安装的软件包

yum list available 表示只列出软件仓库尚未安装的软件包

yum list update  表示可以列出可以升级版本的软件包

install安装某个套件

update:升级某个套件,如果update后面没有接套件名称,即更新目前主机所有已安装的套件

info   列出某个套件的详细信息,相当于rpm –qi package 内容

clean  将已下载到本机的packagesheaders移除。

remove: 移除已经安装在系统中的某个套件

yum update  全部更新、

yum update package  更新指定程序包package

yum check-update    检查可更新的程序

yum info <package>显示安装包信息

yum list显示所有已经安装和可以安装的程序包

yum list  <package>显示指定程序包安装情况

yum search <keyword>:查找软件包

yum search all +关键词:可以扩大搜索范围

yum clean headers清除header

yum clean packages清除下载的rpm

yum clean all清除headerrpm

yum grouplist列出所有组

yum groupinstall 软件组名:安装某个软件组名

示例:安装Postfix邮件服务器

#yum groupstall postfix

 

 

 

时间: 2024-10-07 21:39:36

yum仓库的搭建的相关文章

yum仓库客户端搭建和NTP时间同步客户端配置

一.yum仓库客户端搭建 yum源仓库搭建分为服务器端和客户端. 服务端主要提供软件(rpm包)和yumlist.也就是提供yum源的位置.一般是通过http或者ftp提供位置. 客户端的配置:yum配置文件位置:/etc/yum.repos.d/ 1 [[email protected] yum.repos.d]# rm -f /etc/yum.repos.d/* 2 [[email protected] yum.repos.d]# vim repo_yck.repo [yck_repo] #

从建立yum仓库到搭建ftp以及http服务

1 什么是yum仓库 yum工作需要依赖C/S架构工作模式的文件服务器,服务器中存放了yum工作时所需的程序包.yum接收到需要安装的程序包的名称之后,通过文件共享协议(或者文件传输协议),在配置文件中指向的yum仓库(可以是多个)中查询需要的程序包.找到之后,通过文件下载协议,将程序包下载至本地yum的缓存目录中,当安装完成后,缓存目录便会被删除 yum的配置文件位置在/etc/yum.repos.d/base.repo,用vim工具编辑下. yum内容格式: 1 [base] 2 name=

第十三章 软件的安装/yum仓库的搭建

                                                       *****软件安装**************1.软件名称识别*******[abrt-addon-ccpp]-[2.1.11-19].[e17].  [x86_64].rpm        /*rpm结尾的适用与redhat操作系统    ||        ||    ||      ||    软件名称         软件版本  软件适用系统   64位*******2.如何安装

linux下yum常用方法及本地yum仓库的搭建

yum--rpm包管理工具 使用方法: yum install -y vim-enhanced     (安装 vim-enhanced 包) yum remove  vim-enhanced     (卸载 vim-enhanced 包) yum list     (列出rpm包库,网络资源) yum list |grep vim     (列出带vim字符的包,包带@的是已经安装过的,没有带的是还未安装过的) yum update     :     yum upgrade     (升级系

yum仓库源搭建

本地yum源搭建 cd源 mount /dev/sr0 /mnt vim  /etc/yum.repos.d/base.repo [centos-base]name=centos7#baseurl=file:///var/www/html/centos/baseurl=file:///mntenabled=1gpgcheck=0 yum clean all yum makecache yum repolist iso源 mount -o loop centos7.4.iso /mnt 同上 ht

如何搭建yum仓库与定制rpm包

当我们自动仳部署集群的时候,想要快速的安装所有服务,搭建yum仓库与定制rpm包是我们首先要做的 原创作品,转载请注明出处.http://www.cnblogs.com/Csir/  本人导师---悠久之翼 #服务端1.#先保留平常下载下来的rpm包 sed -i 's#keepcache=0#keepcache=1#g' /etc/yum.conf 这样当我们yum安装软件的时候,文件就是被保存下来: /var/cache/yum/ #部署nginx,提供80端口服务#安装依赖包 yum in

LNMP环境搭建之--YUM仓库

前言: 其实快速完成集群环境交付的技术方案有很多,有最原始的编译-tar-scp分发-解压:有自动化工具 saltstack.puppet.Ansible的批量部署:也有高大上的openstack虚拟机镜像和docker容器分发技术.环境越复杂,技术要求就越来越高,想学更自动化的工具技术也得弄懂简单环境快速部署原理,硅步千里. 一.为什么要搭建yum仓库 对比Linux安装软件的三种方式 1)编译安装:编译参数复杂.编译计算耗时长 2)yum安装:完全自动化,解决所有软件依赖问题:但是软件安装不

搭建yum仓库远程登陆Win7系统

实验目的:Linux实现镜像文件自动挂载,搭建yum仓库,配置远程桌面功能,可以远程控制win7系统 1.找到/dev目录下的cdrom并挂载(自己创建挂载路径本实验用的是/mnt)2.安装远程连接所需软件包如下图所示:3.检查/etc/yum.repos.d目录下内容,将该目录下内容删除干净,否则会影响yum仓库的搭建:配置yum仓库:4.使用"yum install rdesktop -y"命令检查yum软件仓库是否已经可用.(中间省略部分内容)5.对win7 IP进行设置,并检查

linux局域网搭建yum仓库(本地(file)、网络(ftp、http))

yum配置文件解释: [ ]:定义仓库,base为仓库的名字,可任意 name:仓库的简短文字描述 baseurl:仓库的位置,file://表示本地路径,/mnt为本地光盘路径,网络路径为:http,ftp enabled :是否启用仓库,1为启用,0为禁用 gpgcheck :是否检查GPG签名(用来验证安装包是否为红帽子官方的) GPGKEY :指定GPG签名的秘钥文件存放路径 一.本地搭建yum仓库 1.1首先挂载光盘,并查看是否挂载成功,   #sr0是光盘  以前的是cdrom 1.