Ich versuche, die erwartete PECL-Erweiterung zu installieren.
Betriebssystemversion = 10.7.3
PHP-Version 5.3.10 über Macports installiert,
voraussichtliche Version 5.45 über Macports installiert
Der Befehl, den ich ausführe:
sudo pecl -d preferred_state=beta install expect
scheitert mitld: library not found for -lexpect
Die libexpect5.45.dylib
Datei befindet sich in /opt/local/lib
. Die vollständige Ausgabe des Installationsbefehls lautetHier.
Soweit ich das beurteilen kann, kann pecl die libexpect-Bibliothek einfach nicht finden. Ich habe sogar versucht, Folgendes voranzustellen:
LD_LIBRARY_PATH=/opt/local/lib/expect5.45
LD_LIBRARY_PATH=/System/Library/Tcl/8.5/expect5.45
LD_LIBRARY_PATH=/opt/local/lib
Jeder Standort hat eine expect5.45.dylib
Datei. Es hat nicht geholfen. Kann mir jemand helfen, herauszufinden, wie ich diese Erweiterung installieren kann?
Antwort1
LD_LIBRARY_PATH
wird unter OS X nicht verwendet und die entsprechende Umgebungsvariable hat keine Auswirkungen ld
(und kann andere Dinge beschädigen, da es sich im Gegensatz zu Linux um den gesamten Bibliothekspfad handelt, was bedeutet, dass kritische Bibliotheken wie libSystem.dylib
nicht mehr gefunden werden würden; andererseits sudo
bereinigt es seine Umgebung und würde daher ohnehin nicht funktionieren). Darüber hinaus würde dieser Bibliotheksname nicht übereinstimmen -lexpect
.
port contents expect
Auf meinem Lion-System wird mir eine statische Bibliothek (und ) angezeigt, aber /opt/local/lib/libexpect.a
keine libexpect5.45.a
dylib. Sind Sie sicher, dass sie richtig installiert ist? Überprüfen Sie die Ausgabe von port contents expect
.
Antwort2
OK, also dank einiger Fehlerbehebungen und Einblicke von @geekosaur lautet die Antwort: „pecl generiert kein korrektes Libtool-Skript, um diese Erweiterung auf MacOSX zu installieren“, zumindest auf meinem Setup. Ich bin wirklich dankbar für die Diskussion und die Fehlerbehebung. Meine nächste Frage lautet natürlich: „Wie behebe ich das pecl-Installationsskript?“ Aber das ist Thema für ein anderes Forum … :)