[Linux][入门系列]CentOS 的基础使用-yum使用手册(下):yum安装高版本软件

来源:互联网 发布:冬天 裤子 知乎 编辑:程序博客网 时间:2024/04/26 22:02

上次我们说到一些yum的基础使用。我们说yum最方便的地方在于,它可以自我下载,检测依赖并全部安装,甚至环境变量也一并可以配置完成,对于新手来说有了极大的方便。
但是使用惯之后,我们也可以发现yum很大的一个缺点:版本控制。

yum软件版本的缺陷

我们举个例子来说。
在原生系统中,我们使用yum安装php,其版本为5.4

[root@localhost ~]# php -vPHP 5.4.16 (cli) (built: Nov  6 2016 00:29:02)Copyright (c) 1997-2013 The PHP GroupZend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies

可是对于我们现在使用的绝大部分框架或者软件,其php版本要求都要到达5.6以上,而使用正常的yum update已经无法升级了。
所以这个例子告诉我们,yum为了保持软件的稳定性,不会把自己库中的软件升级到最新版,甚至连主流的稳定版也无法升级到。这时就需要我们动一些手脚了,比如使用epel包,以及更改yum源。

epel包

EPEL的全称叫 Extra Packages for Enterprise linux 。这个包专门为落后的yum源提供了额外的软件支持。而且其包内容版本更新,安装方式简单,更适合我们使用。
同时我们也要使用rpm包管理器进行解压配置,RPM之前全称为Red Hat Package Manager。我们现在可以把rpm理解为一个安装软件,它会像yum一样把本地安装包内的软件安装好。
在Cent中,Rpm功能是内置的,直接在命令行中执行rpm就可以。
和yum类似,rpm集成了软件包的安装与卸载,可喜的是,rpm包使用时,我们可以直接利用yum的操作在使用它。
使用rpm的基本使用方式是:

[root@localhost ~]# rpm -Uvh xxx.rpm[root@localhost ~]# rpm -ivh xxx.rpm

这里vh代表显示安装进度。而u代表update升级,i代表install安装。
为了解决上述问题,我们首先把之前的php低版本卸载

因为安装5.6版本的php时,yum把其识别为和php不同的软件,为了防止冲突,一定要卸载。

之后我们使用yum安装epel

[root@localhost ~]# yum install epel-release

同时,我们需要去安装固定的rpm包,这里我们直接使用remi的包

[root@localhost ~]# rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm获取http://rpms.famillecollet.com/enterprise/remi-release-7.rpm警告:/var/tmp/rpm-tmp.7Pr0XW: 头V4 DSA/SHA1 Signature, 密钥 ID 00f97f56: NOKEY准备中...                          ################################# [100%]正在升级/安装...   1:remi-release-7.3-1.el7.remi      ################################# [100%]

此时我们的软件源就装好了

如果你使用的是centos6版本,其内置没有epel,所以需要从网站下载
rpm -ivh http://ftp.iij.ad.jp/pub/linux/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm
同时它的remi包的网址也不同
rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
其他的包,请参照remi的网址 http://rpms.famillecollet.com/

之后我们使用yum查看下我们现在所拥有的php版本

[root@localhost ~]# yum list php*

此时我们可以看到有php54,php55,php56等等。这后面的数字就代表着php的版本号。
所以我们这里安装php56.

[root@localhost ~]# yum install php56

安装好之后查看php版本

[root@localhost ~]# php56 -vPHP 5.6.30 (cli) (built: Jan 19 2017 07:08:58)Copyright (c) 1997-2016 The PHP GroupZend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies

请注意,这里的php版本我们需要输入php56才可以,如果想让这里输入php就可以显示版本,我们需要在安装时使用:

 [root@localhost ~]# yum install --enablerepo=remi --enablerepo=remi-php56 php 

即把php56设置成php的默认版本。

更改cent yum源

更改yum源,即我们要使用其他的yum源来下载及校验yum。
比较好用的国内的yum源包括:
阿里镜像站:http://mirrors.aliyun.com/
网易开源镜像站:http://mirrors.163.com/
我们以网易的镜像站为例:(帮助文档:http://mirrors.163.com/.help/centos.html)

首先我们进入yum源存放的目录:

[root@localhost yum.repos.d]# lsCentOS-Base.repo       CentOS-fasttrack.repo  CentOS-Vault.repo  remi-php54.repo  remi.repoCentOS-CR.repo         CentOS-Media.repo      epel.repo          remi-php70.repo  remi-safe.repoCentOS-Debuginfo.repo  CentOS-Sources.repo    epel-testing.repo  remi-php71.repo

这里可以很清晰的看到我们刚才使用的remi源以及epel的源。我们在这里更改base源。先备份:

mv CentOS-Base.repo CentOS-Base.repo.backup

然后下载163的源:

[root@localhost yum.repos.d]# wget http://mirrors.163.com/.help/CentOS7-Base-163.repo

运行命令生成缓存:

yum clean allyum makecache

此时我们的yum源就更新好了。

yum源的更新不一定会使软件得到升级,但是如果使用了国内的yum源,我们下载软件的速度就大大的提升。

删除epel包或者yum源

我们可以看到,其实epel包的本质就是在yum源上添加自己的源。那我们自然可以删除它。
首先我们查看下当前的包。一般安装入yum的都是noarch的类型包。

[root@localhost yum.repos.d]# yum list  *remi*noarch已安装的软件包remi-release.noarch                                         7.3-1.el7.remi                                    installed

之后我们直接卸载就可以

[root@localhost yum.repos.d]# yum list  remi-release.noarch
原创粉丝点击