如何练好yum的一招一式

 

工作时间越久,就越有这样一个深刻体会,一个新知识或者新的技能一个人学习起来并不会觉得吃力,反而要想把你学习的新知识或者新技能给讲清楚让普通人听得懂才是最难的,之前我写过一篇博客讲述linux下的RPM包管理器,今天写的练好yum的一招一式,同样都是都是在linux系统的软件包的安装、卸载、升级等功能的,为什么我们还需要yum那,记得一位大哲学家黑格尔说说过这样一句话“存在即合理”,yum的存在也有合乎情理的,首先让我们来弄明白yum是什么?

yum全称为 Yellow dog Updater, Modified,是一个以rpm为基础包能够从指定的服务器自动下载rpm包,并且自动解决各软件包的依赖性关系,一次性安装好所有制定的软件包的一个工具,我想,稍微接触过linux的人都知道rpm包管理器出现,主要是解决早期linux系统管理过程中源代码安装的不便以及效率底下的问题,虽然rpm很好的提高了软件安装的效率,但是rpm依然没有解决各软件包之间的依赖关系,而yum的出现就是自行解决了各软件包直接的依赖关系,从而又将软件安装的效率往前推了一步。

首先让我们先了解一下yum能为我们做什么,yum的主要功能有三类,仓库管理;软件包管理;软件包组的管理,接下来我们详细来看yum的三大功能和使用方法:

yum的命令形式一般是如下:yum [options] [command] [package …]

其中的[options]是可选的, [command]为所要进行的操作,[package …]是操作的对象。

1、仓库管理yum的仓库管理主要有列出已经配置到的所有可用仓库、缓存管理、以及自动连接至每个仓库下载元数据,将其创建缓存

列出可用仓库:yum     repolist [all|enabled|disabled]       

         缓存管理:yum      clean [ packages | metadata | expire-cache | rpmdb | plugins | all ]

         创建缓存:yum      makecache

2、软件包管理yum对于程序包的管理主要包括:程序包的列出、程序包的安装、指定程序包的重新安装、程序包的升级、程序包的降级、程序包的卸载、程序包的查询、程序包的搜索等功能;

程序包的列出:yum list

   

程序包的安装:yum install

此时安装程序包只需要提供程序包名就可以安装指定的程序包,如果该指定的程序包有在指定的仓库中有不同版本,默认会安装最新版本。

指定程序包的重新安装:yum reinstall

程序包的升级:yum update

程序包的降级:yum downgrade

程序包的卸载:yum remove

     执行该命令,所有依赖于正卸载的程序包也会一并卸载

程序包的查询:yum info

程序包的搜索:yum search

3、程序包组管理:程序包组管理的与程序包管理类似,主要包括:显示列出所有包组、显示包组详情、安装包组、卸载包组、升级包组;

显示列出所有包组:yum grouplist

显示包组详情:yum groupinfo
安装包组:yum groupinstall

卸载包组:yum groupremove

升级包组:yum groupupdate

以上都是yum的常用命令,同时yum还有常用的选项

     -y:表示自动回答为YES

     –disablerepo=   :临时禁用指定的仓库

–enablerepo=    :临时启用指定的仓库

–nogpgchenk:禁止包检验

 

 

知道了yum能为我们做什么,那如何使用yum的这些功能那,我们前面曾说过早期的linux安装程序包是通过直接对源代码的重新编译、设置一系列的环境变量和配置文件来时间软件的安装,而rpm将安装的软件先编译并打包,通过包装好的套件中默认的数据库记录来实现对软件包的安装卸载等查询工作,最大的特点就是省去编译的过程,但是各软件包之间的依赖关系却需要管理员自行手动解决,而yumrpm为基础包,通过读取rpmheader对于该rpm的描述、功能、提供的文件、依赖性等信息,并加以分析出来,自行解决依赖各软件包的依赖关系,大大提供的部署系统的效率,我们都知道,linux有一个重要的哲学思想,就是一切皆文件,所以对于yum的配置就不得不说yum的配置文件,yum的配置文件有两类,下面来认识一下yum的配置文件;

主配置文件:/etc/yum.conf

    该配置文件是为各仓库指向提供公共的配置信息

