YUM使用

目录

Yum使用

目的

  1. 如何使用yum软件管理工具;
  2. 如何将rpm包放置到yum服务器上;
  3. 配置好客户端的yum源;

yum介绍

  • yum(Yellow dog Updater, Modified)是redhat系列(包括CentOS、SUSE、Fedora等发行版本)操作系统特有的软件管理工具,类似FreeBSD的port和Debian的apt-get,当然yum有着更强大的功能,无论是图形还是文字界面上的。

yum常用命令

  1. yum search

    • yum search主要用于查找yum服务器(remote)上的软件包,一般低版本的yum会给出详细的版本和描述信息,高版本的yum则只给出简单的描述信息;
    • yum search后面接的包名称可以使用shell里面的POSIX正则的通配,比如"*"、"[:alnum:]"等,可以通过管道(|)和shell的各种特点来缩小范围,达到精确的搜索结果;
  2. yum install
    • yum install主要用于安装yum服务器上的软件包;
    • yum install默认安装是带询问提示,如果不想提示,则需要加上"-y"的选项
    • yum install一般和yum search结合使用;
  3. yum list
    • yum list一般是用来查找目前机器上(local)已经安装了哪些软件包;
    • yum list与rpm -qa等效,可以结合管道和shell里面的各种特性达到查询的目的;
  4. yum clean
    • yum clean是主要用来清除一些临时文件和yum下载服务器的一些repo等缓存信息;
    • 当服务器刚刚更新软件包后,yum search并不能马上找到服务器上的更新,需要yum clean清除repo信息的缓存后,才能yum install,具体用法可以查看yum clean的帮助;
    • yum clean可以后面接all清除一切缓存信息;

yum服务器

rpm软件包放置的一点小知识

  1. 目前世界上的服务器的操作系统根据cpu寻址的型号,一般分为32位和64位操作系统;
  2. 通常来说i386、i486、i586、i686都属于32位带宽Intel构架(IA32:32 bits Intel Architecture),可以表示为x86_32,但是一般不这么表示,直接用x86来表示;同理,64位带宽Intel构架一般用x86_64来表示
  3. 一般来说,i386是基于80386的cpu,后续的x86都是以80386为基础扩展而来.i486指的是基于intel 80486cpu的体系结构,i586指的是基于intel奔腾I代的cpu,i686指的是基于奔腾II/III以上的cpu;
  4. 操作系统中:
[[email protected] ~]$uname -a
  Linux yum.xxx.com 2.6.9-67.ELsmp #1 SMP Wed Nov 7 13:58:04 EST 2007 i686 i686 i386 GNU/Linux

这三个红色标记代表的含义如下:

machine hardware name:i686
  processor type:i686
  hardware platform:i386

通常,标有i686的rpm包能在奔腾二代以上的CPU上执行,支持i686的机器向下兼容i386的包,只是不能发挥更佳的效能。而硬件只支持i386的处理器平台,则不能上i686的rpm包。

rpm软件包命名

  • rpm软件包命名有自己的规范,一般来说是软件名称-版本号-发行号.系统名称.系统平台.rpm,举例说明一下:
syncengine-1.0.2-10.fc10.x86_64.rpm
  syncengine: 软件名称
  1.0.2: 版本号
  10: 发行号或发行标记,可以使用alpha(A)、debug(D)、beta(B)、release(R)四个版本,某些情况也可以使用test(T)
  fc10: 表示对应于Fedor10的发行版的Linux
  x86_64: 系统平台的版本,通常有i386等,如果是noarch则表示对硬件没有级别限制
  rpm: 后缀名称,如果是以.src.rpm为后缀的,说明包中还同时带有软件的原代码

rpm软件包目录放置

  • 以某机器为例,首先登录到 yum.xxx.com 服务器上;
  • 进入到放置rpm包的目录下,比如 /home/yum/xxx 目录下,这下面是yum.xxx.com的yum源位置;
  • 目录下一般有4AS、5AS等目录,这些目录指 Red Hat Enterprise Linux 4 Advanced Server 或 Red Hat Enterprise Linux 5 Advanced Server,简称RHEL4或4AS、RHEL5或5AS;
  • 根据所在机器的属性,选择相对应的目录进入,这里选择 4AS 目录;
  • 4AS目录下面一般有几个目录:
