热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

Linux下使用Yum管理本地软件包(repository)

在Linux系统的维护中,Linux软件包之间的依赖性是一件令人十分头痛的事情。比如你要安装软件包A,但是安装的时候提示你在安装A前得先安装软件包B;而当你去安装软件包B时,又提示你得先安装C库...为了解决此问...

在Linux系统的维护中,Linux软件包之间的依赖性是一件令人十分头痛的事情。比如你要安装软件包A,但是安装的时候提示你在安装A前得先安装软件包B;而当你去安装软件包B时,又提示你得先安装C库... 为了解决此问题,我们得使用Linxu下的yum(Yellow dog Updater,Modified) 工具。yum工具能根据repository(软件仓库)中rpm包的各种header信息,自动安装依赖的包,解决依赖性问题。在linux下使用yum的添加/删除/更改rpm包十分方便!


下面是linux下一个简单的yum配置和使用过程:
1. 实验环境
操作系统:Red Hat Enterprise Linux AS 5
内核版本:2.6.18-8.el5
CPU构架:i386 SMP
附件软件:Red Hat Enterprise Linux AS 5 DVD ISO文件


2. 在linux下安装yum并建立repository(软件仓库)

    #在linux系统下挂载rhel 5.0 dvd iso文件 
    mkdir -p /mnt/iso 
    mount -o loop /opt/rhel5.0.iso /mnt/iso 
    
    #在linux系统下安装yum,createrepo包 
    rpm -ivh /mnt/ISO/Server/yum-3.0.1-5.el5.noarch.rpm 
    rpm -ivh /mnt/ISO/Server/yum-metadata-parser-1.0-8.fc6.i386.rpm 
    rpm -ivh /mnt/ISO/Server/yum-rhn-plugin-0.4.3-1.el5.noarch.rpm 
    rpm -ivh /mnt/ISO/Server/yum-updatesd-3.0.1-5.el5.noarch.rpm 
    rpm -ivh /mnt/ISO/Server/createrepo-0.4.4-2.fc6.noarch.rpm 
    
    #将挂载的iso中的文件复制到/opt/rhel5.0目录中 
    mkdir /opt/rhel5.0
    cp -R /mnt/ISO/* /opt/rhel5.0
    
    #重新生成repository(软件仓库)相关文件,生成的文件在当前目录的“repodata”文件夹下。
    cd /opt/rhel5.0/Server/ 
    rm -rf repodata 
    createrepo -g /mnt/ISO/Server/repodata/comps-rhel5-server-core.xml ./ 


3. 在linux配置yum
在/etc/yum.repos.d/目录下建立一个后缀为.repo的配置文件,如:rhel_yum.repo(该目录下的其他文件可以删除),rhel_yum.repo内容如下:此文来自:http://www.aiezu.com/

    [Server] 
    name=Server 
    baseurl=file:///opt/rhel5.0/Server/
    #注意baseurl指向我们的repository(软件仓库)/opt/rhel5.0/Server目录 
    enable=1 
    gpgcheck=0

此文来自:http://www.aiezu.com/
4. 测试rhel5.0 linux下的yum

    #清除yum设置缓存     
    yum clean all    
    
    #查看已安装的和未安装的软件包组   
    yum grouplist   
    
    #安装Web Server包组   
    yum groupinstall "Web Server"
    
    #查看组信息  
    yum groupinfo "Web Server"
    此文来自:http://www.aiezu.com/
    #删除"MySQL Database" 
    yum groupremove "MySQL Database"
    
    #升级"MySQL Database" 
    yum groupupdate "MySQL Database"

 

5. linux下yum安装的常见问题

①. 问:为什么要把挂载的ISO镜像中的文件复制到本地磁盘上,而不直接在挂载的iso文件系统中使用?
  答:因为我们必须重新生成repository的相关配置文件,而挂载的iso文件系统是不可写的,所以必须复制到本地磁盘中去。
②. 问:当我们配置好后执行 "yum groupinstall 'MySQL Database' " 安装时报如下错误,是怎么回事?

    yum groupinstall "MySQL Database"
    Loading "installonlyn" plugin 
    Loading "rhnplugin" plugin 
    This system is not registered with RHN. 
    RHN support will be disabled. 
    Setting up Group Process  此文来自:http://www.aiezu.com/
    Setting up repositories 
    Setting up repositories 
    Reading repository metadata in from local files 
    primary.xml.gz            100% |=========================| 663 kB    00:00
    ################################################## 2113/2113 
    Resolving Dependencies 
    --> Populating transaction set with selected packages. Please wait. 
    ---> Downloading header for mysql to pack into transaction set. 
    media://1170972069.396645%232/mysql-5.0.22-2.1.i386.rpm: [Errno 4] IOError:  
     此文来自:http://www.aiezu.com/
     
    Trying other mirror. 
    Error: failed to retrieve mysql-5.0.22-2.1.i386.rpm from s 
    error was [Errno 4] IOError:

  答:请确定"/etc/yum.repos.d/rhel_yum.repo"文件中的"baseurl"指向的不是挂载的iso文件系统路径,而是本地磁盘文件系统路径,如此文的第三步的中的第三行。并且确定使用了第二步的第九行重新生成了repository配置文件。其实"media://1170972069.396645#1"就是rhel 5.0 dvd iso 中的Server/repodata/repomd.xml文件的配置值。此文来自:http://www.aiezu.com/
③. 问:为什么我执行"yum grouplist"命令后没有列出任何包组信息?如下:

    #yum grouplist 
    Loading "installonlyn" plugin 
    Loading "rhnplugin" plugin 
    This system is not registered with RHN. 
    RHN support will be disabled. 
    Setting up Group Process 
    Setting up repositories 
    Server                    100% |=========================|  951 B    00:00
    Done

答:请确定执行了createrepo命令重新生成repository配置文件,并且命令带了 "-g"选项,如第二步第19行所示。rhel 5.0 dvd iso中的"Server/repodata/comps-rhel5-serer-core.xml"即包含了rpm包的分组信息。


推荐阅读
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • CentOS7源码编译安装MySQL5.6
    2019独角兽企业重金招聘Python工程师标准一、先在cmake官网下个最新的cmake源码包cmake官网:https:www.cmake.org如此时最新 ... [详细]
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
  • 在哈佛大学商学院举行的Cyberposium大会上,专家们深入探讨了开源软件的崛起及其对企业市场的影响。会议指出,开源软件不仅为企业提供了新的增长机会,还促进了软件质量的提升和创新。 ... [详细]
  • 使用Vultr云服务器和Namesilo域名搭建个人网站
    本文详细介绍了如何通过Vultr云服务器和Namesilo域名搭建一个功能齐全的个人网站,包括购买、配置服务器以及绑定域名的具体步骤。文章还提供了详细的命令行操作指南,帮助读者顺利完成建站过程。 ... [详细]
  • MySQL缓存机制深度解析
    本文详细探讨了MySQL的缓存机制,包括主从复制、读写分离以及缓存同步策略等内容。通过理解这些概念和技术,读者可以更好地优化数据库性能。 ... [详细]
  • MySQL 数据库迁移指南:从本地到远程及磁盘间迁移
    本文详细介绍了如何在不同场景下进行 MySQL 数据库的迁移,包括从一个硬盘迁移到另一个硬盘、从一台计算机迁移到另一台计算机,以及解决迁移过程中可能遇到的问题。 ... [详细]
  • Hadoop入门与核心组件详解
    本文详细介绍了Hadoop的基础知识及其核心组件,包括HDFS、MapReduce和YARN。通过本文,读者可以全面了解Hadoop的生态系统及应用场景。 ... [详细]
  • 基于KVM的SRIOV直通配置及性能测试
    SRIOV介绍、VF直通配置,以及包转发率性能测试小慢哥的原创文章,欢迎转载目录?1.SRIOV介绍?2.环境说明?3.开启SRIOV?4.生成VF?5.VF ... [详细]
  • 探讨如何真正掌握Java EE,包括所需技能、工具和实践经验。资深软件教学总监李刚分享了对毕业生简历中常见问题的看法,并提供了详尽的标准。 ... [详细]
  • 探讨如何从数据库中按分组获取最大N条记录的方法,并分享新年祝福。本文提供多种解决方案,适用于不同数据库系统,如MySQL、Oracle等。 ... [详细]
  • 本文详细记录了在基于Debian的Deepin 20操作系统上安装MySQL 5.7的具体步骤,包括软件包的选择、依赖项的处理及远程访问权限的配置。 ... [详细]
  • Navicat Premium 15 安装指南及数据库连接配置
    本文详细介绍 Navicat Premium 15 的安装步骤及其对多种数据库(如 MySQL 和 Oracle)的支持,帮助用户顺利完成软件的安装与激活。 ... [详细]
  • 优化 Android 按钮状态下的背景和文本颜色变化
    本文介绍如何通过 Android 的 Selector 实现按钮在不同状态下(如按压)的背景和文本颜色动态变化。我们将详细讲解实现步骤,并提供完整的代码示例。 ... [详细]
author-avatar
侯贵聪_680
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有