16 votes

Pourquoi les paquets périmés sont-ils installés par yum sur CentOS ? (en particulier PHP 5.1) Comment y remédier ?

Je travaille sur un nouveau serveur CentOS et je suis extrêmement ennuyé de découvrir que yum ne fonctionne pas de manière aussi fluide et brillante que "apt-get install" sur Ubuntu.

En installant une pile LAMP, j'ai exécuté ce qui suit :

$ yum install php
$ yum install mysql

En outre :

$ yum install mysql-server
$ yum install mysql-devel
$ yum install php-mysql

En cours d'exécution :

$ rpm -qa | grep php

...montre que j'ai toutes sortes de paquets php 5.1.6 installés et que j'ai besoin de la version 5.2 minimum. De plus, je vois qu'il a installé mysql 5.0.77, alors que la version actuelle est 5.5.20. Mais j'espère que mysql 5.0 fonctionnera. PHP 5.1 ne fonctionnera pas.

La ou les véritables questions sont donc :

Comment puis-je corriger mon PHP pour qu'il soit à la dernière version stable (5.3.9 selon PHP.net) ? Comment faire pour que ma machine CentOS fonctionne comme Ubuntu et que je n'aie plus à faire face à ce problème ?

Merci beaucoup.

EDIT : CentOS 5.7 a été installé par un hébergeur la semaine dernière, donc je ne sais pas pourquoi ils auraient installé une ancienne version de CentOS, plutôt que la plus récente. J'ai besoin de PHP 3.2 au moins, donc j'apprécie les suggestions sur la façon de le faire. Je ne suis pas très familier avec les paquets et les dépôts, mais il semble que n'importe qui puisse démarrer un dépôt et je suis donc préoccupé par l'installation de choses provenant d'un dépôt aléatoire qui pourrait infecter le serveur.

12voto

Magellan Points 4431

CentOS est un DÉRIVÉ du très conservateur Red Hat Enterprise Linux, donc les mises à jour de paquets seront généralement retardées encore plus que pour RHEL. Les paquets des deux distributions seront un peu plus anciens.

Si vous utilisez CentOS 5, vous devriez essayer CentOS 6 pour voir s'il répond à vos besoins.

Si vous avez besoin de quelque chose d'un peu plus avant-gardiste que CentOS 6, vous devriez vous tourner vers Fedora.

Suivi : CentOS a été amené "en interne", et est plus étroitement intégré. Les nouvelles versions de CentOS verront les avantages d'un cycle de publication plus serré, mais pour les anciennes versions, cette réponse restera vraie.

6voto

Shane Madden Points 112034

Ils ne sont pas périmés ; ce sont les derniers que CentOS 5 a dans ses dépôts.

Red Hat (et Ubuntu par ailleurs) ne publient jamais, au grand jamais, une nouvelle version majeure d'un logiciel dans leurs dépôts de paquets pour une version donnée du système d'exploitation, par souci de stabilité - vous ne voulez pas exécuter une mise à jour et voir soudainement votre configuration ne pas fonctionner.

Au lieu de cela, ils reportent les corrections de sécurité et les corrections de bogues importantes dans la version du logiciel qui était "stable" au moment de la sortie du système d'exploitation, évitant ainsi l'introduction de nouvelles fonctionnalités (et de leurs bogues).

Comme vous êtes sous CentOS 5, les dépôts officiels contiennent des versions assez anciennes. Mais n'ayez crainte - vous pouvez probablement trouver facilement un dépôt tiers avec les versions des logiciels dont vous avez besoin.

Ou, pourquoi ne pas passer à la version 6 ?

4voto

user70580 Points 1

Je vous conseille de désinstaller CentOS et d'installer Ubuntu, si c'est ce que vous voulez utiliser. Mais ce doit être une ancienne version de CentOS que vous utilisez. CentOS 6.2 utilise PHP 5.3 et MySQL 5.1.

Vous pouvez utiliser Dépôt de Rémi pour obtenir des versions plus récentes d'Apache/PHP/MySQL

Et vous ne faites pas fonctionner votre machine CentOS plus comme Ubuntu, parce qu'elle n'est pas Ubuntu. C'est comme dire "Comment faire pour que ma Chrysler se conduise plus comme une Ford".


