1

Хочу настроить PECL на PHP. Позарез нужен php5-dev, а все рекомендации гугла сводятся к

slapt-get -i php5-dev

Только вот беда... Ни в одном известном мне репозитории не могу найти этот пакет. Всё, что там доступно это цельный php. Подскажите где найти, а то у меня уже не хватает нервов

2

В Slackware в пакет традиционно пакуется всё, что предоставили разработчики, нарезка на -dev, -lib, ... не производится.
Отсюда 2 вопроса:
1) может оно уже внутри php5 присутствует?
2) ссылка на инструкцию была бы не лишней.

3

нарезка на -dev, -lib, ... не производится

Ага, вот оно что. Тогда вся история: Устанавливаю xdebug. Самый простой вариант это, как я понимаю через pecl http://www.xdebug.ru/install-xdebug
pecl install xdebug даёт

downloading xdebug-2.2.0.tar ...
Starting to download xdebug-2.2.0.tar (Unknown size)
......................done: 1,096,192 bytes
66 source files, building
running: phpize
Configuring for:
PHP Api Version:         20090626
Zend Module Api No:      20090626
Zend Extension Api No:   220090626
configure.in:3: warning: prefer named diversions
configure.in:3: warning: prefer named diversions
ERROR: `phpize' failed
root@co11terhost:~# pecl install xdebug
downloading xdebug-2.2.0.tar ...
Starting to download xdebug-2.2.0.tar (Unknown size)
..........................................................................................................done: 1,096,192 bytes
66 source files, building
running: phpize
Configuring for:
PHP Api Version:         20090626
Zend Module Api No:      20090626
Zend Extension Api No:   220090626
configure.in:3: warning: prefer named diversions
configure.in:3: warning: prefer named diversions
ERROR: `phpize' failed

Где-то я прочитал, что ERROR: `phpize' failed бывает когда не установлен php5-dev. Вот я и начал его искать. Выходит phpize косячит, сейчас поищу как это лечить...

4

http://www.linuxquestions.org/questions … ed-922211/

В частности, упомянутый там патч: http://kai.mactane.org/software/patch-p … r-1.38.txt
Хинт: патч скачивается с Win/DOS концами строк, поэтому перед применением нужно обработать либо dos2unix, либо "tr -d '\15\32' < patch-pear-builder-1.38.txt > patch-pear-builder-1.38".
То есть, алгоритм примерно такой:

# curl http://kai.mactane.org/software/patch-pear-builder-1.38.txt | tr -d '\15\32' > /tmp/patch-pear-builder-1.38
# ( cd /usr/lib/php/PEAR ; cp Builder.php{,.bak} ; patch -i /tmp/patch-pear-builder-1.38 )

Теперь можно ставить:

# pecl install xdebug

5 (29.05.2012 11:17:40 отредактировано co11ter)

Точный алгоритм (Slackware64 13.37):

curl http://kai.mactane.org/software/patch-pear-builder-1.38.txt | tr -d '\15\32' > /tmp/patch-pear-builder-1.38
cd /usr/lib64/php/PEAR
cp Builder.php Builder.bak.php
patch -i /tmp/patch-pear-builder-1.38

Дальше, можно # pecl install xdebug

P.S.  Вообще можно xdebug поставить из slackbuild.org и не заморачиваться, но там версия древнее

6

Из slackbuilds.org можно и свежий поставить, правда небольшой напильник всё же потребуется, как-то так примерно.

# export PKGTYPE=txz
# mkdir ~/bld; cd ~/bld

На страничке xdebug на slackbuilds.org видим потребность в libedit.
Сначала собираем/ставим libedit. Смотрим версию исходников в слакбилде (это libedit-20110227-3.0.tar.gz) и свежую версию на домашней страничке (это libedit-20120522-3.0.tar.gz). Далее традиционно:

# wget http://slackbuilds.org/slackbuilds/13.37/libraries/libedit.tar.gz
# tar xf libedit.tar.gz
# cd libedit
# sed -i *info *Build -e 's/20110227/20120522/g'
# . *info
# wget $DOWNLOAD

Если попробовать собрать сейчас, наступим на конфликт с term.h

  CC       terminal.lo
In file included from terminal.c:66:0:
/usr/include/term.h:791:31: error: conflicting types for 'tgetstr'
/usr/include/termcap.h:46:14: note: previous declaration of 'tgetstr' was here

поэтому изготавливаем патчик на предмет комментирования 66 строки в src/terminal.c:

# cat <<EOF >fix-term.patch
--- a/src/terminal.c    2012-05-29 12:53:43.162016387 +0400
+++ b/src/terminal.c    2012-05-29 12:52:07.326016626 +0400
@@ -63,7 +63,7 @@

 /* Solaris's term.h does horrid things. */
 #if defined(HAVE_TERM_H) && !defined(__sun)
-#include <term.h>
+/*#include <term.h>*/
 #endif

 #include <sys/types.h>
EOF

и прописываем его применение в SlackBuild:

 -exec chmod 644 {} \;

# Exclude term.h by conflicts
patch -i $CWD/fix-term.patch -p1 --verbose

CFLAGS="$SLKCFLAGS" \

Собираем, ставим:

# ./*Build
# upgradepkg --install-new /tmp/libedit-$VERSION-*t?z

Аналогично собираем/ставим xdebug. Предварительно смотрим последнюю версию на домашней странице: 2.2.0

# cd ~/bld
# wget http://slackbuilds.org/slackbuilds/13.37/development/xdebug.tar.gz
# tar xf xdebug.tar.gz
# cd xdebug
# sed -i *info *Build -e 's/2.1.4/2.2.0/g'
# . *info
# wget $DOWNLOAD

Если сейчас запустить сборку, обнаружится, что копируемого слакбилдом файла Changelog в этой версии исходников нет, поправим сие недоразумение

# sed -i *Build -e 's/Changelog //'
# ./*Build
# upgradepkg --install-new /tmp/xdebug-$VERSION-*t?z

Прибираемся:

# rm -rf /tmp/SBo/*