web-dev-qa-db-fra.com

Pourquoi les packages obsolètes sont-ils installés par Yum sur Centos? (spécifiquement PHP 5.1) Comment réparer?

Je travaille sur un serveur de Centos frais et je suis extrêmement ennuyé pour savoir que Yum ne fonctionne pas aussi bien et brillamment que "apt-get installer" sur Ubuntu.

Installation d'une pile de lampes, 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

Maintenant en cours d'exécution:

$ rpm -qa | grep php

... montre que j'ai toutes sortes de packages PHP 5.1.6 installés et j'ai besoin de 5,2 minimum. De plus, je vois que cela a installé MySQL 5.0.77, même si la version actuelle est 5.5.20. Mais espérons que MySQL 5.0 fonctionnera. PHP 5.1 ne sera pas.

Donc, la ou les questions réelles sont (sont):

Comment puis-je corriger mon PHP=== pour en faire la dernière version stable (5.3.9 selon PHP.NET)? Comment puis-je faire fonctionner ma machine Centos plus comme Ubuntu, donc je n'ai pas Traiter cela à nouveau?

Merci beaucoup.

EDIT: CENTOS 5.7 a été installé par une société d'hébergement la semaine dernière, je ne sais donc pas pourquoi ils auraient installé une version plus ancienne de Centos, plutôt que la plus récente. J'ai besoin PHP 3.2 au moins au moins, j'apprécie donc les suggestions sur la façon de faire. Je ne connais pas très bien les forfaits et les référentiels, mais il semble que quiconque puisse commencer un référentiel et donc je "Je vous préoccupe d'installer des objets à partir de certains référencements aléatoires pouvant infecter le serveur.

14
Buttle Butkus

Centos est un dérivé du très conservateur Red Hat Enterprise Linux, de sorte que les mises à jour des packages seront généralement retardées encore plus loin que RHEL. Les forfaits dans l'une ou l'autre distribution vont être un peu plus âgés.

Si vous utilisez Centos 5, vous devriez essayer Centos 6 pour voir s'il convient à vos besoins.

Si vous avez besoin de quelque chose d'un peu plus de pointe que Centos 6, vous devriez regarder à Fedora.

Suivi: Centos a été apporté "en interne" et est plus étroitement intégré. Les versions des plus récentes Centos verront les avantages d'un cycle de libération plus serré, mais pour les sorties plus anciennes, cette réponse sera toujours vraie.

11
Magellan

Ils ne sont pas obsolètes; Ils sont les derniers que Centos 5 a dans ses référentiels.

Chapeau rouge (et Ubuntu pour cette affaire) Jamais jamais, jamais publier une nouvelle version majeure du logiciel dans leurs référentiels de package pour une version OS donnée, pour des raisons de stabilité - vous ne souhaitez pas exécuter une mise à niveau et soudainement votre configuration travail.

Au lieu de cela, ils rétrodifférent des correctifs de sécurité et des correctifs importants dans la version du logiciel "stable" lorsque le système d'exploitation a été publié, évitant l'introduction de nouvelles fonctionnalités (et leurs bugs).

Puisque vous êtes sur Centos 5, les référentiels officiels ont des versions assez anciennes de choses. Mais craignez de ne pas - vous pouvez probablement facilement trouver un référentiel tiers avec les versions de logiciels dont vous avez besoin.

Ou pourquoi ne pas passer à 6?

6
Shane Madden

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

Vous pouvez utiliser REMI REPOSITOIN pour obtenir des versions plus récentes d'Apache/PHP/MySQL

Et vous ne faites pas que votre machine Centos fonctionne plus comme Ubuntu, car elle n'est pas Ubuntu. C'est comme dire "Comment puis-je rendre mon Chrysler conduire plus comme une Ford".


Réponse mise à jour:

J'en ai eu des votes sur cela, alors 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 j'ai installé les paquets, alors je devrais être où vous êtes maintenant:

[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 que les dernières versions, vous devriez utiliser le référentiel REMI comme je l'ai indiqué ci-dessus. Toutefois, si la version PHP 5.3 dans Centos est bien (5.3.3), suivez-la.

Lors de la tentative d'installation de PHP53, il se plaint qu'il existe un conflit, car ce paquet couvrira les mêmes choses que le paquet PHP 5.1. Pour résoudre ce problème, vous devez supprimer tous les packages connexes PHP pour commencer:

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

La prochaine chose que vous faites est d'installer les packages é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, PHP était assez facile. Mais MySQL est une autre histoire, car MySQL 5.0 est le seul mySQL dans les référentiels de Centos par défaut. Je gère la version 64 bits de Centos, si vous n'avez pas besoin d'ajuster les éléments suivants pour s'adapter à 32 bits.

Il y a plusieurs façons de le faire, mais je vais aller avec le référentiel REMI. Cela fait longtemps que des années et la maintenance est plus facile avec un repo que d'utiliser des fichiers de RPM simples.

REMI nécessite le référentiel EPEL alors commencez par installer que:

[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 REMI REPO RPM

[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 lorsque vous essayez d'installer le nouveau) .. Remarque! Si vous avez des bases de données sur là, Faites une sauvegarde avant de le faire!

[root@centos5 /]# yum remove mysql*

Ensuite, vous pouvez continuer et installer le mySQL à partir du référentiel REMI:

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

Maintenant, lorsque vous essayez de démarrer MySQL, cela peut échouer car l'ancien MySQL a laissé certaines choses derrière, et cela peut être un peu douloureux de se débarrasser de. Dans mon cas, j'avais besoin de supprimer certaines choses pour le faire fonctionner. Ceux-ci ont fait pour moi:

# 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
4
Frands Hansen