Posts Tagged Error
Installing the ssh2 PHP extension, with PHP 5.3
Posted by Adam in Fixing Errors, Linux, PHP, Programming on Sunday March 21, 2010
WARNING: Please read before continuing ▼
Difficulty: Moderate
Time: ~5 Minutes
Last Updated: 21st March 2010
Applies to: *NIX
Currently, due to an API change ssh2 will not install via pecl. Despite being a one-line fix, and 5.3 being out for some months now, the maintainers have neglected to make their extension compatible with PHP 5.3
If you recieve an error similar to:
1 2 | /tmp/pear/download/ssh2-0.11.0/ssh2.c:52: error: duplicate "static" /tmp/pear/download/ssh2-0.11.0/ssh2.c: In function "zif_ssh2_methods_negotiated": |
Then you are affected. To fix this, you need to download and extract the ssh2 package:
1 2 | pecl download channel://pecl.php.net/ssh2-<version> tar xvf ssh-<version>.tar |
Open up ssh2-<version>/ssh2.c and look for the following block around line 50:
1 2 3 4 5 6 7 8 | #ifdef ZEND_ENGINE_2 static ZEND_BEGIN_ARG_INFO(php_ssh2_first_arg_force_ref, 0) ZEND_ARG_PASS_INFO(1) ZEND_END_ARG_INFO() #else static unsigned char php_ssh2_first_arg_force_ref[] = { 1, BYREF_FORCE }; #endif |
From that block, you need to remove the first “static” so it looks like this:
1 2 3 4 5 6 7 | #ifdef ZEND_ENGINE_2 ZEND_BEGIN_ARG_INFO(php_ssh2_first_arg_force_ref, 0) ZEND_ARG_PASS_INFO(1) ZEND_END_ARG_INFO() #else static unsigned char php_ssh2_first_arg_force_ref[] = { 1, BYREF_FORCE }; #endif |
After you’ve done this, simply repackage and install:
1 2 | pecl package package.xml pecl install -f ssh2-<version>.tgz |
Recovering from ‘ImportError: No module named pysqlite2′ after upgrading python on a Gentoo Linux system
Posted by Adam in Fixing Errors, Linux on Sunday October 4, 2009
WARNING: Please read before continuing ▼
Difficulty: Moderate
Time: ~30 Minutes, depending on CPU speed/internet connection
Last Updated: 4th October 2009
Applies to: Gentoo Linux
Symptoms:
When running emerge after a major upgrade of pythons core files (dev-lang/python), you get an error similar to (other information may be included in the error message):
ImportError: No module named pysqlite2
emerge will fail to work as a result of this. Additionally, if you run /usr/sbin/python-updater, that will fail too, with a similar error.