各仓库定义的配置文件:/etc/yum.repo.d/*.repo

    给配置文件是仓库位置的指向以及各种配置信息,该配置文件都以”.repo”结尾,每个repo配置文件中可以配置一个或多个仓库;

[  ]  :当中是唯一表示该仓库的名字,所以必须唯一,不能与其他仓库重复,

name= :是对当前仓库的描述信息

baseurl=  :指明repositouy的访问路径,支持ftp服务器、http服务器、nfs服务器、或本地目录;

enabled= 0|1}:指明该仓库是否可被使用

gpgcheck=0|1}:指明是否对程序包做合法性、完整性验证

gpgkey=  :指明gpgkey的文件路径

cost=  :指明当前repositouy的访问开销

 

下面我们将以CentOS6.7为平台,创建自己的第一个本地yum

通常情况下,创建本地yum源,也就是以CentOS6.7光盘为yum仓库从而实现对yum源的配置,步骤如下:

     1:挂载光盘到:/mnt/cdrom

          mount  /dev/cdrom /mnt/cdrom

     2:创建配置文件:vim  /etc/yum.repo.d/localbase.repo

          [localbase]

name=centOS6

baseurl=file:///mnt/cdrom/

gpgcheck=0

enable=0

注意:如果是以本地某个目录为yum源,需要检查该目录是否有repodata文件,如果没有该文件需要执行createrepo

 

    3:执行yum repolist查看创建的yum源是否生效

repolist.jpg    4:测试安装httpd软件

install.jpg

       这时候我们已经看到yum为我们找到了安装http软件包,并且安装成功

原创文章,作者:zhang,如若转载,请注明出处:http://www.178linux.com/9194

(1)
zhangzhang
上一篇 2015-11-10
下一篇 2015-11-10

相关推荐

  • Linux Services and Security–part2

    一、请描述一次完整的http请求处理过程 (1).建立或处理连接:接收请求或拒绝请求; (2).接收请求:接收来自于网络上的主机请求报文中对某特定资源的一次请求的过程; 接收请求的模型: 并发访问响应模型: 单进程I/O模型:启动一个进程处理用户请求;这意味着,一次只能处理一个请求,多个请求被串行响应; 多进程I/O结构:并行启动多个进程,每个进程响应一个请…

    Linux干货 2017-11-13
  • Linux 文本查看及处理工具&&用户和组管理

    1、列出当前系统上所有已登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 ~]# who | cut -d ' ' -f 1 | sort -u 2、取出最后登入到当前系统的相关信息。 ~]# last&…

    Linux干货 2016-10-05
  • Bash脚本写法及变量如何使用

    Bash是什么? bash脚本是作为linux执行与内核交互的一个方便快捷的脚本语言工具。它可以帮助我们快速的解决问题。 Bash写法: 需要创建一个文件,以.sh结尾。这样就生成一个脚本文件 我们文件内容开头要以#!/bin/bash 开头,这是脚本规定的格式,目的是告诉编译器我们这个脚本是bash类型的脚本。 当上述工作都做好以后,我们就可以正式开始脚本…

    Linux干货 2017-04-10
  • ldd 的一个安全问题

    我们知道“ldd”这个命令主要是被程序员或是管理员用来查看可执行文件所依赖的动态链接库的。是的,这就是这个命令的用处。可是,这个命令比你想像的要危险得多,也许很多黑客通过ldd的安全问题来攻击你的服务器。其实,ldd的安全问题存在很长的时间了,但居然没有被官方文档所记录来下,这听上去更加难以理解了。怎么?是不是听起来有点不可思议?下面,让我为你细细道来。 首…

    Linux干货 2016-05-05
  • LVS实际操作与调度方法

    LVS概念、类型、调度方法、命令操作与实际配置 字数2134 阅读4 评论0 喜欢1 LVS (一)LVS概念 LVS( Linux Virtual Server)是一种负载均衡(LB,Laod Balance)技术,采用IP负载均衡技术和基于内容请求分发技术。具有很好的吞吐率,将请求均衡地转移到不同的服务器上执行。LVS是一套…

    Linux干货 2016-10-30
  • 千万不要把 bool 设计成函数参数

    我们有很多Coding Style 或 代码规范。但这一条可能会经常被我们所遗忘,就是我们经常会在函数的参数里使用bool参数,这会大大地降低代码的可读性。不信?我们先来看看下面的代码。 当你读到下面的代码,你会觉得这个代码是什么意思? widget->repaint(false); 是不要repaint吗?还是别的什么意思?看了文档后,我们才知道这个…

    Linux干货 2016-07-10

评论列表(1条)

  • stanley
    stanley 2015-11-10 22:42

    名字起的很吸睛,内容也有血有肉,格式上稍做修改优化一定上头条!