Linux CentOS 的基础使用-yum使用手册(下):yum安装高版本软件
上次说到一些yum的基础使用。我们说yum最方便的地方在于,
它可以自我下载、
检测依赖并全部安装、
甚至环境变量也一并可以配置完成、
对于新手来说有了极大的方便。
但是使用惯之后,我们也可以发现yum很大的一个缺点:版本控制。
yum软件版本的缺陷
我们举个例子来说。
在原生系统中,我们使用yum安装php,其版本为5.4
[root@localhost ~]# php -v PHP 5.4.16 (cli) (built: Nov 6 2016 00:29:02) Copyright (c) 1997-2013 The PHP Group Zend 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 -v PHP 5.6.30 (cli) (built: Jan 19 2017 07:08:58) Copyright (c) 1997-2016 The PHP Group Zend 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]# ls CentOS-Base.repo CentOS-fasttrack.repo CentOS-Vault.repo remi-php54.repo remi.repo CentOS-CR.repo CentOS-Media.repo epel.repo remi-php70.repo remi-safe.repo CentOS-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 all yum 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
之后我们直接卸载就可以
[root@localhost yum.repos.d]# yum list remi-release.noarch