yum与rpm的详解 --用来安装软件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了yum与rpm的详解 --用来安装软件相关的知识,希望对你有一定的参考价值。

                   yum与rpm的详解

                          --用来安装软件

     关键字:本地yum  第三方yum  yum参数 yum软件控制 rpm参数  永久挂载   软件的依赖性

第一部分:配置本地yum源

     1.yum安装http服务,并共享给其他主机可以访问

如果在服务器不在的情况下或是无法从网上获取第三方软件时,此时,可以利用自己的镜像进行安装,需要一个与本机匹配的安装镜像,rhel-server-7.0-x86_64-dvd.iso,这个文件从官方网站下载得到

     第一步 配置本地的yum 源

脚本文件

vim yum.sh

技术分享

#!/bin/bash

########create local yum source#########

   mkdir /westos

   #该步骤的目的建立一个目录挂载镜像,挂载的意思有些文件系统会有独立的inode、block、super block等信息,这个文件系统要能够链接到目录树才能被我们使用。将文件系统与目录树结合的操作称为挂载,重点是,挂载点一定是目录 ,该目录为进入该文件系统的入口。

    mount /iso/rhel-server-7.1-x86_64-dvd.iso  /westos

    #将磁盘挂载到这个目录下

    cat >/etc/yum.repos.d/yum.repo <<end  

   编写 yum设置文件,后结尾必须是.repo文件 『后边<<end 做结束』。

   [text] 

   #仓库的名字,中括号一定要存在,里面的名称可以任意取,但是不能有两个相同的容器名称,否则yum会不知道到哪里去找仓库相关软件列表文件。

    name=software 

    #仓库的描述#

    baseurl=file:///westos

    #仓库的实际地址#

    gpgcheck=0    

    #用gpg文件检查文件的签名.是否检测软件的gpgkey,设成1的话,与系统匹配,如果出现不一样就不给装。

    End

    当然也可以加入enable=1/0 说明启用更新库,0表示不启用。

技术分享

     yum clean all

     #将之前缓存数据删除,刷新新的出来,yum会先下载仓库的清单到本机的/var/cache/yum里面去,但是我们修改了网址却没有修改容器名称(中括号内的名字),可能就会造造成本机的列表与yum服务器的列表不同步,此时就会出现无法更新的问题,解决该问题就是清除掉本机上的旧数据即可,就是用yum的 clean 参数即可。

技术分享

     第二步 安装打开本机上的http服务

######install share server##############

     yum install httpd -y

    #安装httpd服务  -y表示不提醒。

    systemctl start httpd

    #开启httpd服务。

     systemctl enable httpd

     #设置开机时自动开启httpd服务。

    systemctl disable firewalld

    #设置开机不启动防火墙。

    systemctl stop firewalld    

    #现在关掉防火墙,就是别的用户访问的时候可以访问。

第三步 分享httpd服务

#####mount iso to share directory#####

    umount /westos

     mkdir /var/www/html/rhel7.1   

     #在http服务这个默认的目录下新建一个目录,特殊的服务都有特殊的目录,执行都是要在其底下,所以要在这种默认的目录下新建个目录。

     mount /iso/rhel-server-7.1-x86_64-dvd.iso  /var/www/html/rhel7.1 

     #把镜像挂载到这个上边。

第四步 把之前新改的挂载目录重新放到配置文件中

#####cofig local yum################

    rm -rf /etc/yum.repos.d/yum.repo

    cat >/etc/yum.repos.d/yum.repo <<end

    [test]

    name=test

     baseurl=file://(访问的方式)/var/www/html/rhel7.1  

   或者可以改成 http://172.25.254.200/rhel7.1

   gpgcheck=0

    end

    至此就可以实现本地访问,如果其他主机也想要访问的话,就还是配置...repo文件,配置与第四步类似相同。

第二部分:yum相关参数功能

   yum

   yum list all ###列出所有安装包

   yum list installed ###列出已经安装的

   yum list available ###列出没有安装的

   yum remove software ###卸载软件

   yum install software ###安装软件

   yum search 关键字 ###搜索与关键字相关的软件

   yum whatprovides 文件 ###搜索包含此文件的包*/ls

   yum reinstall software ###从新安装软件

   yum localinstall 第三方软件 ###安装第三方软件并解决依赖关系

   yum info software ###查询软件信息

   yum groups list ###列出软件组,组中包含多个软件

   yum groups install ###安装组

   yum groups remove ###卸载组

    yum groups info ###查看组信息

    yum     repolist  all           ###列出目前yum server 所使用的仓库有哪些

