---
title: Installation
in_menu: true
sort_info: 5
---
# Download & Installation

## Dependencies

Since kramdown is written in Ruby, you just need the [Ruby interpreter](http://www.ruby-lang.org),
version 1.8.5, 1.8.6, 1.8.7, 1.9.2, 1.9.3 or 2.x. There are no other dependencies.


## Compatibility Notes

kramdown should work on any platform which supports Ruby. It has been successfully tested on the
following platforms:

* Linux with Ruby 1.8.7, 1.9.3, 2.x, jruby 1.7.19 and jruby 9.0.0.0.

See the platform specific installation notes for more information!


## Platform Specific Installation Instructions

### Linux

There are a variety of Linux distributions out there with different package management systems. So
we will focus on instructions for Ubuntu 15.04 here (which should probably also work for any newer
Ubuntu version or any recent Debian based distribution).

After running the following commands, kramdown is installed and ready to use:

    sudo apt-get install ruby
    sudo gem install kramdown


### Mac OS X

Mac OS X Snow Leopard comes with Ruby and Rubygems preinstalled. So installing kramdown is as easy
as running:

    sudo gem install kramdown


### Windows

You need to install Ruby first. This can easily be done by using the [RubyInstaller] - just download
the installation binary and run it. After that open a command shell (select `Start -> Run...`, then
enter `cmd` and click on `Ok`) and type in the following:

    gem install kramdown

[RubyInstaller]: http://rubyinstaller.org


## Generic Installation Instructions


### Using Rubygems

If you are using Rubygems, installing the latest version of kramdown is as simple as executing

    gem install kramdown


### Manual Installation

The latest version of kramdown can always be downloaded as `.tar.gz` or `.zip` via the [Github
releases page][ghreleases]. After the download the package needs to be decompressed and then you can
install kramdown using the included `setup.rb` installation method:

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

[ghreleases]: https://github.com/gettalong/kramdown/releases


### Using the repository version

kramdown uses git as its versioning system and kramdown's repository is hosted on GitHub. The
repository always contains a clean state of the current development version of kramdown. To check
out kramdown use the following command:

     git clone git://github.com/gettalong/kramdown.git
