Instiki
Installation

1. General Prerequisites

This version of Instiki requires

  1. Ruby 1.8.5 (or higher). N.B.: Rails in not currently compatible with Ruby 1.9. Hence, neither is Instiki. Stick with Ruby 1.8.x.
  2. SWIG
  3. The sqlite3 Ruby bindings

MacOSX

Leopard

All these prerequisites come installed with the Developer Tools (an optional install, on your System Installation DVD) in MacOSX 10.5. You can skip to the next step.

Tiger

Again, if you haven’t already done so, you need to install the Developer Tools (an optional install, on your System Installation DVD). Under MacOSX 10.4, the easiest way to obtain the remaining prerequisites is using Fink. (Be sure you have unstable/main in your list of Fink trees. )

% fink install ruby ruby18-dev rubygems-rb18 rake-rb18 sqlite3-rb18 swig bison flex

An alternative (that will get you everything but SWIG is the rubyosx installer).

Once you’ve installed these prerequisites, you can proceed to the next step of the installation.

N.B.: On some Tiger systems, Ruby, as installed by either of these methods, is prone to Segmentation Faults. If that happens to you, you’ll need to back up to this point and follow the instructions in this blog post.

Linux

On Debian testing and Ubuntu Edgy, you will need (at least) ruby, ruby1.8-dev, libopenssl-ruby, rake, rubygems, libsqlite3-ruby1.8, swig, flex and bison:

$ sudo apt-get install ruby ruby1.8-dev libopenssl-ruby rake rubygems libsqlite3-ruby1.8 swig flex bison

On Fedora, I’m told that

$ yum install make ruby ruby-devel rubygems sqlite sqlite-devel swig flex bison

suffices to get you the necessary prerequisites, though apparently you may need to supply the necessary soft link

$ ln -s /usr/lib/libsqlite3.so.0.8.6  /usr/lib/libsqlite3.so

yourself.

N.b.: If you get a

 install_gem_spec_stubs': undefined method `loaded_specs' for Gem:Module (NoMethodError)

error, when you try to run Instiki, then the version of Rubygems that you installed is too old. See these instructions. In particular, you need to

 sudo gem install rubygems-update
 sudo update_rubygems

to update Rubygems to a sufficiently recent version. (See the discussion here for more insight.)

CentOS

CentOS is a RedHat-like Linux distro, so you should follow the Fedora instructions above. Two additional gotchas present themselves.

  1. /dev/null is not world-writable. You need to

    chmod 777 /dev/null

    in order for Instiki to be able to function.

  2. /dev/urandom is not a “special character device.” You need to

    rm /dev/urandom
    mknod -m 644 /dev/urandom c 1 9
    chown root:root /dev/urandom

    in order for BZR to function.

In both cases, these need to be placed in a startup script, because rebooting the server will recreate the problem.

Windows

There’s a one-click Ruby Installer, which should get you most of the prerequisites. I don’t think it gets you SWIG, nor the compiler tools necessary to install the itex2MML Ruby bindings.

2. Installing the itex2MML Ruby Bindings

Download and untar the itex2MML distribution. Then

% cd itexToMML/itex-src
% make ruby
% make test_ruby
% sudo make install_ruby

Building on Shared Hosts

For instructions on building itex2MML and installing Instiki in shared web hosting environments without access to a compiler, see Installing on Shared Hosts.

Installing Under Windows

CygWin

You’ll need CygWin and the following CygWin packages: bison, flex, gcc-core, gcc-g++, make and swig.

3. Installing Instiki

Download and untar the latest Instiki distribution. Or, alternatively, use bzr to obtain the latest version. Then

% cd instiki-svn
% ./instiki --daemon

Point your web browser at http://localhost:2500 and start configuring your first wiki! (Be sure to select the “Markdown+itex2MML” filter, which is the default setting for this branch of Instiki.)

It’s really that simple.

4. Care and Feeding

You can stop Instiki by issuing a

% kill pid-of-Instiki

There are various Commandline Options that you might want to play with.

For tips on the day-to-day running of Instiki, see the Housekeeping page. For tips on security considerations, see the Security page.