Ошибка установки PECL после обновления до OSX 10.8


2

Я только что обновил свою ОС до Mountain Lion, и PECL больше не работает (он на тестовом диске, так что ничего страшного, но я бы хотел, чтобы он работал, чтобы я мог обновить ОС и на своем новом SSD).

Я использую нативную установку PHP, без macports / homebrew или чего-то подобного.

Выполнение sudo pecl install uploadprogress(например) приводит к следующему выводу терминала:

downloading uploadprogress-1.0.3.1.tgz ...
Starting to download uploadprogress-1.0.3.1.tgz (9,040 bytes)
.....done: 9,040 bytes
4 source files, building
running: phpize
grep: /usr/include/php/main/php.h: No such file or directory
grep: /usr/include/php/Zend/zend_modules.h: No such file or directory
grep: /usr/include/php/Zend/zend_extensions.h: No such file or directory
Configuring for:
PHP Api Version:
Zend Module Api No:
Zend Extension Api No:
autom4te: need GNU m4 1.4 or later: /usr/bin/m4
ERROR: `phpize' failed

Я предполагаю, что проблема в 3 grepлиниях. Я нашел несколько потоков , которые предлагают это вызвано XCode не установлено ... но XCode будет установлен и обновлен до последней версии (4.4). Все соответствующие символические ссылки /Developer/usr/bin/*также существуют как и должны.

В настоящее время m4 находится в версии:, m4 (GNU M4) 1.4.13так что, хотя вышеприведенный вывод содержит строку, относящуюся к нему, я не думаю, что это может быть проблемой.

Я уверен, что это просто вопрос, у кого-нибудь есть какие-нибудь подсказки?

Ответы:


2

Попробуйте установить следующую команду (измените ваш путь соответственно), например:

M4=/Developer/usr/bin/m4 pecl install uploadprogress

1

Оказалось что-то смехотворно простое.

m4 теперь находится в / usr / local / bin / m4, что-то (может быть, autom4te?) искал его в / usr / bin / m4. Быстрая символическая ссылка хорошо устранила проблему.


1

Оказывается, вам может понадобиться согласиться с условиями XCode для M4. Для этого запустите:

sudo m4 version

и если вы запускаете его впервые после обновления, вам будет предложено прочитать и принять условия и положения. После этого вы можете использовать его, повторно выполнив ранее желаемую команду.


0

Это заняло у меня много времени, но вот как я это решил:

  • Бегать:

    which autom4te
    
  • дает вам путь autom4te. В моем случае это было:/Applications/MAMP/Library/bin/autom4te

  • Идите по этому пути и посмотрите, есть ли программа m4

  • Если это так, это может быть повреждено. Так что переименуйте это:

    mv m4 m4_old
    
  • Теперь проверьте, где находится ваша новая версия m4. Итак, бегите:

     which m4
    

Это дает вам: /path/to/your/m4

  • Теперь найдите символическую ссылку в папке с вашим autom4teисходным путем m4, так:

     ln -s /path/to/your/m4
    

Теперь должно работать, работает pecl

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.