PECL установка не удалась - PullRequest
8 голосов
/ 23 мая 2009

Я просмотрел все результаты Google, прочитал все сообщения на форуме об этой ошибке, но не могу ее исправить.

При установке PECL для чего-либо, я всегда получаю эту ошибку:

checking whether the C compiler works... configure: error: cannot run C compiled programs.

Все остальное удается до этого момента, бам!

Я использую CentOS 4.3, PEAR - последняя стабильная версия, GCC - стабильная и последняя версия. Все работает как надо, но компилятор C всегда кажется ошибочным. Я попытался сделать так, чтобы у tmp были права для этой операции, временно включив ее с помощью:

mount -o remount,exec,suid /tmp

Но это не работает.

Я буквально перепробовал все, что было предложено, но безрезультатно. Есть идеи?

Ответы [ 3 ]

9 голосов
/ 21 ноября 2009

Я использую Centos 5.3, и мне удалось успешно запустить установщики PECL (в моем случае APC), удалив флаг noexec на / tmp и / var / tmp

mount -o remount,exec,suid /tmp
mount -o remount,exec,suid /var/tmp

Выполнение этого только на / tmp не сработало - я все еще получал ошибку «проверка работоспособности компилятора C ... configure: error: не могу запустить скомпилированные программы на C».

Не забудьте снова запустить эти ремонты с noexec после завершения установки.

7 голосов
/ 25 мая 2009
cd ~
mkdir setups
cd setups
wget http://pecl.php.net/get/APC-3.1.2.tgz
tar -xvf APC-3.1.2.tgz
cd APC-3.1.2
phpize && ./configure --with-apxs && make

Я быстро написал это и смог установить APC с небольшим количеством ручной работы. Например, копирование модуля в модули PHP и добавление расширения в php.ini. Отлично работает сейчас.

2 голосов
/ 13 марта 2011

Когда у меня были похожие проблемы при установке драйвера MongoDB, это работало для меня:

sudo mkdir /root/tmp.pear
sudo mkdir /root/tmp.pear-build-root

sudo ln -s /root/tmp.pear /tmp/pear
sudo ln -s /root/tmp.pear-build-root /tmp/pear-build-root

Тогда:

sudo sudo pecl install XXX

(Это не открывает дыру в безопасности, потому что только root может создавать исполняемые файлы в этих двух каталогах.)

Обратите внимание, что следующее не работает для PECL:

sudo pear config-set temp_dir /var/tmp/pear/temp
...