三种方法部署YUM软件仓库

    通过源码编译的方式安装程序在灵活性、可定制性方面具有无可比拟的优势,但也给管理员带来了额外的维护开销,并且在大规模的服务器群应用时存在一定的局限性。而传统的USB光驱、移动硬盘等安装方式显然已经力所难及。借助于YUM软件仓库,可以完成安装、卸载、升级rpm软件包等任务,能够自动查找并解决rpm包之间的依赖关系,使管理员在维护大量的Linux服务器时更加轻松自如。特别是在拥有大量Linux主机的本地网络中,构建一台源服务器可以大大缓解软件安装、升级等对Internet的依赖



部署YUM软件仓库

    要成功使用YUM机制来更新系统和软件,需要有一个包含各种rpm安装包文件的软件仓库,提供软件仓库的服务器称为源服务器。在客户机中只要正确指定软件仓库的地址等信息,就可以通过对应的源服务器来安装、更新软件了

杨书凡14.png

1. 准备网络安装源(服务器端)

    YUM软件仓库通常借助于HTTP或FTP协议进行发布,这样可以面向网络中所有的客户机提供软件源服务。为了便于客户机查询软件包、获取依赖关系等信息,在软件仓库中需要提供仓库数据(Repodata),其中收集了目录下的所有rpm包的头部信息


2. 配置软件仓库位置(客户机端)

    在客户机上需要制定至少一个可用的软件仓库,然后才能使用yum工具进行下载、安装软件包



一、将本地文件夹配置为YUM软件仓库

    这种方式配置的YUM仓库仅限于在本机使用

1
2
3
4
5
6
7
8
9
10
11
[root@localhost ~] # mount /dev/cdrom /media/                   //挂载系统光盘
mount : block device  /dev/sr0  is write-protected, mounting  read -only
[root@localhost ~] # mkdir /home/localrpm                 //创建本地软件仓库目录
[root@localhost ~] # cp -rf /media/* /home/localrpm     //将系统光盘内数据复制到目录下,包含repodata数据文件
 
[root@localhost ~] # vim /etc/yum.repos.d/local.repo       //编写yum配置文件
[ local ]                                      // 仓库类别
name=rhel                                   // 描述、说明
baseurl= file : ///home/localrpm              //URL 访问路径
enabled=1                                   //1 表示启用此仓库,0表示不启用;默认启用,可省略
gpgcheck=0                                  // 验证软件包的签名,0表示不验证;若无此要求,可省略



二、用FTP部署YUM软件仓库

(1)服务器端

    在REHL系统的安装光盘中,已经针对软件目录Packages建立好了repodata数据。对于用户收集的非REHL系统光盘自带的其他软件包,还需要使用createrepo工具手动创建repodata文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
[root@localhost ~] # mount /dev/cdrom /media/               //挂载系统光盘
mount : block device  /dev/sr0  is write-protected, mounting  read -only
[root@localhost ~] # yum -y install vsftpd                  //使用本地yum安装vsftpd服务    
Installed:
   vsftpd.x86_64 0:2.2.2-11.el6_4.1                                                                        
Complete!
[root@localhost ~] # chkconfig vsftpd on                    //启动vsftpd服务
[root@localhost ~] # service vsftpd start
  
[root@localhost ~] # mkdir /var/ftp/rhel                 //创建系统软件仓库目录
[root@localhost ~] # cp -rf /media/* /var/ftp/rhel/      //将系统光盘内数据复制到目录下,包含repodata数据文件
 
[root@localhost ~] # mkdir /var/ftp/other                //创建用户收集的软件仓库目录,需要使用createrepo工具手动创建repodata文件
[root@localhost ~] # yum -y install createrepo           //使用本地yum安装createrepo软件包
[root@localhost ~] # createrepo --database /var/ftp/other/         //创建repodata文件
Saving Primary metadata
Saving  file  lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete
 
[root@localhost ~] # iptables -I INPUT -p tcp --dport 20:21 -j ACCEPT      //允许FTP流量访问本服务器
[root@localhost ~] # modprobe ip_conntrack-ftp                             //需要手动加载FTP模块


(2)客户机端

    yum工具使用的软件仓库信息存放在/etc/yum.repos.d目录中下扩展名为“.repo”的文件中

1
2
3
4
5
6
7
8
9
10
11
12
[root@localhost ~] # vim /etc/yum.repos.d/ysf.repo       //编写yum配置文件
[base]                                      // 仓库类别
name=rhel                                   // 描述、说明
baseurl= ftp : //192 .168.1.1 /rhel              //URL 访问路径
enabled=1                                   //1 表示启用此仓库,0表示不启用;默认启用,可省略
gpgcheck=1                                  // 验证软件包的签名,0表示不验证;若无此要求,可省略
gpgkey= file : ///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release   // 验证需要指定GPG公钥文件的位置,
[other]
name=othet
baseurl= ftp : //192 .168.1.1 /other
enabled=1
gpgcheck=0



三、用HTTP部署YUM软件仓库

(1)服务器端

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
[root@localhost ~] # mount /dev/cdrom /media/               //挂载系统光盘
mount : block device  /dev/sr0  is write-protected, mounting  read -only
[root@localhost ~] # yum -y install httpd                  //使用本地yum安装httpd服务    
[root@localhost ~] # chkconfig httpd on                    //启动httpd服务
[root@localhost ~] # service httpd start
 
[root@localhost ~] # mkdir /var/www/html/rhel                 //创建系统软件仓库目录
[root@localhost ~] # cp -rf /media/* /var/www/html/rhel/      //将系统光盘内数据复制到目录下,包含repodata数据文件
 
