Linux软件安装管理(三):yum在线安装

  1. yum仓库的配置文件详解和仓库的创建
  2. yum的安装软件命令
  3. 升级、卸载(依赖也会卸载掉)使用需谨慎;yum查询仓库中的软件,其他rpm包查询推荐用rpm查询命令。
  4. yum软件组的查询与安装,装语言包很方便

rpm软件包形式管理软件,需要手工解决软件的依赖关系,rpm安装一个软件时有时需要先安装其他软件,十分麻烦。yum可以解决这个问题,将所有软件包放到官方服务器上,当进行yum在线安装时,可以自动解决依赖性的问题。redhat的yum在线安装需要付费,而centos是免费的。

1. yum仓库

yum引入仓库repo的概念,仓库用来存放所有现有的rpm包,当使用yum安装一个rpm,如果存在依赖关系,会自动在仓库中查找依赖软件并安装。如果仓库中没有这个依赖,那么yum安装失败。

仓库可以是本地的(文件夹),也可以通过HTTP、FTP、NFS形式使用集中的、统一的网络仓库

所以,要使用yum,必须先配置yum仓库:

1.1 yum仓库repo的配置

  • yum仓库的配置文件存放在/etc/yum.repos.d/
  • 仓库配置文件名随意取,但一定要以.repo结尾
  • 一个.repo配置文件中可以保存多个仓库的配置信息
  • centOS安装好以后,yum仓库已经配置好了,因为是免费的。如果使用红帽,默认不会配置,可以去购买红帽的订阅,或者上网查仓库的地址,或者使用centOS的网络仓库也可以。

例如,CentOS-Base.repo配置文件中有很多仓库,其中一个名为base仓库的配置:

[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

注意:等号=无空格。file:///etc/file://是协议的双斜杠,路径是/etc/,所以有三个双斜杠。

配置参数说明:

  • [base] 仓库的名字,用[]扩起,随意取名
  • name=this is 说明,可随便写
  • mirrorlist= 镜像站点,可以注释掉
  • baseurl= yum仓库的地址。可以是本地的file://。也可以是网络仓库http、ftp、nfs
  • enabled 仓库是否生效
    • enable=1或者不写:生效
    • enable=0:不生效
  • gpgcheck RPM数字证书是否生效
    • gpgcheck=1:生效。建议开启,可以验证下载的软件是否安全完整
    • gpgcheck=0:不生效
  • gpgkey 数字证书的公钥文件保存位置/etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7,不用修改

1.2 创建yum仓库

第一步:将所有RPM拷贝到一个文件夹中

如将光盘中的rpm包放到本地的文件夹中

  1. 挂载光盘
    • mkdir /mnt/cdrom #建立挂载点,即文件夹
    • mount /dev/cdrom /mnt/cdrom #挂载光盘
  2. 复制光盘中的rpm包到本地文件夹中
    • mkdir my_yum
    • cp -rv /mnt/cdrom/package/* /my_yum

第二步:创建索引文件

  1. 先用rpm命令手工安装creatrepo软件,creatrepo用于创建索引文件
    • cd /my_yum #进入仓库的文件夹
    • rpm -ivh creatrepo #会报错,提示安装deltarpm,phython-deltarpm
    • rpm -ivh creatrepo deltarpm phython-deltarpm #如果需要解决依赖,可以三个一起安装
  2. 使用creatrepo创建索引文件
    • creatrepo -v /yum仓库的路径
    • 比如,creatrepo -v /my_yum
    • 命令会对仓库中的rpm包创建索引,会在当前目录(仓库文件夹下)创建一个repodata的目录,里面保存索引信息

第三步:在/etc/yum.repos.d/中添加仓库的配置文件

  1. cd /etc/yum.repos.d/
  2. vim myyum.repo

    [myyum]
    name=this is my repo
    baseurl=file:///my_yum
    enable=1 #也可以不写默认开启
    gpgcheck=1 #自己创建的仓库,也可以不验证gpgcheck=0
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

注意:yum为了提高速度,会缓存很多信息,但也会导致故障。所以每次使用yum命令后,请清除缓存:

yum clean call

2.yum命令

2.1 查询

注意:关于rpm包的查询,用rpm查询命令比较好。

查询仓库的软件

  • yum list

    • 查询仓库中所有可用软件包列表
    • 三列:软件名|版本号|来自哪个仓库
  • yum list (all|installed|recent|updates)

    • 列出(全部|已安装的|最近安装的|有更新的)软件
  • yum search 关键字

    • 搜索仓库中所有和关键字相关的包

注意:yum没有本机装了哪些rpm包的命令;yum没有查询rpm包装到了哪些位置的命令。

查询软件详细信息

  • yum info 软件名
    • 列出软件的详细信息
    • 可以用tab补全

查询文件属于哪个rpm包

  • yum whatprovides 文件名

2.2 安装

  • yum -y install 包名
    • install 安装
    • -y 自动回答yes

rpm命令需要区分包全名和包名;yum命令不需要包全名,只要写包名即可。

系统最小化安装,安装的软件就越少,需要解决的依赖就越多。比如要安装c的编译器gcc,必须使用rpm安装,不能用源码包安装方法,因为源码不能编译。

2.3 升级

  • yum -y update 包名
    • update
    • -y 自动回答yes

危险:对于服务器来说,最好不要升级。除非有重要bug。不要写成yum -y update,会导致内核和所有程序的更新,可能会导致系统直接崩溃。

2.4 卸载

  • yum -y remove 包名
    • remove
    • -y 自动回答yes

危险:服务器最好使用最小化安装,用什么软件安装什么软件,尽量不要卸载!!因为,卸载时也会将依赖的软件依次卸载,而且yum不会询问直接卸载。如果软件依赖的包被系统依赖,却被卸载了,可能导致崩溃!!

所以,最小化安装!用什么装什么!不要卸载!服务器上的操作一定要小心,管理员最好把命令都记下来作为日志,都是为了防止服务器 崩溃。

2.5 yum软件组管理命令

例如,如果linux安装的时候没有选择中文语言,不能正常显示中文, 如果要手工安装中文语言很麻烦,因为他需要装很多个包,包括字体包编码包,但是他们都属于中文支持[zh]组包内,使用yum grouplist就能查看到所有组包:

  • yum grouplist

    • 列出所有可用的软件组列表
    • 本机使用grouplist命令时组名是英文显示;远程登录时组名默认中文显示
    • 要让远程登陆也显示英文,修改语言即可,执行命令:LANG=en_US;改回来:LANG=zh_CN.utf8(临时生效,永久改变语言要改/etc下的下相应配置文件)
  • yum groupinstall 软件组名(英文)

    • 安装指定的软件组
    • 组名可以有grouplist查询出来
    • 软件组名必须是英文
  • yum groupremove 软件组名(英文)

    • 卸载指定的软件组
    • 同样不推荐随便卸载

当前网速较慢或者你使用的浏览器不支持博客特定功能,请尝试刷新或换用Chrome、Firefox等现代浏览器