Réponse actualisée :

J'ai reçu quelques votes négatifs à ce sujet, donc je pense que mes intentions ont été mal comprises, laissez-moi essayer de corriger cela.

J'ai mis en place un VPS dans notre environnement et installé les paquets, donc je devrais être là où vous êtes en ce moment :

[root@centos5 /]# cat /etc/issue
CentOS release 5.7 (Final)
Kernel \r on an \m

[root@centos5 /]# rpm -qa |grep php
php-common-5.1.6-27.el5_7.4
php-mysql-5.1.6-27.el5_7.4
php-cli-5.1.6-27.el5_7.4
php-pdo-5.1.6-27.el5_7.4
php-5.1.6-27.el5_7.4

Dans ma première réponse, j'ai supposé que vous vouliez les dernières versions, alors vous devriez utiliser le dépôt Remi comme je l'ai indiqué ci-dessus. Cependant, si la version PHP 5.3 de centOS est bonne (5.3.3), alors continuez à lire.

Lorsque vous essayez d'installer php53, il se plaint d'un conflit, car ce paquetage couvre les mêmes choses que le paquetage PHP 5.1. Pour résoudre ce problème, vous devez commencer par supprimer tous les paquets relatifs à PHP :

[root@centos5 /]# yum remove php*
[root@centos5 /]# rpm -qa |grep php
[root@centos5 /]# 

La prochaine chose à faire est d'installer les paquets équivalents avec php53 :

[root@centos5 /]# yum install php53 php53-cli php53-mysql
[root@centos5 /]# rpm -qa |grep php
php53-common-5.3.3-1.el5_7.5
php53-cli-5.3.3-1.el5_7.5
php53-pdo-5.3.3-1.el5_7.5
php53-5.3.3-1.el5_7.5
php53-mysql-5.3.3-1.el5_7.5

Donc, le PHP était assez facile. Mais MySQL est une autre histoire, puisque MySQL 5.0 est le seul MySQL dans les dépôts par défaut de CentOS. J'utilise la version 64 bit de CentOS, si vous n'en avez pas, vous devez ajuster ce qui suit pour correspondre à la version 32 bit.

Il existe plusieurs façons de procéder, mais je vais opter pour le référentiel Remi. Il existe depuis des années et la maintenance est plus facile avec un dépôt qu'avec de simples fichiers RPM.

Remi exige le Dépôt EPEL alors commencez par l'installer :

[root@centos5 /]# rpm -Uvh http://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm
Retrieving http://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm
warning: /var/tmp/rpm-xfer.lvLBMJ: Header V3 DSA signature: NOKEY, key ID 217521f6
Preparing...                ########################################### [100%]
   1:epel-release           ########################################### [100%]

Ensuite, vous installez le repo RPM Remi

[root@centos5 /]# rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-5.rpm
Retrieving http://rpms.famillecollet.com/enterprise/remi-release-5.rpm
warning: /var/tmp/rpm-xfer.ztjinG: Header V3 DSA signature: NOKEY, key ID 00f97f56
Preparing...                ########################################### [100%]
   1:remi-release           ########################################### [100%]

Ensuite, vous supprimez le serveur MySQL actuel (sinon vous obtiendrez des conflits en essayant d'installer le nouveau) . NOTE ! Si vous avez des bases de données sur ce site, faites une sauvegarde avant de faire cela !

[root@centos5 /]# yum remove mysql*

Ensuite, vous pouvez continuer et installer le MySQL à partir du dépôt Remi :

[root@centos5 /]# yum --enablerepo=remi install mysql.x86_64 mysql-server.x86_64

Maintenant, lorsque vous essayez de démarrer MySQL, il peut échouer parce que l'ancien mysql a laissé des choses derrière lui, et cela peut être un peu douloureux de s'en débarrasser. Dans mon cas, j'ai dû supprimer certaines choses pour que cela fonctionne. Voici ce que j'ai fait :

# rm -rf /usr/share/mysql
# rm -rf /var/lib/mysql
# yum --enablerepo=remi reinstall mysql-libs
# /usr/libexec/mysqld --skip-grant &
# mysql_install_db
# /etc/init.d/mysqld stop
# /etc/init.d/mysqld start

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X