第三部分:安装系统中没有装的软件,比如gcc

vim hello.c

#include<stdio.h>

int main(){

     printf("Hello world\n");

     return 0;

}

用gcc 编译

gcc hello.c -o hello

执行 ./hello或在./a.out

如果gcc编译时没有这个命令,可以安装上这个yum install gcc

第四部分:安装第三方软件,比如linux下的qq

    rpm -ivh /home/kiosk/Desktop/linuxqq-v1.0.2-beta1.i386.rpm

    底下会显示出安装这个软件还需要依赖的文件。然后要找到这些文件是在哪个包中:

    yum whatprovides libatk-1.0.so.0

    然后安装包含这个文件的包

第五部分:rpm命令的使用#############

    rpm ###底层软件管理工具

    -i ###install

    -v ###显示信息

    -h ###指定包的解密方式为hash

    -q ###查询

    -p ###指定软件包本身

    -l ###列出软件中文件的名字

    --scripts ###查看软件安装和卸载过程中所执行的动作

    -f ###查询某个文件属于那个安装包

    -a ###所有

    -e ###卸载

    --force ###强制

    --nodeps ###忽略依赖性

第六部分:yum软件控制

   vim /etc/yum.conf      

   #配置该文件的目的是可以屏蔽掉某些不需要安装的包。

   exclude=*.x86_64

   #忽略64位安装包。

   exclude=*.i686

   还可以再加单独的包,字符串用空格隔开,忽略32位安装包。

第七部分:第三方软件仓库的搭建

   就是如何把第三方软件包录入到yum 仓库中

   1.把所有rpm包放到指定目录中,比如方到/software中

   2.在这个目录中执行createrepo -v /software/,(创建yum仓库元数据)生成repodate目录,生成repodata文件。

   3.编写/etc/yum.repos.d/xxx.repo指定/software位yum源

技术分享

第八部分:实验补充:

    要实现永久挂载,编辑配置文件:

技术分享

技术分享

   永久挂载后,当你umount后,在用mount -a就可以实现再次挂载。

技术分享

    ###要想用ssh控制图形需要用到-X:

技术分享

技术分享

   安装有依赖性的软件:

   安装,有依赖性。

技术分享

   在所有目录中查询此软件:

技术分享

   查到,安装:

技术分享

   这样反复进行,直到解决所有依赖性。

   对于安装qq这个软件的解决方法。

技术分享

    --force   忽略依赖性,直接安装。

   查询软件:

  查询所有

  查询软件中文件的名字

技术分享

   查询指定软件包本身: 查看执行的动作:

技术分享

   下面是yum软件控制:

    Zsh软件是x86 64位软件,

技术分享

    在主配置文件中忽略32位的和64位的。

技术分享

    将配置文件改为忽略64位,则list 时就不会有64位的wps,如下:

技术分享

    ###插入 yum list 软件名称  是用来查询仓库中有的软件包的信息。

第三方软件仓库的搭建:

  首先获得包:

技术分享

    就像系统软件仓库一样,作为一个仓库最基本的是有软件包和repodata这个目录,如下:

技术分享

    所以首先要创建repodata目录:

技术分享

    配置yum  源:

技术分享

     每次配置完yum 源都要进行  yum  clean  all  和  yum  repo补全  all

下面就可以安装第三方软件了:

技术分享

技术分享

技术分享

技术分享

    Gpgcheck校验:

技术分享

技术分享

    查询软件位置:

技术分享

本文出自 “Y LINUX XF” 博客,请务必保留此出处http://yaoxiaofeng.blog.51cto.com/11915773/1852871

以上是关于yum与rpm的详解 --用来安装软件的主要内容,如果未能解决你的问题,请参考以下文章

yum管理详解

yum详解

Linux下软件安装与卸载:rpm和yum工具

yum 数据库报错与重构

记录的RPM与YUM

CentOS下YUM损坏与重建