PDA

Bekijk Volledige Versie : Gek van PECL



ju5t
31/10/09, 14:49
PECL heeft blijkbaar de nare eigenschap niet te snappen wat ik bedoel.


# /usr/local/php5/bin/pecl install zip
WARNING: channel "pecl.php.net" has updated its protocols, use "channel-update pecl.php.net" to update
downloading zip-1.10.2.tgz ...
Starting to download zip-1.10.2.tgz (236,912 bytes)
........................................done: 236,912 bytes
61 source files, building
running: phpize
Configuring for:
PHP Api Version: 20020918
Zend Module Api No: 20020429
Zend Extension Api No: 20050606
building in /var/tmp/pear-build-root/zip-1.10.2
running: /usr/src/tmp/zip/configure
checking build system type... i686-pc-linux-gnu
checking host system type... i686-pc-linux-gnu
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for a sed that does not truncate output... /bin/sed
checking for gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... configure: error: cannot run C compiled programs.
If you meant to cross compile, use `--host'.
See `config.log' for more details.
ERROR: `/usr/src/tmp/zip/configure' failed

Straightforward error, /var/tmp is immers gemount met noexec en ik weiger te remounten. Dit is iets wat veel simpeler opgelost moet kunnen worden.

De belangrijkste config:


PEAR Installer cache directory cache_dir /usr/src/tmp
PEAR Installer download download_dir /usr/src/tmp
directory
PEAR Installer temp directory temp_dir /usr/src/tmp

Nergens lijk ik aan te kunnen geven in welke directory er gebuild moet worden. Het lijkt namelijk dat de error daardoor naar voren komt. Dit is ongeacht welke module. Zip was even het kortste om te typen.

Enig idee?

ju5t
31/10/09, 16:51
Daar ging de vrije zaterdagmiddag. Uiteindelijk opgelost door de volgende commando's er op los te laten. Temporary fix trouwens, want ik wil die pear-build-root in de config kunnen veranderen, dit is alsnog een work around.


# create proper directories
mkdir /usr/src/tmp/
mkdir /usr/src/tmp/pear-build-root/
ln -s /usr/src/tmp/pear-build-root /tmp/pear-build-root

# change config settings pear
/usr/local/php5/bin/pear config-set php_ini /usr/local/etc/php5/cgi/php.ini
/usr/local/php5/bin/pear config-set temp_dir /usr/src/tmp
/usr/local/php5/bin/pear config-set download_dir /usr/src/tmp
/usr/local/php5/bin/pear config-set cache_dir /usr/src/tmp

/usr/local/php5/bin/pecl install zip
rm -f /tmp/pear-build-root


Wil je dit gebruiken met pdo_mysql kwam er nog iets leuks bij overigens; PHP5 heeft PDO default in de distributie zitten. De versie die pecl bij mij installeerde bleek hier niet compatible mee te zijn en gaf foutmeldingen.

Bijvoorbeeld: undefined symbol: php_pdo_declare_long_constant

Dit kun je oplossen door --disable-pdo in je PHP configuratie mee te nemen en PDO hierna via pecl te installeren. Als je dat hebt gedaan kun je pdo_mysql installeren.