2013-02-04 7 views
17

Ich weiß praktisch nichts über die Installation von Paketen. Ich habe es geschafft, Zend Framework 1 vor einiger Zeit mit einem sehr speziellen Tutorial zu installieren.Wie installiere ich PHP Intl-Erweiterung auf CentOS?

Jetzt brauche ich die PHP-Intl-Erweiterung und ich kann nicht herausfinden, wie man es installiert.

Ich habe

yum list php*intl 

und sah, dass es einen gab. Also habe ich

yum install php-intl 

und bekam die folgende Fehlermeldung:

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 

Ich habe nicht versucht, die Vorschläge in der Mitteilung erwähnt, weil ich nicht wusste, was sie tun würden, und ich habe Angst vor Bruch etwas. Dies ist eine Produktionsmaschine und ich habe keine andere Maschine zum Testen. Ich habe versucht, eine RPM zum Herunterladen zu finden, die die gleiche Version wie meine PHP war, hatte aber kein Glück.

Was tun diese beiden Vorschläge und sind sie sicher zu versuchen? Was kann ich sonst noch versuchen, um die intl-Erweiterung zu installieren?

Antwort

20

Wie Sie php-commom von Remi-Repositories haben, müssen Sie php-intl von Remi auch bekommen.

--enable-repo Option hinzufügen wie folgt:

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

Ich bin nicht in der Lage, dies zu testen, weil Remi ist jetzt PHP 5.4 und ich bin noch nicht bereit für ein Upgrade noch. Aber die Antwort macht absolut Sinn und ich nehme an, dass es das gewünschte Ergebnis gegeben hätte, wenn Remi noch PHP 5.3.x gewesen wäre. – toxalot

+0

Sie haben Recht, ich habe die gleiche Fehlermeldung, aber ich habe PHP 5.4 –

1

Yum gibt einen Fehler aus, weil wir versuchen, mehrere Pakete auf Versionen zu aktualisieren, die einen Konflikt verursachen. Deine yum-Ausgabe sagt, dass php-intl eine bestimmte Version des php-common benötigt. Entfernen alle Junk:

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

Dies sagt uns, dass Sie bereits eine neuere Version von PHP-common installiert haben (5.3.17-2) als durch php-intl erlaubt ist.

Ich denke, Sie haben zwei Möglichkeiten. (Als Neuling mich, würde ich versuchen, diese nicht ohne in einer Entwickler-Umgebung zu üben.)

1) entfernen remi Pakete

aus einer ähnlichen Frage auf Super User Zitiert. "Versuchen Sie, alle remi php-Pakete zu entfernen, deaktivieren Sie das remi-Repository und installieren Sie die standardmäßigen centos 6 php 5.3.3-Pakete."

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

2) degradieren php-gemeinsam Version 5.3.3-14

yum downgrade php-common 

Ich habe keine Ahnung, wenn Sie mehr Abhängigkeitsprobleme laufen würde und haben auch andere Pakete degradieren. Ich habe hier mehr Details gefunden.

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

Andere Stapel Exchange-Standorte zeigen ähnliche Fragen.

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

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

6

Wenn Sie höhere PHP-Version wie 5.6 haben, müssen Sie beide remi und remi-php56 repos ermöglichen, alle zusätzlichen Abhängigkeiten zu installieren:

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

I erfolgreich installiert INTL über pecl mit folgenden Schritten.

1) Installieren ICU & libs:

yum -y install icu libicu libicu-devel

2) php-Entwick-Paket und phpize:

yum -y install php-devel phpize

3) und natürlich gcc:

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

Dies funktioniert für me.my PHP-Version ist 5.6.12