Ius- 安装和升级CentOS Yum仓库中未及时更新的包

AI 摘要: IUS是一个为Enterprise Linux发行版提供RPM包的社区项目,可用于安装更新的软件包,避免繁琐的手动构建和配置。它提供高质量的RPM包,并及时更新到上游开发者发布的新版本。安装后,可以通过导入fedoraproject EPEL Repos源并安装ius版本的包来使用。

IUS(Inline with Upstream Stable)是一个社区项目,为Enterprise Linux发行版的新版精选软件提供RPM包。

官方站点:https://ius.io/

Situation

我们在拿到一个新装的CentOS系统时候(比如阿里云上面选择的镜像),需要初始化相关软件环境,比如git。默认情况下,官方的yum仓库中的版本基于稳定性或者维护性原因考虑,Linux软件包可能已经过时了,比如git当前最新版本是git 2.2,但通过yum info git发现git 1.8,这种情况下如果想安装较新的稳定版本的git,就需要通过官方下载编译好的git或自行下载tar包进行编译,如果类似的初始化软件较多,就比较繁琐了。

通常,在企业内部可能有自己的仓库代理源,或者一些初始化环境的build构建脚本(比如提前下载好的版本包、相关的解压安装的脚本命令等),如果软件存在更新的话,还需要修改对应的初始化构建脚本来安装软件;如果是个人的话,可能没有精力去写这些初始化的脚本或者配置仓库代理等。

为此,IUS提供了一种方式,可以安装支持的相关最新的软件包,IUS代表Inline with Upstream Stable,方便我们的软件包跟踪各自软件的最新上游版本。

IUS项目目标

IUS仅提供安全替换和并行安装包,IUS包永远不会覆盖库存包,只会安装明确选择的软件包。

  • 为Red Hat Enterprise Linux(RHEL)和CentOS创建高质量的RPM包。
  • 上游开发人员发布新版本后,及时发布更新的RPM包。
  • 没有自动更换库存RPM包。

安装IUS后,查询并安装最新包

可以通过shell脚本导入fedoraproject Extra Packages for Enterprise Linux (EPEL) Repos源(如果是阿里云,epel包中可能没有ius的rpm包),以及安装ius版本的包

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
// 安装ius的脚本
$ curl https://setup.ius.io/ -o ius-release.sh
$ sudo sh ius-release.sh

// 查询
yum search git
...
git.x86_64 : Fast Version Control System
git2u.x86_64 : Fast Version Control System
...

// IUS命名惯例
{name}{major_version}{minor_version}u

// 安装最新git
yum install git2u -y

Tips,若之前有安装了低版本的git,需要先通过repo erase移除后,在安装新的gitu包:

1
2
3
4
5
6
7
# yum list installed|grep git
 ...
git.x86_64                           1.8.3.1-20.el7                    @updates
# yum erase git
# yum install git2u
# git version
git version 2.16.5

更多的一些使用,可以参考官网示例:https://ius.io