# Installing Programs with setup.rb

## Quick Start

Type this (You might needs super user previledge):

    ($ su)
     # ruby setup.rb

If you want to install a program in to your home directory ($HOME), use following instead:

    $ ruby setup.rb all --prefix=$HOME

## Detailed Installtion Process

setup.rb invokes installation by three steps. There are "config", "setup" and "install". You can invoke each steps separately as following:

    $ ruby setup.rb config
    $ ruby setup.rb setup
    # ruby setup.rb install

You can controll installation process by giving detailed options for each tasks. For example, --bin-dir=$HOME/bin let setup.rb install commands in $HOME/bin.

For details, see "Task Options".

## Global Options

"Global Option" is a command line option which you can use for all tasks. You must give a global option before any task name.

-q,--quiet

  suppress message outputs

--verbose

  output messages verbosely (default)

-h,--help

  prints help and quit

-v,--version

  prints version and quit

--copyright

  prints copyright and quit

## Tasks

These are acceptable tasks:

all

  Invokes `config', `setup', then `install'. Task options for all is same with config.

config

  Checks and saves configurations.

show

  Prints current configurations.

setup

  Compiles ruby extentions.

install

  Installs files.

test

  Invokes tests.

clean

  Removes created files.

distclean

  Removes all created files.

## Task Options for CONFIG/ALL

You can pass following long options for CONFIG task and ALL task.

All options accept parameterized value, like --rbdir=$siterubyver or --sodir=$siterubyverarch. On UNIX shells, you should escape "$" character, so use --rbdir=\$siterubyver or --sodir=$siterubyverach.

--installdirs=(std|site|home)

  A handy option to set common install target.

  std: install files under $libruby.

  site: install files under $siteruby.

  home: install files under home directory ($HOME).

--prefix=PATH

  The path prefix of target directory pathes like $bindir, $libdir...

--bindir=PATH

  The directory for commands.

--rbdir=PATH

  The directory for ruby scripts.

--sodir=PATH

  The directory for ruby extentions.

--datadir=PATH

  The directory for shared data.

--sysconfdir=PATH

  The directory for configuration files.

--mandir=PATH

  The directory for manual pages.

--libruby=PATH

  The directory for ruby libraries.

--librubyver=PATH

  The directory for standard ruby libraries.

--librubyverarch=PATH

  The directory for standard ruby extensions.

--siteruby=PATH

  The directory for version-independent non-standard ruby libraries

--siterubyver=PATH

  The directory for non-standard ruby libraries.

--siterubyverarch=PATH

  The directory for non-standard ruby extensions.

--rubypath=PATH

  The path to set to #! line.

--shebang=(all|ruby|never)

  Shenbang line (#!) rewriting mode.

  all: replace all shebang lines.

  ruby: replace shebang lines which invokes ruby.

  never: never rewrite shebang.

--rubyprog=PATH

  The ruby program using for installation.

--makeprog=NAME

  The make program to compile ruby extentions.

--without-ext

  Forces to setup.rb never to compile/install ruby extentions.

--rbconfig=PATH

  Your rbconfig.rb to load.

If there's the directory named "packages", You can also use these options:

--with=NAME,NAME,NAME...

  Package names which you want to install.

--without=NAME,NAME,NAME...

  Package names which you do not want to install.

[NOTE] You can pass options to extconf.rb like this:

    ruby setup.rb config -- --with-tklib=/usr/lib/libtk-ja.so.8.0

## Task Options for INSTALL

--no-harm

  prints what to do and done nothing really.

--prefix=PATH

  The prefix of the installing directory path. This option may help binary package maintainers. A default value is an empty string.