|-- SRPMS
|-- RPMS
|   |-- i386
|   |-- i486
|   |-- i586
|   |-- i686
|   |-- noarch
|   `-- x86_64
  • 其它目录,比如 5 目录一样也是类似结构,根据机器的配置信息(可用 uname -a 进行查看),进入相应的目录,这里选择x86_64;
  • 然后将已经编译好的rpm软件包(syncengine-1.0.2-10.rhel4.x86_64.rpm)放置到x86_64目录下即可;

服务器上repo的更新

  • 上面说到在yum服务器上,我们已经将rpm包放置好了,但是这样还不行,因为服务器上repo文件没有更新,这个文件相当于索引文件,如果没有更新,我们在客户端使用yum命令的时候,就不会得到更新的rpm包;
  • 一般来说,到当前放置rpm软件包的目录下执行命令:
createrepo -p --update -o . .

这里有一个可批量更新样例脚本如下所示:

#!/bin/bash
# $Id: updaterepo.sh 783 2009-02-25 15:01:53Z gaosy $

CR="/usr/bin/createrepo"
RHELMAJ="4 5"
ARCH="i386 SRPMS x86_64"
BRANCH="current stable test"

# for abc.com
BASEDIR="/home/yum/abc"
for r in $RHELMAJ
do
	for a in $ARCH
	do
		for b in $BRANCH
		do
			cd $BASEDIR/$r/$a/$b
				$CR -p --update -o . .
		done
	done
done

# for xyz
BASEDIR="/home/yum/xxx"
ARCH="i386 SRPMS x86_64 noarch"
for r in $RHELMAJ
do
	for a in $ARCH
	do
		cd $BASEDIR/$r/$a
			$CR -p --update -o . .
	done
done

YUM="/usr/bin/yum"
$YUM makecache
  • 完成更新后,使用yum makecache制作一下缓存,服务器端的配置就算完成了。

yum客户端

客户端配置

  • yum的设置在 /etc/yum.conf 文件中:
[main]
  cachedir=/var/cache/yum
  keepcache=0
  debuglevel=2
  logfile=/var/log/yum.log
  distroverpkg=redhat-release
  tolerant=1
  exactarch=1
  obsoletes=1 gpgcheck=1 plugins=1

  # Note: yum-RHN-plugin doesn‘t honor this.
  #metadata_expire=1h

  # Default.
  # installonly_limit = 3 

  # PUT YOUR REPOS HERE OR IN separate files named file.repo
  # in /etc/yum.repos.d

其中 gpgcheck 可以设置为 0,表示不检查gpg密钥,但是这样会导致软件的安装源不会受到信任检查,发生安全隐患。

客户端repo配置

  • 在目录 /etc/yum.repos.d 下,比如有一个 xxx.repo 文件,这里面主要存放服务器的repo路径信息,如下所示:
[xxxbase]
  name=Base PKG by ASC
  baseurl=http://yum.xxx.com/xxx/$releasever/$basearch enabled=1
  gpgkey=http://yum.xxx.com/xxx/RPM-GPG-KEY-xxx [xxxnoarch]
  name=Noarch PKG by ASC
  baseurl=http://yum.xxx.com/xxx/$releasever/noarch enabled=1
  gpgkey=http://yum.xxx.com/xxx/RPM-GPG-KEY-xxx [xxxsrpms]
  name=SRPMS by ASC
  baseurl=http://yum.xxx.com/xxx/$releasever/SRPMS enabled=1
  gpgkey=http://yum.xxx.com/xxx/RPM-GPG-KEY-xxx

可以通过 enabled=1来开关yum源,通过gpgkey更换yum源的公钥,当然新版本的yum会有更多的选项供使用者来配置。

时间: 2024-11-07 05:38:19

YUM使用的相关文章

centos7下使用yum安装mysql

CentOS7的yum源中默认好像是没有mysql的.为了解决这个问题,我们要先下载mysql的repo源. 1. 下载mysql的repo源 $ wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm 2. 安装mysql-community-release-el7-5.noarch.rpm包 $ sudo rpm -ivh mysql-community-release-el7-5.noarch.rpm 安装这个

CentOS 6.x/7.x下安装EPEL yum源

安装过程很简单 Centos 7下执行如下命令: rpm -ivh http://mirrors.kernel.org/fedora-epel/7/x86_64/e/epel-release-7-10.noarch.rpm Centos 6下执行如下命令: rpm -ivh http://mirrors.kernel.org/fedora-epel/6/i386/epel-release-6-8.noarch.rpm 或者 rpm -ivh http://mirrors.kernel.org/f

Centos配置网络yum

这篇文章主要使用163网的yum源 1.下载yum源 cd /etc/yum.repos.d/ Centos6系列:wget http://mirrors.163.com/.help/CentOS6-Base-163.repo Centos7系列:wget http://mirrors.163.com/.help/CentOS7-Base-163.repo 2.清除缓存 yum clean all 3.生成新缓存 yum makecache 4.检查yum是否成功 yum repolist 注:

CentOS6.5 - yum对Mysql的安装与配置

一.mysql的安装 1.查看是否安装mysql [[email protected] ~]# rpm -qa | grep mysql 如果有进行卸载(以下三种方式选一种即可): 1)rpm -e mysql-libs-5.1.71-1.el6.x86_64 //普通删除模式 2)rpm -e --nodeps mysql-libs-5.1.71-1.el6.x86_64 // 强力删除模式,如果使用上面命令1)删除时,提示有依赖的其它文件,则用该命令可以对其进行强力删除(推荐) 3)yum

centos7.x之yum安装zabbix

1.安装LAMP #关闭防火墙方便测试 yum install epel-release -y systemctl stop firewalld.service systemctl disable firewalld.service setenforce 0 #安装httpd yum install httpd systemctl start httpd.service  systemctl enable httpd.service #安装数据库5.6 wget http://dev.mysql

python升级安装后的yum的修复

升级python版本号后,执行yum # yum -y install openssl 提演示样例如以下: There was a problem importing one of the Python modules required to run yum. The error leading to this problem was: No module named yum Please install a package which provides this module, or veri

在VMware中为Redhat HAT配置本地yum源

在VMware中为Redhat HAT配置本地yum源 今天准备使用CM安装大数据环境,到需要几台机器都使用同一套yum源才可以,所以想到将Redhat镜像文件拷贝到虚拟机中,在挂起使用,最后通过http分享给其他虚拟机.后再想想,这样做真的很愚蠢,首先在虚拟机安装的时候我已经挂起过一次镜像啦,所以我只要在每个虚拟机中再挂起一下,直接配置yum源就可以,也不用将iso拷贝到虚拟机中,减少磁盘占用.所以现在就来说说怎么做: 一.安装前检查,首先需要确保你的虚拟机已经加载了本地镜像,如下图所示: 注

Centos 7 yum 更新内核

1.启用ELRepo仓库  # rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org  # rpm -Uvh 2.显示内核版本  # yum --disablerepo="*" --enablerepo="elrepo-kernel" list available 3.选择版本下载更新  # yum --disablerepo="*" --enablerepo="elrep

centos6.8 yum安装mysql 5.6

一.检查系统是否安装其他版本的MYSQL数据 yum list installed | grep mysql yum -y remove mysql-libs.x86_64 二.安装及配置 wget http://repo.mysql.com/mysql-community-release-el6-5.noarch.rpm rpm -ivh mysql-community-release-el6-5.noarch.rpm yum repolist all | grep mysql 安装MYSQL

yum的详解

yum: yum是C/S结构,即客户端服务器结构 yum的服务器是yum repository(yum程序包仓库,yum repo) 程序包仓库 1.所有程序包的元数据(metadata)----repodata 所有程序包文件名称清单 所有程序包的版本号 所有程序包的校验信息 所有程序包的依赖关系 2.为数众多的程序包文件 yum的客户端: 利用配置文件指向正确的yum仓库(yum源) 利用URL机制完成指向 一个标准的URL: schema://[[email protected]]host