Question Pourquoi les paquets obsolètes sont-ils installés par yum sur CentOS? (spécifiquement PHP 5.1) Comment résoudre ce problème?


Je travaille sur un nouveau serveur CentOS et je suis extrêmement ennuyé de savoir que miam ne fonctionne pas aussi bien et avec autant de brio que "apt-get install" sur Ubuntu.

En installant une pile LAMP, j’ai exécuté:

$ 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 paquets php 5.1.6 installés et que j'ai besoin de 5.2 minimum. De plus, je vois qu'il a installé MySQL 5.0.77, même si la version actuelle est la 5.5.20. Mais espérons que mysql 5.0 fonctionnera. PHP 5.1 ne sera pas.

Donc la vraie question (s) est (sont):

Comment puis-je corriger mon PHP pour en faire la dernière version stable (5.3.9 selon PHP.net)? Comment faire en sorte que ma machine CentOS fonctionne plus comme Ubuntu afin de ne plus avoir à gérer cela?

Merci beaucoup.

MODIFIER: 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, au lieu de la plus récente. J'ai au moins besoin de PHP 3.2, alors j'apprécie les suggestions sur la façon de le faire. Je ne connais pas très bien les packages et les référentiels, mais il semble que tout le monde puisse démarrer un référentiel. L'installation d'éléments à partir d'un référentiel aléatoire susceptible d'infecter le serveur me préoccupe donc.


12
2018-01-28 01:29


origine


On peut noter que, si vous vous en tenez à une version LTS d’Ubuntu, Hardy est sur le php 5.2 et Lucid est sur un 5.3.2 un peu assez brillant. De même, il existe de "vieilles" versions de serveur mysql dans le dépôt standard Ubuntu LTS. RHEL5 est sorti un an avant Hardy, il n’est donc pas étonnant que ce soit sur php 5.1. RHEL et Ubuntu LTS sont conçus pour la stabilité des packages. Si vous voulez quelque chose de plus à jour, utilisez Fedora ou Ubuntu sans LTS. - cjc
Voici où vous pouvez mettre à jour votre version de PHP pour PHP5.5  webtatic.com/packages/php55 - Mirza Selimovic


Réponses:


CentOS est un dérivé du très conservateur Red Hat Enterprise Linux. Par conséquent, les mises à jour de paquetages seront généralement retardées encore plus longtemps que RHEL. Les paquets dans les deux distributions vont être un peu plus vieux.

Si vous utilisez CentOS 5, vous devriez essayer CentOS 6 pour voir si cela répond à vos besoins.

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

Suivi: CentOS a été introduit "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 versions antérieures, cette réponse sera toujours vraie.


11
2018-01-28 01:42



La quantité de désinformation dans ce fil est absolument stupéfiante. CentOS 5 contient PHP 5.3 depuis plus d’un an, mais ce n’est pas la version installée par défaut pour des raisons ABI. yum install php53 va vous mettre sur votre chemin. - jgoldschrafe
Vrai. J'ai décidé de lui apprendre à pêcher au lieu de lui donner un poisson. Et je suppose que c'était en fait un peu sournois, mais j'ai dormi quelques heures sur 36 et ne dormirai pas beaucoup ce week-end non plus en raison d'une panne de SPOF. - Magellan
@jgoldschrafe - Je suggérerais d'écrire votre propre réponse - ce serait plus productif que de simplement commenter avec des corrections. - EEAA
C'est un serveur dédié chez un hébergeur. Personnellement, j'aurais voulu avoir le serveur sur notre propriété, mais le patron se sentait plus en sécurité de cette façon. Je me demande pourquoi la société d'hébergement installerait CentOS 5.7 au lieu de la dernière. - Buttle Butkus
@jgoldschrafe, selon moi, la question ne semblait pas concerner spécifiquement la version php. Il semble bien que la question concernait les politiques de publication conservatrices, auxquelles le post tente de répondre, je pense. Je pense qu'il est difficile d'appeler cette information erronée. - Zoredache


Ils ne sont pas démodés; ils sont les derniers que CentOS 5 a dans ses référentiels.

