Puppet seems to crash because of a messed up installation of Ruby for non-x86 things. I've seen messages for this very problem, like:
http://mail.madstop.com/pipermail/puppet-dev/2006-September/001731.html
Below is a patch that I use to get puppet to work on non x86 (like my amd64) boxes. I'm using a Gentoo platform.
Based on the following tip it looks like it might be possible to work around the broken ruby installations which at least for me would be quite valuable.
The tip used was from: http://rubyforge.org/tracker/?func=detail&aid=5563&group_id=426&atid=1698
The patch against 0.20.0 is:
diff -ru puppet-0.20.0/bin/puppet puppet-working/bin/puppet
--- puppet-0.20.0/bin/puppet 2006-10-09 12:35:29.000000000 -0400
+++ puppet-working/bin/puppet 2006-11-02 16:24:45.000000000 -0500
@@ -67,6 +67,7 @@
$haveusage = true
begin
+ require 'rdoc/ri/ri_paths'
require 'rdoc/usage'
rescue Exception
$haveusage = false
diff -ru puppet-0.20.0/bin/puppetca puppet-working/bin/puppetca
--- puppet-0.20.0/bin/puppetca 2006-09-27 13:30:37.000000000 -0400
+++ puppet-working/bin/puppetca 2006-11-02 16:24:50.000000000 -0500
@@ -90,6 +90,7 @@
$haveusage = true
begin
+ require 'rdoc/ri/ri_paths'
require 'rdoc/usage'
rescue Exception
$haveusage = false
diff -ru puppet-0.20.0/bin/puppetd puppet-working/bin/puppetd
--- puppet-0.20.0/bin/puppetd 2006-09-27 13:30:37.000000000 -0400
+++ puppet-working/bin/puppetd 2006-11-02 16:24:54.000000000 -0500
@@ -156,6 +156,7 @@
$haveusage = true
begin
+ require 'rdoc/ri/ri_paths'
require 'rdoc/usage'
rescue Exception
$haveusage = false
diff -ru puppet-0.20.0/bin/puppetdoc puppet-working/bin/puppetdoc
--- puppet-0.20.0/bin/puppetdoc 2006-10-17 19:02:51.000000000 -0400
+++ puppet-working/bin/puppetdoc 2006-11-02 16:25:00.000000000 -0500
@@ -47,6 +47,7 @@
$haveusage = true
begin
+ require 'rdoc/ri/ri_paths'
require 'rdoc/usage'
rescue Exception
$haveusage = false
diff -ru puppet-0.20.0/bin/puppetmasterd puppet-working/bin/puppetmasterd
--- puppet-0.20.0/bin/puppetmasterd 2006-10-18 15:54:21.000000000 -0400
+++ puppet-working/bin/puppetmasterd 2006-11-02 16:25:04.000000000 -0500
@@ -106,6 +106,7 @@
$haveusage = true
begin
+ require 'rdoc/ri/ri_paths'
require 'rdoc/usage'
rescue Exception
$haveusage = false
diff -ru puppet-0.20.0/bin/puppetrun puppet-working/bin/puppetrun
--- puppet-0.20.0/bin/puppetrun 2006-10-10 15:06:09.000000000 -0400
+++ puppet-working/bin/puppetrun 2006-11-02 16:25:09.000000000 -0500
@@ -173,6 +173,7 @@
$haveusage = true
begin
+ require 'rdoc/ri/ri_paths'
require 'rdoc/usage'
rescue Exception
$haveusage = false