Perché i pacchetti obsoleti sono installati da yum su CentOS? (in particolare PHP 5.1) Come risolvere?


14

Sto lavorando su un nuovo server CentOS e sono estremamente seccato di scoprire che yum non funziona in modo fluido e brillante come "apt-get install" su Ubuntu.

Installando uno stack LAMP, ho eseguito il seguente:

$ yum install php
$ yum install mysql

Inoltre:

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

Ora in esecuzione:

$ rpm -qa | grep php

... mostra che ho installato tutti i tipi di pacchetti php 5.1.6 e ho bisogno di un minimo di 5.2. Inoltre, vedo che ha installato mysql 5.0.77, anche se la versione corrente è la 5.5.20. Speriamo che mysql 5.0 funzioni. PHP 5.1 no.

Quindi la vera domanda (e) è (sono):

Come riparo il mio PHP per renderlo l'ultima versione stabile (5.3.9 secondo PHP.net)? Come faccio a far funzionare la mia macchina CentOS più come Ubuntu, quindi non devo più occuparmene?

Grazie mille.

EDIT: CentOS 5.7 è stato installato da una società di hosting la scorsa settimana, quindi non so perché avrebbero installato una versione precedente di CentOS, piuttosto che la più recente. Ho bisogno almeno di PHP 3.2, quindi apprezzo i suggerimenti su come farlo. Non ho molta familiarità con i pacchetti e i repository, ma sembra che chiunque possa avviare un repository e quindi sono preoccupato per l'installazione di cose da alcuni repository casuali che potrebbero infettare il server.


1
Si può sottolineare che, se si sta aderendo a una versione LTS di Ubuntu, Hardy è su PHP 5.2 e Lucid è su una 5.3.2 leggermente non abbastanza brillante. Esistono allo stesso modo versioni "vecchie" del server mysql nei repository LTS Ubuntu standard. RHEL5 è uscito un anno prima di Hardy, quindi non sorprende che sia su php 5.1. RHEL e Ubuntu LTS sono progettati per la stabilità del pacchetto. Se vuoi qualcosa di più aggiornato, usa Fedora o Ubuntu non LTS.
cjc,

Qui puoi aggiornare la tua versione di PHP a PHP5.5 webtatic.com/packages/php55
Mirza Selimovic,

Risposte:


11

CentOS è un DERIVATO del Red Hat Enterprise Linux molto conservativo, quindi gli aggiornamenti dei pacchetti saranno generalmente ritardati anche più di RHEL. I pacchetti in entrambe le distribuzioni saranno un po 'più vecchi.

Se usi CentOS 5, dovresti provare CentOS 6 per vedere se soddisfa le tue esigenze.

Se hai bisogno di qualcosa di un po 'più all'avanguardia rispetto a CentOS 6, dovresti esaminare Fedora.

Follow-up: CentOS è stato portato "in-house" ed è più strettamente integrato. Le versioni più recenti di CentOS vedranno i vantaggi di un ciclo di rilascio più stretto, ma per le versioni più vecchie questa risposta resterà valida.


2
La quantità di disinformazione in questo thread è assolutamente stupefacente. CentOS 5 contiene PHP 5.3 da oltre un anno, ma non è la versione installata per impostazione predefinita a causa dei problemi di ABI. yum install php53ti metterà in cammino.
jgoldschrafe,

Vero. Ho deciso di insegnargli a pescare invece di dargli un pesce. E suppongo che in realtà fosse leggermente snarky, ma ho dormito un paio d'ore in 36 e non dormirò molto questo fine settimana a causa dell'interruzione di SPOF.
Magellan,

2
@jgoldschrafe - Suggerirei di scrivere una tua risposta - sarebbe più produttivo di un semplice commento con correzioni.
EEAA

È un server dedicato presso una società di hosting. Personalmente avrei voluto avere il server sulla nostra proprietà, ma il capo si sentiva più sicuro in questo modo. Mi chiedo perché la società di hosting avrebbe installato CentOS 5.7 anziché l'ultimo.
Buttle Butkus,

4
@jgoldschrafe, per me la domanda, non sembrava essere specificamente sulla versione php. Sembra che la domanda riguardasse le politiche di rilascio conservativo, a cui penso che il post cerchi di rispondere. Penso che sia una strech chiamare queste informazioni sbagliate.
Zoredache,

6

Non sono obsoleti; sono le ultime che CentOS 5 ha nei suoi repository.

Red Hat (e Ubuntu per quella materia) non pubblicano mai, mai, una nuova versione principale del software nei loro repository di pacchetti per una data versione del sistema operativo, per motivi di stabilità - non vuoi eseguire un aggiornamento e improvvisamente non hai la tua configurazione opera.

Invece, eseguono il backport di correzioni di sicurezza e importanti correzioni di bug nella versione del software che era 'stabile' al rilascio del sistema operativo, evitando l'introduzione di nuove funzionalità (e dei loro bug).

