2013-02-04 11 views
17

Non conosco praticamente nulla sull'installazione dei pacchetti. Sono riuscito a installare Zend Framework 1 con yum qualche tempo fa, seguendo un tutorial molto specifico.Come installare l'estensione intl di PHP su CentOS?

Ora ho bisogno dell'estensione intl di PHP e non riesco a capire come installarlo.

ho fatto

yum list php*intl 

e ho visto che c'era una disponibile. Così ho fatto

yum install php-intl 

ed ho ottenuto il seguente messaggio di errore:

Error: Package: php-intl-5.3.3-14.el6_3.x86_64 (updates) 
     Requires: php-common = 5.3.3-14.el6_3 
     Installed: php-common-5.3.17-2.el6.remi.x86_64 (@remi) 
      php-common = 5.3.17-2.el6.remi 
     Available: php-common-5.3.3-3.el6_2.8.x86_64 (base) 
      php-common = 5.3.3-3.el6_2.8 
     Available: php-common-5.3.3-14.el6_3.x86_64 (updates) 
      php-common = 5.3.3-14.el6_3 
You could try using --skip-broken to work around the problem 
You could try running: rpm -Va --nofiles --nodigest 

non ho provato i suggerimenti indicati nel messaggio, perché non sapevo cosa avrebbero fatto e ho paura di rompere qualcosa. Questa è una macchina di produzione e non ho un'altra macchina su cui testare. Ho provato a trovare un rpm per scaricare che era la stessa versione del mio PHP, ma non ho avuto fortuna.

Cosa fanno questi due suggerimenti e sono sicuri di provare ? Cos'altro posso provare per ottenere l'estensione intl installata?

risposta

20

Come avete php-commom dai repository Remi, è necessario ottenere php-Intl da remi anche.

Aggiungi --enable-repo opzione come segue:

yum --enablerepo=remi install php-intl 
+0

Non riesco a testare questo perché remi è ora PHP 5.4 e non sono ancora pronto per l'aggiornamento. Ma la risposta ha perfettamente senso e presumo che avrebbe dato il risultato desiderato quando remi era ancora PHP 5.3.x. – toxalot

+0

Hai ragione, ho ricevuto lo stesso messaggio di errore ma ho PHP 5.4 –

1

Yum genera un errore perché stiamo tentando di aggiornare più pacchetti a versioni in conflitto. Il tuo output yum dice che php-intl richiede una versione specifica del php-common. Rimozione tutte le cianfrusaglie:

Requires 5.3.3-14 
Installed 5.3.17-2 
Available 1st Option: 5.3.3-3 
Available 2nd Option: 5.3.3-14 

Questo ci dice che avete già installato una versione più recente di php-comune (5.3.17-2) rispetto a quanto consentito dalla php-Intl.

Penso che tu abbia due opzioni. (Come un principiante me stesso, non vorrei tentare questi senza praticare in un ambiente dev.)

1) Rimuovere i pacchetti remi

Citando una domanda simile su Super User. "Prova a rimuovere tutti i pacchetti remi php, disattiva repository remi e installa i pacchetti predefiniti di centos 6 php 5.3.3."

https://superuser.com/questions/505340/centos-6-how-to-install-php-mysql-when-php-common-remi-is-present

2) Downgrade php-comune alla versione 5.3.3-14

yum downgrade php-common 

Non ho idea se si desidera eseguire in più problemi di dipendenza e devono downgrade altri pacchetti. Ho trovato maggiori dettagli qui.

https://www.centos.org/modules/newbb/viewtopic.php?topic_id=40567&forum=56

Altri siti di Pila cambio Mostra domande simili.

https://serverfault.com/search?q=centos+error+package (370 risultati)

https://unix.stackexchange.com/search?q=centos+error+package (57 risultati)

6

Se avete la versione di PHP più alto come 5.6, è necessario attivare sia remi e remi-php56 pronti contro termine per installare tutte le dipendenze aggiuntive:

yum --enablerepo=remi,remi-php56 install php-intl 
2

I installato con successo INTL via pecl seguendo i passaggi seguenti.

1) installare ICU & librerie:

yum -y install icu libicu libicu-devel

2) php-devel pacchetto e phpize:

yum -y install php-devel phpize

3) e, naturalmente gcc:

yum -y install gcc gcc-cpp gcc-c++

Questo funziona per me.my versione php è 5.6.12