Yum 仓库的配置及使用,真香啊!

2,707 阅读5分钟

这是我参与 8 月更文挑战的第 13 天,活动详情查看: 8月更文挑战

一名致力于在技术道路上的终身学习者、实践者、分享者,一位忙起来又偶尔偷懒的原创博主,一个偶尔无聊又偶尔幽默的少年。

欢迎各位掘友们微信搜索「杰哥的IT之旅」关注!

原文链接:Linux 之 Yum 仓库的配置及使用

前言

目前在长期稳定运行的网站服务器、处理大量数据的集群系统以及需要协同工作的环境中都大量采用Linux系统。

相较于Windows系统而言,Linux系统具有以下优势:

  • 稳定且有效率;
  • 免费或少许费用;
  • 漏洞少且快速修补;
  • 多任务多用户;
  • 更加安全的用户及文件权限策略;
  • 适合小内核程序的嵌入系统;
  • 相对不耗资源

一、常见的Linux系统

  • 红帽企业版(RedHat Enterprise Linux):RHEL是全世界内使用最广泛的Linux系统。
  • 社区企业操作系统(Communicity Enterprise Operating System, CentOS ):RHEL重新编译发布的免费Linux系统。
  • Fedora:红帽公司发布的桌面版系统套件。
  • openSUSE:德国的一款著名Linux系统。
  • Gentoo:具有极高的自定制性,操作复杂。
  • Debian:稳定性、安全性强,可以良好地支持各种硬件架构。
  • Ubuntu:对新款硬件具有极强的兼容能力。

二、RPM和Yum软件仓库

RPM是红帽的的软件包管理器,类似于Windows系统中的控制面板。

在RPM公布之前,Linux系统中安装软件只能采用源码包的安装方式,费时费力。

软件之间的依赖关系甚至需要运维的同事自行编译代码来解决。

RPM机制则是为解决这些问题而设计的。

三、常见的RPM软件包命令

  • 安装软件:rpm -ivh filename.rpm
  • 升级软件:rpm -Uvh filename.rpm
  • 卸载软件:rpm -e filename.rpm
  • 查询软件描述信息:rpm -qpi filename.rpm
  • 列出软件文件信息:rpm -qpl filename.rpm
  • 查询文件属于哪个RPM:rpm -qf filename

尽管RPM能够帮助用户查询软件相关的依赖关系,但过程依旧复杂,特别是在某些大型软件的情况下依旧需要运维的同事来解决。

Yum软件仓库则可以根据用户的要求分析出所需软件包及其相关的依赖关系,自动从服务器下载软件包并安装到系统。

image.png

四、常用的Yum命令

  • 列出所有仓库:yum repolist all
  • 列出仓库中所有软件包:yum list all
  • 查看软件包信息:yum info 软件包名称
  • 安装软件包:yum install 软件包名称
  • 重新安装软件包:yum reinstall 软件包名称
  • 升级软件包:yum update 软件包名称
  • 移除软件包:yum remove 软件包名称
  • 清除所有仓库缓存:yum clean all
  • 检查可更新的软件包:yum check-update
  • 检查系统中已安装的软件包组:yum grouplist
  • 安装指定的软件包组:yum groupinstall 软件包组
  • 移除指定的软件包组:yum groupremove 软件包组
  • 查询指定的软件包组信息:yum groupinfo 软件包组

然而没有注册的RHEL是无法使用yum来安装软件的,为此需要将yum源更换成CentOS的免费源来解决包的依赖问题。

更换yum源
打开虚拟机(作者的红帽是装在虚拟机上的)终端执行
rpm -qa | grep yum

系统将会显示自带的yum源,
删除系统自带的yum组件
rpm -qa | grep yum | xargs rpm -e --nodeps

进入[网易163源镜像地址](http://mirrors.163.com),在路径centos/7/os/x86_64/Packages/下载(可以在物理机上下载或者在虚拟机
上使用wget下载)python-iniparse-0.4-9.el7.noarch、python-iniparse-0.4-9.el7.noarch、yum-3.4.3-161.el7.centos.noarch、
yum-metadata-parser-1.1.4-10.el7.x86_64、yum-plugin-fastestmirror-1.1.31-50.el7.noarch这五个包。

安装软件包
rpm -ivh yum-*
# 此时会报依赖的错误
rpm >= 0:4.11.3-35 is needed by yum-3.4.3-161.el7.centos.noarch

下载rpm-4.11.3-35.el7.x86_64包并重新安装
rpm -Uvh rpm-4.11.3-35.el7.x86_64.rpm --nodeps
rpm -ivh yum-*

更新yum源文件,可以下载使用163的yum源文件CentOS6-Base-163,放在/etc/yum.repo.d目录

