As many of you know, Ubuntu Lucid shipped with PHP 5.3 which is incompatible with many Drupal 6 modules. The solution the Mercury team decided on was to pin PHP to 5.2 until the situation with 5.3 was resolved. Mercury 1.1 has this built in.
We've added all php5 packages to the file and are hosting it here: http://pantheon-storage.chapterthree.com/lucid
6/18/10 - found a bug and update the above file and the list below (for some reason, changing php5-imagick, php-apc and php5-memcache to karmic-updates caused it to fail)
6/15/10 - added updates from http://groups.drupal.org/node/75003 (view that page if you're using aptitude rather than apt-get)
Before we install php, we add the following to either /etc/apt/sources.list or a file in /etc/apt/sources.list.d/:
deb http://archive.ubuntu.com/ubuntu/ karmic main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu/ karmic main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu/ karmic-updates main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu/ karmic-updates main restricted universe multiverse
deb http://security.ubuntu.com/ubuntu karmic-security main restricted universe multiverse
deb-src http://security.ubuntu.com/ubuntu karmic-security main restricted universe multiverseWe then place a file called "php" in /etc/apt/preferences.d with the following contents:
Package: libapache2-mod-php5
Pin-Priority: 991
Pin: release a=karmic-updates
Package: libgv-php5
Pin-Priority: 991
Pin: release a=karmic-updates
Package: libsqlrelay-0.39
Pin-Priority: 991
Pin: release a=karmic-updates
Package: php5
Pin-Priority: 991
Pin: release a=karmic-updates
Package: php5-adodb
Pin-Priority: 991
Pin: release a=karmic-updates
Package: php5-apache2-mod-bt
Pin-Priority: 991
Pin: release a=karmic-updates
Package: php5-auth-pam
Pin-Priority: 991
Pin: release a=karmic-updates
Package: php5-cgi
Pin-Priority: 991
Pin: release a=karmic-updates
Package: php5-cli
Pin-Priority: 991
Pin: release a=karmic-updates
Package: php5-common
Pin-Priority: 991
Pin: release a=karmic-updates
Package: php5-curl
Pin-Priority: 991
Pin: release a=karmic-updates
Package: php5-dbg
Pin-Priority: 991
Pin: release a=karmic-updates
Package: php5-dev
Pin-Priority: 991
Pin: release a=karmic-updates
Package: php5-exactimage
Pin-Priority: 991
Pin: release a=karmic-updates
Package: php5-ffmpeg
Pin-Priority: 991
Pin: release a=karmic-updates
Package: php5-gd
Pin-Priority: 991
Pin: release a=karmic-updates
Package: php5-geoip
Pin-Priority: 991
Pin: release a=karmic-updates
Package: php5-gmp
Pin-Priority: 991
Pin: release a=karmic-updates
Package: php5-gpib
Pin-Priority: 991
Pin: release a=karmic-updates
Package: php5-idn
Pin-Priority: 991
Pin: release a=karmic-updates
Package: php5-imagick
Pin-Priority: 991
Pin: release a=karmic
Package: php5-imap
Pin-Priority: 991
Pin: release a=karmic-updates
Package: php5-interbase
Pin-Priority: 991
Pin: release a=karmic-updates
Package: php5-lasso
Pin-Priority: 991
Pin: release a=karmic-updates
Package: php5-ldap
Pin-Priority: 991
Pin: release a=karmic-updates
Package: php5-librdf
Pin-Priority: 991
Pin: release a=karmic-updates
Package: php5-mapscript
Pin-Priority: 991
Pin: release a=karmic-updates
Package: php5-mcrypt
Pin-Priority: 991
Pin: release a=karmic-updates
Package: php5-memcache
Pin-Priority: 991
Pin: release a=karmic
Package: php5-mhash
Pin-Priority: 991
Pin: release a=karmic-updates
Package: php5-ming
Pin-Priority: 991
Pin: release a=karmic-updates
Package: php5-mysql
Pin-Priority: 991
Pin: release a=karmic-updates
Package: php5-odbc
Pin-Priority: 991
Pin: release a=karmic-updates
Package: php5-pgsql
Pin-Priority: 991
Pin: release a=karmic-updates
Package: php5-ps
Pin-Priority: 991
Pin: release a=karmic-updates
Package: php5-pspell
Pin-Priority: 991
Pin: release a=karmic-updates
Package: php5-radius
Pin-Priority: 991
Pin: release a=karmic-updates
Package: php5-recode
Pin-Priority: 991
Pin: release a=karmic-updates
Package: php5-remctl
Pin-Priority: 991
Pin: release a=karmic-updates
Package: php5-sasl
Pin-Priority: 991
Pin: release a=karmic-updates
Package: php5-snmp
Pin-Priority: 991
Pin: release a=karmic-updates
Package: php5-sqlite
Pin-Priority: 991
Pin: release a=karmic-updates
Package: php5-sqlrelay
Pin-Priority: 991
Pin: release a=karmic-updates
Package: php5-suhosin
Pin-Priority: 991
Pin: release a=karmic-updates
Package: php5-svn
Pin-Priority: 991
Pin: release a=karmic-updates
Package: php5-sybase
Pin-Priority: 991
Pin: release a=karmic-updates
Package: php5-syck
Pin-Priority: 991
Pin: release a=karmic-updates
Package: php5-symfony1.0
Pin-Priority: 991
Pin: release a=karmic-updates
Package: php5-tidy
Pin-Priority: 991
Pin: release a=karmic-updates
Package: php5-uuid
Pin-Priority: 991
Pin: release a=karmic-updates
Package: php5-xapian
Pin-Priority: 991
Pin: release a=karmic-updates
Package: php5-xcache
Pin-Priority: 991
Pin: release a=karmic-updates
Package: php5-xdebug
Pin-Priority: 991
Pin: release a=karmic-updates
Package: php5-xmlrpc
Pin-Priority: 991
Pin: release a=karmic-updates
Package: php5-xsl
Pin-Priority: 991
Pin: release a=karmic-updates
Package: php-apc
Pin-Priority: 991
Pin: release a=karmic
Package: php-cli
Pin-Priority: 991
Pin: release a=karmic-updates
Package: php-doc
Pin-Priority: 991
Pin: release a=karmic-updates
Package: php-pear
Pin-Priority: 991
Pin: release a=karmic-updates
Package: php-pecl-memcache
Pin-Priority: 991
Pin: release a=karmic-updates
Package: phpunit
Pin-Priority: 991
Pin: release a=karmic-updates
Package: sqlrelay
Pin-Priority: 991
Pin: release a=karmic-updatesThis pins the latest version of php from karmic (5.2.10.dfsg.1-2ubuntu6.4) and allows one to run drupal/pressflow and modules without errors.
Lets say you want to add a new php package, say "php5-xdebug". Just running "apt-get install php5-xdebug: will give you an error, but if you add the following to the bottom of /etc/apt/preferences.d/php:
Package: php5-xdebug
Pin: release a=karmic-updates
Pin-Priority: 991and re-run "apt-get update" and then "apt-get install php5-xdebug" the correct version of php5-xdebug will install.