linux软件包管理工具yum

Linux各发行版使用的软件包管理命令,如apt-get ,dpkg, rpm ,yum,emerge等等。本文对yum工具进行研究整理。

1、yum简介

1.1 What's yum

  • yum命令是在Fedora和RedHat以及SUSE中基于rpm的软件包管理器。
  • 它可以系统管理员交互和自动化地管理RPM软件包,
  • 能够从指定的服务器自动下载RPM包并且安装,
  • 可以自动处理依赖性关系,并且一次安装所有依赖的软体包。

1.2 yum的基本目录

  • YUM配置文件          /etc/yum.conf,通常无需修改
  • 仓库配置文件目录    /etc/yum.repos.d/
  • YUM的缓存目录       /var/cache/yum
  • YUM的日志文件       /var/log/yum.log

2、what‘s repo

2.1  repo文件是yum源的配置文件

  • 通常一个repo文件定义了一个或者多个软件仓库的细节内容,repo文件中的设置内容将被yum读取和应用!

2.2  YUM的工作原理:

  • 每一个 RPM软件的头(header)里面都会纪录该软件的依赖关系,那么如果可以将该头的内容纪录下来并且进行分析,可以知道每个软件在安装之前需要额外安装
  • 服务器端:在服务器上面存放了所有的RPM软件包,然后以相关的功能去分析每个RPM文件的依赖性关系,将这些数据记录成文件存放在服务器的某特定目录内。
  • 客户端:如果需要安装某个软件时,先下载服务器上面记录的依赖性关系文件(可通过WWW或FTP方式),通过对服务器端下载的纪录数据进行分析,然后取得所有相关的软件,一次全部下载下来进行安装。

2.3 repo文件配置解释

  • [serverid]
是用于区别各个不同的repository
  • name=Some name for this server 
是对repository的描述
  • baseurl=url://server1/path/to/repository/
其中url支持的协议有 http:// ftp:// file://三种
baseurl后可以跟多个url
url之后可以加上多个选项,如gpgcheck、failovermethod
  • enabled=[1 or 0]
是否可用

2.4 repo中的变量

  • $releasever,linux发行版本,[5/6/7]
  • $arch,cpu体系,如[i686,athlon]
  • $basearch,cpu的基本体系组,[i386/x86_64]

3、yum源的安装

3.1 本地yum搭建

本地yum就是让linux 系统使用 装机镜像包中的rpm软件
1、创建挂载点
# mkdir /yum
2、光驱插入镜像盘
3、挂载
# mount /dev/cdrom /yum
4、编辑repo文件
[local]
name=auto yum
baseurl=file:///yum
enabled=1
gpgcheck=1

3.2 基于ftp的网络yum源

服务端
1、服务端安装vsftpd
# rpm -ivh vsftpd-2.2.2-11.el6_4.1.x86_64.rpm
# service vsftpd start
# chkconfig vsftpd on
2、修改ftp访问的目录
设置ftp家目录为光盘挂载点
# mount /dev/cdrom /yum
# usermod -d /yum ftp    #修改ftp用户家目录为rpm包目录
客户端
1. 编辑客户端的repo文件 
# vim /etc/yum.repos.d/local.repo
[local]
name=auto yum
baseurl=ftp://x.x.x.x
enabled=1
gpgcheck=0

3.3 epel yum源搭建

1. epel源简介
  • EPEL,即Extra Packages for Enterprise Linux
  • 这个软件仓库里有很多非常常用的软件,而且是专门针对RHEL设计的,对RHEL标准yum源是一个很好的补充,完全免费使用
  • 由Fedora项目维护,所以如果你使用的是RHEL,或者CentOS,Scientific等RHEL系的linux,可以非常放心的使用EPEL的yum源。
2. 打开epel网站
方法1:
安装生成repo的rpm,网上通用,但是报错
下载配置repo 的rpm
选择对应版本的rpm    
因为我是redhat6.4 ,选择此网页的epel-release-latest-6.noarch.rpm  
linux安装命令:
# rpm -Uvh http://mirrors.kernel.org/fedora-epel/epel-release-latest-6.noarch.rpm  
# yum clean all
# yum makecache
报错:连接不到epel源
Loading mirror speeds from cached hostfile
Error: Cannot retrieve metalink for repository: epel. Please verify its path and try again
解决办法:
方法2
方法2:
编辑一个epel的repo文件
1. 选择basedir
在epel源的网站上选择合适的系统版本,和cpu架构,比如我是redhat6.4 64位
2. 编辑 epel.repo
# cat epel.repo 
[epel]
name=epel
baseurl=http://mirrors.kernel.org/fedora-epel/6/x86_64/
enable=1
gpgcheck=0
3. 查看yum源
# yum clean all
# yum repolist 

3.4 国内yum源:网易163yum源

# cd /etc/yum.repos.d
方法1:
下载repo文件
# wget  http://mirrors.163.com/.help/CentOS6-Base-163.repo
# yum clean all
# yum makecache
报错:
http://mirrors.163.com/centos/6Server/os/x86_64/repodata/repomd.xml: [Errno 14] PYCURL ERROR 22 - "The requested URL returned error: 404 Not Found"
解决方案:
可以通过报错看到解析的地址有问题,我们将变量直接替换成指定值
$releasever --> 6
$basearch   --> x64_86
替换后,baseurl=http://mirrors.163.com/centos/6/os/x86_64/

方法2:
直接编辑一个repo文件
# cat Centos163.repo
[base]
name=CentOS-6 - Base - 163.com
baseurl=http://mirrors.163.com/centos/6/os/x86_64/
enable=1
gpgcheck=1

3.5 mysql yum源配置

  1. https://dev.mysql.com/downloads/repo/yum/
  2. 选择合适的rpm安装包
  3. 安装 
    1. 下载并传到linux
    2. 或 wget https://repo.mysql.com//mysql57-community-release-el6-11.noarch.rpm
  4. 查看yum源
    1. yum repolist all
  5. 安装MySQL
    1. shell> sudo yum install mysql-community-server


4、yum语法和命令

语法:
yum [选项] [参数]
选项:
-h:显示帮助信息; 
-y:对所有的提问都回答“yes”;
 -c:指定配置文件;
 -q:安静模式;
 -v:详细模式;
 -d:设置调试等级(0-10);
 -e:设置错误等级(0-10); -R:设置yum处理一个命令的最大等待时间;
 -C:完全从缓存中运行,而不去下载或者更新任何头文件。
参数:
install:安装rpm软件包;
update:更新rpm软件包;
check-update:检查是否有可用的更新rpm软件包;
remove:删除指定的rpm软件包;
list:显示软件包的信息;
search:检查软件包的信息;
info:显示指定的rpm软件包的描述信息和概要信息;
clean:清理yum过期的缓存;
shell:进入yum的shell提示符;
resolvedep:显示rpm软件包的依赖关系;
localinstall:安装本地的rpm软件包;
localupdate:显示本地rpm软件包进行更新;
deplist:显示rpm软件包的所有依赖关系。
常用命令:
yum插件安装
yum install yum-fastestmirror  #自动搜索最快镜像插件  
yum install yumex                  #安装yum图形窗口插件    
yum查看
yum list              #显示所有已经安装和可以安装的程序包
yum grouplist     #查看可能批量安装的列表 
yum安装
yum install package1          #安装指定的安装包package1
yum groupinsall group1      #安装程序组group1
yum更新
yum update package1     #更新指定程序包package1
yum移除
yum remove | erase package1 #删除程序包package1

原文地址:https://www.cnblogs.com/jesper/p/7577057.html