vim /etc/yum.repos.d/CentOS-Base.repo
内容如下,将$releasever改成7即可
# CentOS-Base.repo
#
# The mirror system uses the connecting IP address of the client and the
# update status of each mirror to pick mirrors that are updated to and
# geographically close to the client. You should use this for CentOS updates
# unless you are manually picking other mirrors.
#
# If the mirrorlist= does not work for you, as a fall back you can try the
# remarked out baseurl= line instead.
#
#

[base]
# name=CentOS-$releasever - Base - 163.com 改成
name=CentOS-7 - Base - 163.com
# baseurl=http://mirrors.163.com/centos/$releasever/os/$basearch/ 改成
baseurl=http://mirrors.163.com/centos/7/os/$basearch/
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-7

#released updates
[updates]
# name=CentOS-$releasever - Updates - 163.com 改成
name=CentOS-7 - Updates - 163.com
# baseurl=http://mirrors.163.com/centos/$releasever/updates/$basearch/ 改成
baseurl=http://mirrors.163.com/centos/7/updates/$basearch/
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-7

#additional packages that may be useful
[extras]
# name=CentOS-$releasever - Extras - 163.com 改成
name=CentOS-7 - Extras - 163.com
# baseurl=http://mirrors.163.com/centos/$releasever/extras/$basearch/ 改成
baseurl=http://mirrors.163.com/centos/7/extras/$basearch/
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-7

#additional packages that extend functionality of existing packages
[centosplus]
# name=CentOS-$releasever - Plus - 163.com 改成
name=CentOS-7 - Plus - 163.com
# baseurl=http://mirrors.163.com/centos/$releasever/centosplus/$basearch/ 改成
baseurl=http://mirrors.163.com/centos/7/centosplus/$basearch/
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus
gpgcheck=1
enabled=0
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-7

#contrib - packages by Centos Users
[contrib]
# name=CentOS-$releasever - Contrib - 163.com 改成
name=CentOS-7 - Contrib - 163.com
# baseurl=http://mirrors.163.com/centos/$releasever/contrib/$basearch/ 改成
baseurl=http://mirrors.163.com/centos/7/contrib/$basearch/
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=contrib
gpgcheck=1
enabled=0
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-7

清除yum缓存
yum clean all
# 生成缓存
yum makeche
# 查看新源
yum repolist
yum repolist
repo id repo name status
!base/x86_64 CentOS-$7 - Base - 163.com 8,652
!extras/x86_64 CentOS-$7 - Extras - 163.com 275
!updates/x86_64 CentOS-$7 - Updates - 163.com 1,707
repolist: 10,634
yum源已更换成功,下面就可以自由使用yum安装软件啦。
## 实例
以安装pam-devel为例,介绍一下如何使用yum安装和移除软件包。
# 安装pam-devel
[root@xiaohui ~]# yum install pam-devel
......(省略)
Running transaction
Updating : pam-1.1.8-22.el7.x86_64 1/3
Installing : pam-devel-1.1.8-22.el7.x86_64 2/3
Cleanup : pam-1.1.8-9.el7.x86_64 3/3
Verifying : pam-devel-1.1.8-22.el7.x86_64 1/3
Verifying : pam-1.1.8-22.el7.x86_64 2/3
Verifying : pam-1.1.8-9.el7.x86_64 3/3
Installed:
pam-devel.x86_64 0:1.1.8-22.el7
Dependency Updated:
pam.x86_64 0:1.1.8-22.el7
Complete!
代表安装成功。
# 移除pam-devel
[root@xiaohui ~]# yum remove pam-devel
......(省略)
================================================================================
Remove 1 Package
Installed size: 528 k
Is this ok [y/N]: y
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Erasing : pam-devel-1.1.8-22.el7.x86_64 1/1
Loading mirror speeds from cached hostfile
Verifying : pam-devel-1.1.8-22.el7.x86_64 1/1
Removed:
pam-devel.x86_64 0:1.1.8-22.el7
Complete!
代表移除成功。

附本文所需rpm及repo:pan.baidu.com/s/1lUSU9PdF… 提取码:rp3l

推荐阅读

99%的Linux运维工程师必须要掌握的命令及运用

Linux 环境下 Oracle 数据库常用命令

Linux 环境下 vi/vim 编辑器常用命令

Linux环境下安装及管理程序(软件包封装、RPM命令、源代码编译安装的基本过程)

Linux 环境下账号和权限管理

Linux 磁盘和文件系统管理

Linux 环境下进程和计划任务管理

Linux 环境下分析和排查系统故障

Linux 环境下虚拟化之 KVM 常用命令

轻松带你玩转 Linux 环境下日期的语法!

只需 2 条命令,人人都能玩转的 10 款命令行游戏,刺激!

17 个有趣却无用的 Linux 彩蛋,真是好玩到极致!

本文完。


原创不易,如果你觉得这篇文章对你有点用的话,麻烦你为本文点个赞、评论或转发一下,因为这将是我输出更多优质文章的动力,感谢!

对了,掘友们记得给我点个免费的关注哟!防止你迷路下次就找不到我了。

我们下期再见!