Make não roda com “sudo pecl install pdo”, por quê?

1

Aqui é o arquivo de log, o make não é executado. Eu segui as instruções de Ronald Bauman aqui . Abaixo você pode encontrar o ponto onde ele falha. Como posso depurar isso?

/bin/bash /tmp/pear/temp/pear-build-rootq7RxQ6/PDO-1.0.3/libtool --mode=compile cc  -I. -I/tmp/pear/temp/PDO -DPHP_ATOM_INC -I/tmp/pear/temp/pear-build-rootq7RxQ6/PDO-1.0.3/include -I/tmp/pear/temp/pear-build-rootq7RxQ6/PDO-1.0.3/main -I/tmp/pear/temp/PDO -I/usr/include/php5 -I/usr/include/php5/main -I/usr/include/php5/TSRM -I/usr/include/php5/Zend -I/usr/include/php5/ext -I/usr/include/php5/ext/date/lib -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64  -DHAVE_CONFIG_H  -g -O2   -c /tmp/pear/temp/PDO/pdo.c -o pdo.lo
libtool: compile:  cc -I. -I/tmp/pear/temp/PDO -DPHP_ATOM_INC -I/tmp/pear/temp/pear-build-rootq7RxQ6/PDO-1.0.3/include -I/tmp/pear/temp/pear-build-rootq7RxQ6/PDO-1.0.3/main -I/tmp/pear/temp/PDO -I/usr/include/php5 -I/usr/include/php5/main -I/usr/include/php5/TSRM -I/usr/include/php5/Zend -I/usr/include/php5/ext -I/usr/include/php5/ext/date/lib -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DHAVE_CONFIG_H -g -O2 -c /tmp/pear/temp/PDO/pdo.c  -fPIC -DPIC -o .libs/pdo.o
/bin/bash /tmp/pear/temp/pear-build-rootq7RxQ6/PDO-1.0.3/libtool --mode=compile cc  -I. -I/tmp/pear/temp/PDO -DPHP_ATOM_INC -I/tmp/pear/temp/pear-build-rootq7RxQ6/PDO-1.0.3/include -I/tmp/pear/temp/pear-build-rootq7RxQ6/PDO-1.0.3/main -I/tmp/pear/temp/PDO -I/usr/include/php5 -I/usr/include/php5/main -I/usr/include/php5/TSRM -I/usr/include/php5/Zend -I/usr/include/php5/ext -I/usr/include/php5/ext/date/lib -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64  -DHAVE_CONFIG_H  -g -O2   -c /tmp/pear/temp/PDO/pdo_dbh.c -o pdo_dbh.lo
libtool: compile:  cc -I. -I/tmp/pear/temp/PDO -DPHP_ATOM_INC -I/tmp/pear/temp/pear-build-rootq7RxQ6/PDO-1.0.3/include -I/tmp/pear/temp/pear-build-rootq7RxQ6/PDO-1.0.3/main -I/tmp/pear/temp/PDO -I/usr/include/php5 -I/usr/include/php5/main -I/usr/include/php5/TSRM -I/usr/include/php5/Zend -I/usr/include/php5/ext -I/usr/include/php5/ext/date/lib -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DHAVE_CONFIG_H -g -O2 -c /tmp/pear/temp/PDO/pdo_dbh.c  -fPIC -DPIC -o .libs/pdo_dbh.o
/tmp/pear/temp/PDO/pdo_dbh.c: In function ‘pdo_stmt_instantiate’:
/tmp/pear/temp/PDO/pdo_dbh.c:410:8: error: ‘zval’ has no member named ‘refcount’
/tmp/pear/temp/PDO/pdo_dbh.c:411:8: error: ‘zval’ has no member named ‘is_ref’
/tmp/pear/temp/PDO/pdo_dbh.c: In function ‘pdo_stmt_construct’:
/tmp/pear/temp/PDO/pdo_dbh.c:435:6: error: ‘zend_fcall_info’ has no member named ‘object_pp’
/tmp/pear/temp/PDO/pdo_dbh.c:458:6: error: ‘zend_fcall_info_cache’ has no member named ‘object_pp’
/tmp/pear/temp/PDO/pdo_dbh.c: In function ‘zim_PDO_setAttribute’:
/tmp/pear/temp/PDO/pdo_dbh.c:752:12: error: ‘zval’ has no member named ‘refcount’
/tmp/pear/temp/PDO/pdo_dbh.c: In function ‘zim_PDO_getAttribute’:
/tmp/pear/temp/PDO/pdo_dbh.c:818:28: error: ‘zval’ has no member named ‘refcount’
/tmp/pear/temp/PDO/pdo_dbh.c: In function ‘pdo_hash_methods’:
/tmp/pear/temp/PDO/pdo_dbh.c:1122:24: warning: assignment discards qualifiers from pointer target type
/tmp/pear/temp/PDO/pdo_dbh.c:1126:20: warning: assignment discards qualifiers from pointer target type
make: *** [pdo_dbh.lo] Error 1
ERROR: 'make' failed
    
por otto 23.06.2011 / 18:54

3 respostas

2

Os pacotes

php5-mysql , php5-pgsql e php5-sqlite fornecerão as extensões PDO com eles. A pêra não é necessária para isso.

sudo apt-get install php5-mysql php5-postgres php5-sqlite
    
por Marco Ceppi 05.12.2011 / 21:11
1

Enquanto tentava instalar o drupal7 sob o Debian wheezy, encontrei erros de make idênticos, como mostrado aqui.

O erro inicial foi: PHP Erro fatal: constante de classe indefinida 'MYSQL_ATTR_USE_BUFFERED_QUERY' em /usr/share/drupal7/includes/database/mysql/database.inc na linha 42

Em seguida, instalar com "pecl install pdo" deu os erros acima de make.

Seguindo isto: link A questão foi evitada.

    
por Kiharo 04.11.2011 / 04:22
0

Você não especificou a versão do PHP usada, então estou apenas adivinhando o motivo. A razão mais provável para a falha de compilação é que você está usando uma versão incompatível do módulo PECL e da versão do PHP.

Houve uma mudança nos internos do Zend entre o PHP 5.4 e o PHP 5.3, então os módulos precisavam de uma atualização.

Juntamente com o fato de que o módulo PDO não é mais mantido faz suposição bastante razoável de que você está usando caminho-para- módulo PDO antigo com PHP mais recente, que não funcionará por razões que já afirmei.

Por exemplo basta usar os módulos (php5-mysql, php5-pgsql) fornecidos pela distribuição.

    
por oerdnj 08.03.2013 / 08:27