Wie installiere ich PHP PECL-Erweiterungen mit Macports?

11778
Matt S

Ich verwende PHP 5.5, das über Macports installiert wird. Ich möchte die APCu PECL- Bibliothek hinzufügen . Es gibt jedoch kein macports-Paket, und ich sehe keine Möglichkeit, das PEAR / PECL-Befehlszeilenprogramm zu installieren. Wie fügt man PHP 5.5, das über Macports installiert wird, APCu (oder eigentlich irgendeine PECL-Bibliothek) hinzu?

4
PECL ist der eigene Paketmanager von PHP, sodass Sie kein Macports-Paket für APCu finden. Sie würden stattdessen ein PECL-Paket dafür finden. Berücksichtigen Sie [diese Stack Overflow-Antwort] (http://stackoverflow.com/a/5808633/1713079), um sicherzustellen, dass Sie Pear installiert haben (wenn "sudo pear" in der Befehlszeile etwas bewirkt, dann haben Sie es bereits). und dann `sudo pear search apcu 'oder` sudo pear search APCu', um das Birnenpaket zu finden, das Sie installieren möchten. Aaron Miller vor 10 Jahren 0
Danke, Aaron. php55 auf macports hat keine Birnenvariante wie die älteren Versionen. Und es gibt kein Paket zum Hinzufügen des Birnenbefehls. Andere PECL-Pakete wie memcached befinden sich in macports als php55-memcached, jedoch nicht als apcu. Matt S vor 10 Jahren 0
In diesem Fall müssen Sie möglicherweise eine Quelle erstellen, für die nicht nur die Bibliotheksquelle, sondern auch die PHP-Quelle erforderlich ist. Sie können das wahrscheinlich von Macports bekommen, aber ich würde nicht wissen, wie. Aaron Miller vor 10 Jahren 0
Ja, ich hatte gehofft, das als letzter Ausweg zu vermeiden. Matt S vor 10 Jahren 0

3 Antworten auf die Frage

5
Garrett Albright

Ich stolperte darüber, wie man PEAR auch mit MacPorts arbeiten lässt. Es stellt sich heraus, dass ich es irgendwie installiert habe (möglicherweise mit dem PHP-Kernpaket, php54in meinem Fall mit den Standardvarianten…?), Aber MacPorts hat die Binärdatei nicht an einem normalen $PATHSpeicherort abgelegt, sodass meine Shell sie nicht finden konnte. Es hing draußen herum /opt/local/lib/php/pear/bin/pear. Ein einfaches ln -s /opt/local/lib/php/pear/bin/pear /opt/local/bin/pearund ein rehash(dieses Bit könnte ein tcsh-ism sein), und ich war im Geschäft.

Ah ich sehe es! Ist diese Version von Pear also sicher, um mit PHP 55 zu laufen, obwohl sie unter dem älteren PHP-Verzeichnis liegt? Ich denke, sie müssen nur das Birnenausgabeverzeichnis mit dem php55-pear-Paket teilen. Matt S vor 10 Jahren 0
"Sicher" in welchem ​​Sinne? Ich benutze PEAR nicht viel außerhalb der Installation von [Drush] (https://github.com/drush-ops/drush), aber ich hatte keine Probleme damit, als ich herausfand, wie es funktioniert über. Ich glaube auch nicht, dass es sich um ein "älteres" Verzeichnis handelt, da ich es auf einer neuen Maschine gefunden habe, auf der nie ein älteres PHP-Paket installiert war (nicht alles, was mit OS X gepackt ist, aber diese Dinge stehen niemals unter "/ opt" AFAIK ). Garrett Albright vor 10 Jahren 0
Bei PEAR hat das funktioniert, aber PECL scheitert. Es wird versucht, die PHP-Dev-Header von OSX zu kompilieren, nicht die von Macports. Die Binärdatei ist also vorhanden, muss aber manuell neu konfiguriert werden. Matt S vor 10 Jahren 0
Ich bin nicht mit PECL vertraut, daher kann ich Ihnen dort nicht helfen, aber ich füge hinzu, dass ich es für seltsam finde, wenn Sie PECL mit Macports installieren, es würde versuchen, gegen OS Xs Sachen zu kompilieren, anstatt es zu besitzen. Garrett Albright vor 10 Jahren 0
1
TrippyD

Führen Sie auf der Mac-Terminal-Konsole Folgendes aus:

$ port search pear | grep php54 php54-pear @20110901_4 (php, www) Optional port adds the PEAR repository to the include path for php54. 

Es gibt jetzt ein Birnenpaket für 5.4. Sie können dann:

$ sudo port install php54-pear 

Und du solltest in guter Form sein.

Können Sie uns erklären, wie Sie zu diesem Punkt gelangen? Nicht unbedingt für das OP, aber für andere, die diese Seite von Suchmaschinen aus aufrufen und nicht wissen? Canadian Luke vor 10 Jahren 0
Zur Klarstellung editiert. Thx Luke. TrippyD vor 10 Jahren 0
-3
kenorb

Sie können stattdessen Homebrew ausprobieren, z

brew install php56 --with-pear 

Dann peclsollte der Befehl schon da sein, falls nicht, verlinke ihn erneut über:

brew unlink php56 && brew link php56 --dry-run && brew link php56 

oder manuell:

ln -vs "$(find /usr/local/Cellar/php56 -name pecl -print -quit)" /usr/local/bin 
CYS dazu hat MacPorts einige recht aktuelle Pakete von mir. cwallenpoole vor 6 Jahren 0