zoukankan      html  css  js  c++  java
  • Linux软件包安装(yum)

      YUM

      从某种意义上来看,红帽企业版5.0开始,软件包的部署是基于网络的。而在5.0之前的软件包的部署可以是基于本地的。yum安装可以解决rpm安装产生的数据包依赖问题。

      在yum服务器上需要有几个仓库:

      Server:安装各种各样的服务器

      VT:实现虚拟化

      Cluster:群集

      ClusterStorage:存储相关

      yum的实现需要有服务器和客户端。首先要解决的是客户端如何访问仓库。一般情况下可以使用ftp、http、nfs等网络协议来访问。下面以搭建一台ftp服务器,并将光盘文件都拷贝到/var/ftp/目录下,因为访问ftp服务器的时候,客户端直接登录到这个目录下。

      

      服务器端编辑好后,编辑客户端的yum配置文件:

      

      该配置文件说明了可以在该文件中编辑yum仓库,或者在/etc/yum.repos.d目录下创建后缀名为repo的文件来编辑仓库。通常情况下是在/etc/yum.repos.d目录下创建仓库文件。

    [root@localhost ftp]# vim /etc/yum.repos.d/rhel-debuginfo.repo
    [rhel-server]  表示要访问的对方有一个什么样的仓库。本地叫法repoID。
    name=Red Hat Enterprise Linux server  仓库的描述信息
    baseurl=file:///mnt/cdrom/Server/  如何访问仓库
    enabled=1  是否使用仓库
    gpgcheck=1  是否完整性检测
    gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-redhat-release  指明公钥文件

      修改该文件为如下内容:

      

      在本地查看服务器上能够识别的仓库有哪些:

      

      列出所有的软件包:yum list all

      查看安装的软件包:yum list installed

      查看没有安装的软件包:yum list available

       查看数据包的相关信息:yum info vsftpd

      安装:yum install -y 包名称

      卸载:yum remove 包名称

      查看服务器上有多少包组:yum grouplist 

      安装包组:yum groupinstall 包组名称

      删除包组:yum groupremove 包组名称

      查看组的相关信息:yum groupinfo 包组名称

    问题:添加新的软件包,同时让客户端去使用,怎么做?

    思路:在服务器端/var/ftp/下的Server目录、VT目录、Cluster目录以及ClusterStorage目录下都有一个repodata目录:

    [root@localhost ftp]# cd Server/
    [root@localhost Server]# ll repodata/
    total 10580
    -r--r--r-- 1 root root 1139 Aug 19 2009 TRANS.TBL
    -r--r--r-- 1 root root 1027241 Aug 19 2009 comps-rhel5-server-core.xml(表示该Sever目录里面的组文件,这些软件包归类到哪个组里面,是一个分类文件)  
    -r--r--r-- 1 root root 2416156 Aug 19 2009 filelists.xml.gz(描述所有软件包的相关信息,后来拷贝进去的软件包,还没有更新进去
    -r--r--r-- 1 root root 6599203 Aug 19 2009 other.xml.gz(其他的文件)
    -r--r--r-- 1 root root 749780 Aug 19 2009 primary.xml.gz(主要的文件)
    -r--r--r-- 1 root root 1314 Aug 19 2009 repomd.xml(校验文件)

      正是因为这些相关信息没有更新,所以在客户端上找不到刚放进去的新的软件包。客户端在找数据包的时候,就是基于这些文件来找的。

      步骤:(在服务器端)

      1、清除缓存文件:yum clean all

      2、yum list all  将repodata里面的相关信息缓存到本地。

      3、rpm -ivh createrepo-0.4.11-3.el5.noarch.rpm

      4、cd /var/ftp/Server()

      5、createrepo -g repodata/comps-rhel5-server-core.xml ./ (更新文件的时候主要更新comps-rhel5-server-core.xml这个文件。如果数据包放在其他目录,那么在其他目录执行该命令即可。)

      下面演示将libmcrypt-2.5.7-5.el5.i386.rpm放入服务器的/var/ftp/Server目录中,并进行yum安装。

      

      在客户端通过yum list all 找不到新放进去的软件包。

      在服务器端更新相关文件:

      

      

      

      更新好文件之后,在客户端执行如下指令,即可发现新放入的软件包:

      

      接下来在客户端安装该软件包:

      

      提示没有安装成功,没有该软件包数字签名的公钥。由于这个包并不是红帽官方所提供出来的。所以不能用红帽的公钥。解决的办法是在安装的时候加上参数 --nogpgcheck。

      

      

      安装成功。

  • 相关阅读:
    扩展方法 之 Asp.Net篇【转】
    PowerDesiGner数据库设计
    DataFormatString格式化字符串的总结
    C#序列化对象为XMl于反序列化
    c# 反射初探【转】
    事件驱动的javascript 【转】
    每日一题力扣598
    每日一题力扣283
    每日一题力扣189数组的旋转 取模这个想法好棒!
    每日一题力扣119杨辉三角
  • 原文地址:https://www.cnblogs.com/reagina/p/6345108.html
Copyright © 2011-2022 走看看