[root@localhost ~] # mkdir /var/www/html/other           //创建用户收集的软件仓库目录,需要使用createrepo工具手动创建repodata文件
[root@localhost ~] # yum -y install createrepo           //使用本地yum安装createrepo软件包
[root@localhost ~] # createrepo --database /var/www/html/other/         //创建repodata文件
Saving Primary metadata
Saving  file  lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete
 
[root@localhost ~] # iptables -I INPUT -p tcp --dport 80 -j ACCEPT    //允许HTTP流量访问本服务器


(2)客户机端

1
2
3
4
5
6
7
8
9
10
11
12
[root@localhost ~] # vim /etc/yum.repos.d/ysf.repo       
[base]                                     
name=rhel                                 
baseurl=http: //192 .168.1.1 /rhel             
enabled=1                                  
gpgcheck=1                                 
gpgkey= file : ///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release 
[other]
name=othet
baseurl=http: //192 .168.1.1 /other
enabled=1
gpgcheck=0



使用yum工具管理软件包

    下面列出以下常用的yum命令

1. 查询软件包

(1)yum list——查询软件包列表

    可以获得系统中的软件安装情况,也可以获得软件仓库中可用的软件包列表

1
2
3
4
5
[root@localhost ~] # yum list installed      //列出系统已安装的软件包
[root@localhost ~] # yum list available      //列出软件仓库中可用的软件包(未安装)
[root@localhost ~] # yum list updates        //列出可以升级版本的软件包
[root@localhost ~] # yum list yum\*          //列出所有以yum开头的软件包
[root@localhost ~] # yum grouplist           //列出YUM仓库中的软件分组信息


(2)yum info——查询软件包的描述信息

1
2
[root@localhost ~] # yum info httpd          //查看软件包httpd的信息
[root@localhost ~] # yum groupinfo desktop    //列出软件分组Desktop所包含的软件包等信息

    

(3)yum search——查询指定的软件包

    根据某个关键词来查找相关的软件包,默认根据软件包名称和描述信息进行搜索

1
2
[root@localhost ~] # yum search http      //搜索软件仓库中的软件包名称或描述信息包含“http”的软件包
[root@localhost ~] # yum search all http     //搜索软件仓库中与“http”相关的软件包


2. 清除yum缓存

   yum会把下载的软件包和header存储在cache中,而不会自动删除。如果我们觉得它们占用了磁盘空间,可以使用yumclean指令进行清除,更精确的用法是yumclean headers清除header,yum cleanpackages清除下载的rpm包,yum cleanall 清除所有

1
[root@localhost ~] # yum clean all        //清空/var/cache/yum目录下的缓存数据


3. 安装、升级、卸载软件包

    使用yum工具安装、卸载软件包,执行操作时自动检查并解决软件包之间的依赖关系,期间会提示用户按Y键确认安装,可在yum命令后加“-y”选项,指定确认  

1
2
3
4
5
6
7
8
9
10
[root@localhost ~] # yum update                    //升级系统
[root@localhost ~] # yum install 软件包            //安装指定软件包
[root@localhost ~] # yum update 软件包             //升级指定软件包
[root@localhost ~] # yum remove 软件包             //卸载指定软件包
[root@localhost ~] # yum deplist 软件包            //查询指定软件包的依赖关系
[root@localhost ~] # yum localinstall 软件包       //从磁盘安装rpm包并使用yum解决依赖
 
[root@localhost ~] # yum groupinstall 软件组       //安装指定软件组中的软件包
[root@localhost ~] # yum groupupdate 软件组        //更新指定软件组中的软件包
[root@localhost ~] # yum groupremove 软件组        //卸载指定软件组中的软件包


4. yum高级管理应用技巧

技巧1:加快你的yum的速度.使用yum的扩展插件yum-fastestmirror,个人认为这个插件非常有效,速度真的是明显提高

1
[root@localhost ~] # yum -y install yum-fastestmirror   //在CentOS上,名字叫yum-plugin-fastestmirror


技巧2:扩展你的rpm包好多包官方没有,怎么搞定他.要我自己编译吗?你可以自己到http://dag.wieers.com/rpm这来找


技巧3:还是有rpm包找不到怎么办,你可以用高级查找http://rpm.pbone.net/,基本上可以搜集齐全


技巧4:软件组安装有时我们安装完系统,管理有一类软件没有安装,比如用于开发的开发包,我们可以用软件包来安装。

1
2
3
4
5
[root@localhost ~] # yum -y groupinstall "Development Libraries"
[root@localhost ~] # yum -y groupinstall "Development Tools"    //安装用于开发的软件包
 
[root@localhost ~] # yum -y groupinstall "Chinese Support"      //安装用于中文支持的软件包
[root@localhost ~] # yum deplist package1                       //查看程序package1依赖关系


技巧4:关于其他知识,可以通过man命令查看

1
2
3
4
5
6
7
8
[root@localhost ~] # man yum
 
yum -y  install  软件包(支持*)       // 自动选择y,全自动
yum  install  软件包(支持*)          // 手动选择y or n
yum remove 软件包(不支持*)
rpm -ivh 软件包(支持*)             // 安装rpm包
rpm -e 软件包(不支持*)             // 卸载rpm包
yum  install  kernel-headers kernel-devel     // 升级内核











本文转自 杨书凡 51CTO博客,原文链接:http://blog.51cto.com/yangshufan/2058477,如需转载请自行联系原作者
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值