Dato che sei su CentOS 5, i repository ufficiali hanno alcune versioni piuttosto vecchie di cose. Ma non temere: probabilmente puoi facilmente trovare un repository di terze parti con le versioni del software di cui hai bisogno.

Oppure, perché non aggiornare a 6?


Questo non è del tutto vero - PHP 5.3 è nei repository principali e devi solo farlo yum install php53.
jgoldschrafe,

1
@jgoldschrafe Buona chiamata. Anche se sembra che un repository di terze parti potrebbe essere ancora necessario per il nuovo MySQL.
Shane Madden

"Oppure, perché non aggiornare a 6?" La domanda migliore è perché SingleHop ci ha fornito 5.7 sul server? @jgoldschrafe sostituirà i pacchetti installati o devo rimuoverli manualmente?
Buttle Butkus,

CentOS 6 è diventato disponibile solo pochi mesi fa. Se la scatola fosse stata ordinata all'inizio dell'anno scorso, sarebbe stata 5,7. Se hai un'opzione per ridisegnare l'immagine della macchina con CentOS 6, puoi sicuramente farlo.
cjc,

@cjc È stato appena ordinato circa 2 settimane fa. Ho già FTP circa 80 GB, quindi penso che sarebbe più semplice far funzionare questa installazione. Sto cercando di usare ciò che jgoldschrafe ha raccomandato: yum installa php53, ma non funziona perché php è già installato.
Buttle Butkus,

4

Direi di disinstallare CentOS e installare Ubuntu, se è quello che vuoi usare. Ma deve essere una versione precedente di CentOS che usi. CentOS 6.2 utilizza PHP 5.3 e MySQL 5.1.

È possibile utilizzare il repository Remi per ottenere le versioni più recenti di Apache / PHP / MySQL

E non fai funzionare la tua macchina CentOS più come Ubuntu, perché non è Ubuntu. È come dire "Come faccio a guidare la mia Chrysler più come una Ford".


Risposta aggiornata:

Ho ottenuto alcuni voti negativi su questo, quindi penso che le mie intenzioni siano state fraintese, permettetemi di provare a correggerlo.

Ho installato un VPS nel nostro ambiente e installato i pacchetti, quindi dovrei essere dove sei adesso:

[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

Nella mia prima risposta, ho pensato che volessi le ultime versioni, quindi dovresti usare il repository Remi come ho detto sopra. Tuttavia, se la versione di PHP 5.3 all'interno di centOS va bene (5.3.3), continua a leggere.

Quando si tenta di installare php53 si lamenta che c'è un conflitto, poiché questo pacchetto coprirà le stesse cose del pacchetto PHP 5.1. Per risolvere questo problema, è necessario rimuovere tutti i pacchetti relativi a PHP per iniziare:

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

La prossima cosa da fare è installare i pacchetti equivalenti con 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

Quindi, PHP è stato abbastanza facile. Ma MySQL è un'altra storia, poiché MySQL 5.0 è l'unico MySQL nei repository CentOS predefiniti. Corro la versione a 64 bit di CentOS, se non è necessario regolare quanto segue per adattarsi invece a 32 bit.

Esistono diversi modi per farlo, ma vado con il repository Remi. È in circolazione da anni e la manutenzione è più semplice con un repository rispetto all'utilizzo di semplici file RPM.

Remi richiede il repository EPEL, quindi inizia installando:

[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%]

Successivamente, si installa RPM repository 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%]

Successivamente si rimuove il server MySQL corrente (altrimenti si verificheranno conflitti quando si tenta di installare quello nuovo) .. NOTA! Se hai dei database lì, fai un backup prima di farlo!

[root@centos5 /]# yum remove mysql*

Quindi puoi continuare e installare MySQL dal repository Remi:

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

Ora, quando si tenta di avviare MySQL, potrebbe non funzionare perché il vecchio mysql ha lasciato alcune cose alle spalle, e questo può essere un po 'doloroso da eliminare. Nel mio caso qui dovevo rimuovere alcune cose per farlo funzionare. Lo hanno fatto per me:

# 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

1
Bene, in sostanza si tratta di sapere se esiste un modo per ottenere pacchetti aggiornati anziché pacchetti non aggiornati.
Buttle Butkus,

@ButtleButkus Non so se vieni avvisato quando aggiorno, quindi scrivo un commento per essere sicuro :)
Frands Hansen,

Ho appena visto il tuo aggiornamento. Ho risolto il problema e la tua risposta sembra corrispondere a ciò che ho finito per fare. Devo ricontrollare i miei appunti però.
Buttle Butkus,

1
Ci sono un paio di fonti in più per rpms aggiornati. Rackspace IUS iuscommunity.org/pages/About.html e webtatic webtatic.com/projects/yum-repository
txyoji
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.