Как установить расширения PHP PECL с Macports?

11758
Matt S

Я использую PHP 5.5, установленный через Macports. Я хотел бы добавить библиотеку APCu PECL . Но нет пакета macports, и я не вижу способа установить утилиту командной строки PEAR / PECL. Так как же добавить APCu (или любую другую библиотеку PECL) в PHP 5.5, установленный через Macports?

4
PECL - это собственный менеджер пакетов PHP, поэтому вы не найдете пакет Macports для APCu; вместо этого вы найдете пакет PECL для него. Рассмотрим [этот ответ о переполнении стека] (http://stackoverflow.com/a/5808633/1713079), чтобы убедиться, что у вас установлен Pear (если `sudo pear` в командной строке что-то делает, значит, он у вас уже есть) , а затем попробуйте `sudo pear search apcu` или` sudo pear search APCu`, чтобы найти пакет Pear, который вы хотите установить. Aaron Miller 11 лет назад 0
Спасибо, Аарон. У php55 в macports нет варианта с грушей, как в старых версиях. И нет пакета для добавления команды груши. Другие пакеты PECL, такие как memcached, находятся в macports как php55-memcached, но не apcu. Matt S 11 лет назад 0
В этом случае вам может потребоваться сборка из исходного кода, для чего требуется не только исходный код библиотеки, но и исходный код PHP; Вы, вероятно, можете получить это из Macports, но я бы не стал знать, как. Aaron Miller 11 лет назад 0
Да, я надеялся избежать этого в крайнем случае. Matt S 11 лет назад 0

3 ответа на вопрос

5
Garrett Albright

Я спотыкался о том, как заставить PEAR работать и над MacPorts. Оказывается, я его как-то установил (возможно, с основным пакетом PHP, php54с вариантами по умолчанию в моем случае ...?), Но MacPorts не поместил бинарный файл в нормальное $PATHместо, поэтому моя оболочка не смогла его найти. Это зависало /opt/local/lib/php/pear/bin/pear. Простое ln -s /opt/local/lib/php/pear/bin/pear /opt/local/bin/pearи a rehash(этот бит может быть tcsh-ism), и я был в бизнесе.

Ах, я вижу это! Так безопасна ли эта версия pear для работы с php55, даже если она находится под старым каталогом php lib? Я думаю, им просто нужно поделиться выходным каталогом pear с помощью пакета php55-pear. Matt S 11 лет назад 0
«Безопасный» в каком смысле? Я не использую PEAR для установки за пределами [Drush] (https://github.com/drush-ops/drush), но у меня не было никаких проблем с ним, когда я понял, как заставить его работать как выше. Я также не думаю, что это «старый» каталог, так как я нашел его на новой машине, на которой никогда не было установлено более старого пакета PHP (не считая содержимого, упакованного с OS X, но эти вещи никогда не находятся в `/ opt` AFAIK ). Garrett Albright 11 лет назад 0
Это работает для меня с PEAR, но PECL терпит неудачу. Он пытается скомпилировать против заголовков PHP разработчиков из OSX, а не из Macports. Таким образом, двоичный файл есть, но его необходимо перенастроить вручную. Matt S 11 лет назад 0
Не знаком с PECL, поэтому я не могу помочь вам в этом, но добавлю, что если вы устанавливаете PECL с Macports, я нахожу странным, что он попытается скомпилировать что-то из OS X вместо своих собственных. Garrett Albright 11 лет назад 0
1
TrippyD

В консоли терминала Mac запустите:

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

Сейчас есть пакет с грушей для 5.4. Вы можете тогда:

$ sudo port install php54-pear 

И ты должен быть в хорошей форме.

Можете ли вы объяснить, как добраться до этой точки? Не обязательно для ОП, но для других, кто попал на эту страницу из поисковых систем и не знает? Canadian Luke 10 лет назад 0
Отредактировано для уточнения. Спасибо Люк. TrippyD 10 лет назад 0
-3
kenorb

You can try Homebrew instead, e.g.

brew install php56 --with-pear 

Then pecl command should be already there, if not, link it again via:

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

or manually:

ln -vs "$(find /usr/local/Cellar/php56 -name pecl -print -quit)" /usr/local/bin 
CYS, MacPorts имеет несколько последних пакетов, которые я прочитал. cwallenpoole 6 лет назад 0