--- inMenu: true title: Using Source --- Puppet is currently implemented in Ruby and uses standard Ruby libraries. You should be able to run Puppet on any Unix-style host with Ruby. Windows support is planned but not currently available. ## Before you Begin Make sure your host has Ruby version 1.8.2: $ ruby -v While Puppet should work with 1.8.1, there have been many reports of problems with this version. Make sure you have Subverion: $ svn --version -q ## Get the Source Puppet currently relies on another Reductive Labs tool, Facter. Create a working directory and get them both: $ SETUP_DIR=~/svn $ mkdir -p $SETUP_DIR $ cd $SETUP_DIR $ svn checkout https://reductivelabs.com/svn/facter/trunk facter $ svn checkout https://reductivelabs.com/svn/puppet/trunk puppet # Make it Available Last, we need to put the puppet binaries into our path and make the Puppet and Facter libraries available to Ruby: $ PATH=$PATH:$SETUP_DIR/facter/bin:$SETUP_DIR/puppet/trunk/bin $ RUBYLIB=$SETUP_DIR/facter/lib:$SETUP_DIR/puppet/trunk/lib $ export PATH RUBYLIB Facter changes far less often than Puppet and it is very minimal (a single library file and a single executable), so it is probably worth just installing it: $ cd facter $ sudo ruby ./install.rb ## Test That It Works Now you can test that it is working. The best way to do that is described in the [testing](testing.html) guide, and involves writing a short site manifest. Another option is to run through all of the unit tests that ship with Puppet: $ cd $SETUP_DIR/puppet/test $ ./test This tends to take a long time, however, and is probably only useful if you already know there's a problem and want to report a bug or if you are planning on doing development. It is worth noting that some of these tests necessarily modify your system, so unless you know what you are doing, **it is unadvisable to run them as root**, and certainly not on a production system. *$Id$*