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

4

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

Мэтт С
источник
PECL - это собственный менеджер пакетов PHP, поэтому вы не найдете пакет Macports для APCu; вместо этого вы найдете пакет PECL для него. Рассмотрите этот ответ о переполнении стека, чтобы убедиться, что у вас установлен Pear (если sudo pearв командной строке что-то происходит, значит, он у вас уже есть), а затем попробуйте sudo pear search apcuили sudo pear search APCuнайти пакет Pear, который вы хотите установить.
Аарон Миллер
Спасибо, Аарон. У php55 в macports нет варианта с грушей, как в старых версиях. И нет пакета для добавления команды груши. Другие пакеты PECL, такие как memcached, находятся в macports как php55-memcached, но не apcu.
Мэтт S
В этом случае вам может потребоваться сборка из исходного кода, для чего требуется не только исходный код библиотеки, но и исходный код PHP; Вы, вероятно, можете получить это из Macports, но я бы не стал знать, как.
Аарон Миллер
Да, я надеялся избежать этого в крайнем случае.
Мэтт S

Ответы:

5

Я спотыкался о том, как заставить 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.
Мэтт S
«Безопасный» в каком смысле? Я почти не использую PEAR вне установки Drush , но у меня не было проблем с ним, когда я понял, как заставить его работать, как описано выше. Я также не думаю, что это «старый» каталог, так как я нашел его на новой машине, на которой никогда не было установлено более старого пакета PHP (не считая того, что упаковано в OS X, но эти вещи никогда не попадают под /optAFAIK).
Гаррет Олбрайт
Это работает для меня с PEAR, но PECL терпит неудачу. Он пытается скомпилировать против заголовков PHP разработчиков из OSX, а не из Macports. Таким образом, двоичный файл есть, но его необходимо перенастроить вручную.
Мэтт S
Не знаком с PECL, поэтому я не могу вам помочь, но добавлю, что если вы устанавливаете PECL с Macports, я нахожу странным, что он попытался бы скомпилировать против OS X вместо своих собственных.
Гаррет Олбрайт
1

В консоли терминала 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

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

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

Вместо этого вы можете попробовать Homebrew , например

brew install php56 --with-pear

Тогда peclкоманда должна быть уже там, если нет , связать ее снова через:

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

или вручную:

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