Red Hat (et Ubuntu en l'occurrence) ne publient jamais, pour des raisons de stabilité, une nouvelle version majeure du logiciel dans leurs référentiels de packages, pour des raisons de stabilité. Vous ne voulez pas exécuter de mise à niveau et vous ne voulez pas que votre configuration travail.

Au lieu de cela, ils reportent les correctifs de sécurité et les corrections de bugs importants dans la version du logiciel qui était 'stable' lors de la publication du système d'exploitation, évitant ainsi l'introduction de nouvelles fonctionnalités (et de leurs bogues).

Depuis que vous êtes sur CentOS 5, les dépôts officiels ont des versions assez anciennes. Mais ne craignez rien - vous pouvez probablement facilement trouver un référentiel tiers avec les versions de logiciel dont vous avez besoin.

Ou pourquoi ne pas passer à 6?


6
2018-01-28 01:44



Ce n'est pas tout à fait vrai - PHP 5.3 est dans le dépôt principal et vous devez juste yum install php53. - jgoldschrafe
@jgoldschrafe Bon appel. Bien qu'il semble qu'un référentiel tiers puisse encore être nécessaire pour les nouveaux MySQL. - Shane Madden♦
"Ou, pourquoi ne pas passer à 6?" La meilleure question est pourquoi SingleHop nous a-t-il attribué 5.7 sur le serveur? @jgoldschrafe remplacera-t-il les packages installés ou dois-je les supprimer manuellement? - Buttle Butkus
CentOS 6 est disponible depuis quelques mois seulement. Si la boîte avait été commandée plus tôt l’année dernière, elle aurait été de 5,7. Si vous avez la possibilité de créer une nouvelle image de la machine avec CentOS 6, vous pouvez certainement le faire. - cjc
@cjc Il a été commandé il y a environ 2 semaines. J'ai déjà mis environ 80 Go par FTP, je pense donc qu'il serait plus facile de simplement faire fonctionner cette installation. J'essaie d'utiliser ce que jgoldschrafe a recommandé: miam installer php53, mais cela ne fonctionne pas car php est déjà installé. - Buttle Butkus


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

Vous pouvez utiliser Référentiel Remi pour obtenir de nouvelles versions 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 si on disait "Comment faire en sorte que ma Chrysler conduise davantage comme une Ford".


Réponse mise à jour:

J'ai eu quelques votes négatifs à ce sujet, 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 installé les paquetages. Je devrais donc être où vous en ê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 souhaitiez utiliser les dernières versions. Vous devez ensuite utiliser le référentiel Remi comme je l'ai indiqué ci-dessus. Cependant, si la version de PHP 5.3 dans centOS est correcte (5.3.3), lisez la suite.

En essayant d'installer php53, il se plaint qu'il y a un conflit, puisque ce paquet couvrira les mêmes choses que le paquet PHP 5.1. Pour résoudre ce problème, vous devez commencer par supprimer tous les paquets liés à 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, PHP était assez facile. Mais MySQL est une autre histoire, puisque MySQL 5.0 est le seul MySQL dans les référentiels CentOS par défaut. J'exécute la version 64 bits de CentOS. Si vous ne l'utilisez pas, vous devez ajuster les éléments suivants pour qu'ils tiennent à 32 bits.

Il y a plusieurs façons de faire cela, mais je vais utiliser le référentiel Remi. Il existe depuis des années et la maintenance est plus facile avec un référentiel qu'avec des fichiers RPM simples.

Rémi a besoin du Référentiel EPEL alors commencez par installer ça:

[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 RPM repo 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 aurez des conflits en essayant d’installer le nouveau) .. REMARQUE! Si vous avez des bases de données là-bas, faites une sauvegarde avant de le faire!

[root@centos5 /]# yum remove mysql*

Ensuite, vous pouvez continuer et installer 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 le vieux mysql laissait des traces, ce qui peut être assez pénible à éliminer. Dans mon cas, il fallait que je supprime certaines choses pour que cela fonctionne. Ceux-ci l'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
2018-01-28 01:43



Welp, il s’agit essentiellement de savoir s’il existe ou non un moyen d’obtenir des paquets à jour plutôt que des paquets périmés. - Buttle Butkus
@ButtleButkus Je ne sais pas si vous êtes averti de la mise à jour, alors j'écris un commentaire pour vous en assurer :) - Frands Hansen
Je viens de voir votre mise à jour. J'ai résolu le problème et votre réponse semble correspondre à ce que j'ai fini par faire. Besoin de vérifier mes notes cependant. - Buttle Butkus
Il existe quelques sources supplémentaires pour les RPM à jour. Rackspace IUS iuscommunity.org/pages/About.html et webtatic webtatic.com/projects/yum-repository - txyoji