1
lhbc 2015-09-07 18:40:25 +08:00 1
1 、 CentOS 同一个大版本号, kernel 和官方仓库的软件版本是不变的。
就是说, CentOS 6 的 kernel 版本永远是 2.6.32 , php 版本永远是 5.3.3 , CentOS 7 的 kernel 版本永远是 3.10.0 , php 版本永远是 5.4.16 。 这是为了保证兼容性, kernel 和所有软件不更新,只打安全补丁。(只有个别特殊情况比如 Docker ) 鉴于这种维护特点,所有线上系统应该一直 yum update 到最新版本,不会存在兼容的问题。 2 、如果需要高版本的软件,需要使用第三方源或者自己编译。 通常自己编译是最好的,但就要自己维护安全更新。 比如出了 openssl 心脏出血这种严重漏洞,只有自己重新编译才能修复漏洞。 |
2
trmking1719 OP @lhbc 谢谢,明白了。
1 、也就是说 CentOS 在发布大版本的时候就确定了大部分软件所用的版本, CentOS 只针对这些版本软件进行打安全补丁或者更新,并不会出现软件版本较大跨度的升级更新。 2 、那是不是 CentOS 在大版本升级更新的时候会重新选择软件版本?例如要发布 CentOS8 ,会选 php7 ? 3 、关于源的问题,比如默认是 6.5 ,我更新完源之后,去镜像网站看,发现 6.5 目录下没有文件,是不是代表这个源不能正常使用?还是说自动用 CentOS6 之下的源,例如回去用 6.7 的源? |
3
LazyZhu 2015-09-07 20:36:47 +08:00
1.
$releasever 如果 ali 定义为 6.x 版本的话那就是外行了 $releasever 应该定义为去掉子版本号的主版本号即:6 Debian 也是如此. 这是为了节约空间, 之保留最新的 6.0.x 和 6 两个目录. 只要用 http://mirrors.aliyun.com/centos/6/os/ 这个固定的更新地址就可以了,不用更改. |
4
trmking1719 OP @LazyZhu 这样啊?我再去研究下这两个变量。
|
5
trmking1719 OP @LazyZhu 谢谢,明白了。
$releasever 和$basearch 这两个变量用 echo 没有输出值 $releasever 这个我是用#lsb_release -a 这个命令看的 Release : 6.x ,我就以为这个值是 6.x ,经你这么一说,是我搞错了。 $basearch 这个用#arch 命令看的 i686 ,这个值应该没错 关于“ Debian 也是如此. 这是为了节约空间, 之保留最新的 6.0.x 和 6 两个目录.”这句话,我去几个不同的镜像看了下从 6-6.7 ,确实只有 6 和 6.7 的目录下有完整的文件,其他基本都是一个 readme 文件。 这样就都明白了,谢谢。 |
6
lhbc 2015-09-07 22:27:07 +08:00
@trmking1719
1 、是的。 2 、大版本升级, RedHat 会选择一个他们认可的版本进行 10 年的维护周期。 他们会把相关的补丁(包括安全更新和少数新特性)打到这个版本上,即使上游代码不维护。 这样一个大版本的生命周期内,可以保证所有软件都得到维护,而用户不需要关心跨版本的兼容性问题,只需要没脑子地 yum update 。 |
7
echo1937 2015-09-07 22:44:56 +08:00
@trmking1719
@lhbc 说的完全正确, RHEL 比较讲求长效性和持续性,不讲求追新,但是也为这部分用户提供了选择,即 The Software Collections ( SCL ) Repository 。 你可以参考 https://wiki.centos.org/AdditionalResources/Repositories/SCL 链接,它提供了诸如 MySQL 5.5 和 Python 3.3 的支持,这些不在基本的 Base 频道,但的确也是依据 RHEL 的 SCL 频道而镜像的。 此外一些第三方 ISV 也会提供了独立的频道供选择,比如我在用的 MariaDB , php 不了解,可以自行搜索。 ( https://downloads.mariadb.org/mariadb/repositories/) |
8
trmking1719 OP @lhbc 明白了,再次感谢。
|
9
trmking1719 OP @echo1937 谢谢。
看了下你给的 SCL 的链接,也就是说 CentOS 有某些软件的更新不是放在默认更新里的,如果要用更高版本的软件就要用到这个 SCL 了? 要安装#yum install centos-release-SCL 这个来管理软件? 例如默认的 mysql 是 5.1 ,用 SCL 可以用 5.5 ? 还有就是看介绍的话,用 SCL 来管理软件,同一个软件不同版本是共存的,可以设置默认使用哪个?例如 mysql ,默认 5.1 , SCL 可以安装一个新的 5.5 版本,想用哪个把哪个设置成默认就好? |
10
echo1937 2015-09-08 10:21:31 +08:00
@trmking1719
具体的安装方式在链接页面中有非常详细的描述, SCL 频道的软件会自动安装在 /usr/local 下不会冲突。具体的设置方式在文档的链接中也有说明,比如使用: # scl enable software_collection... 'command...' 不要卸载原有的环境,因为例如原有的 python2.6 之类的,是同时在被系统使用的。 |
11
trmking1719 OP @echo1937 好的,我去详细研究下,谢谢。
|