How to install jekyll?

16,344

Solution 1

On my 13.04 and 14.04 systems, things worked for me after installing the ruby-dev package, then running the gem install:

  • sudo apt-get install ruby1.9.1-dev (or try: ruby-dev instead)

  • gem install jekyll # if this fails then sudo gem install jekyll

After that, jekyll was installed correctly.

Note that for the gem install instruction, it is better not to use sudo.*****

It's better to use something like RVM, so that sudo isn't required. On some systems it may be necessary to use sudo, if for instance permissions were set by previous sudo commands or root-level configuration.

See this stackoverflow question -- how to install gems without sudo for more information and for help on getting permissions set to user instead of root.

***** Credit to @iguarav for this best practices advice as well as the link to rvm.io.

Solution 2

Guide for 14.04 LTS without RVM

Jekyll 3 needs ruby 2.0 or higher, so we first install ruby 2.0, it's development headers and nodejs:

sudo apt-get install -y ruby2.0 ruby2.0-dev nodejs

Then we point the commands included in the ruby package to the new version.

sudo update-alternatives --install /usr/bin/ruby ruby /usr/bin/ruby2.0 10
sudo update-alternatives --install /usr/bin/gem gem /usr/bin/gem2.0 10
sudo update-alternatives --install /usr/bin/irb irb /usr/bin/irb2.0 10
sudo update-alternatives --install /usr/bin/rdoc rdoc /usr/bin/rdoc2.0 10
sudo update-alternatives --install /usr/bin/testrb testrb /usr/bin/testrb2.0 10
sudo update-alternatives --install /usr/bin/rake rake /usr/bin/rake2.0 10
sudo update-alternatives --install /usr/bin/erb erb /usr/bin/erb2.0 10
sudo update-alternatives --install /usr/bin/ri ri /usr/bin/ri2.0 10

And finally we use gem to install the jekyll gem.

sudo gem install jekyll

Solution 3

Also, you don't want to depend on sudo for executing gems, so I recommend to add your user to the root's group and:

sudo chmod -R 770 /var/lib/gems
sudo chmod -R 770 /usr/local/bin

Just doing a few updates on this thread. According the jekyll's installation docs the version needed is version 2. After fixing the permissions issue, I ran into that expected error:

ERROR:  Error installing jekyll:
jekyll requires Ruby version >= 2.0.0.

Installing with RVM:

gpg --keyserver hkp://keys.gnupg.net --recv-keys \  409B6B1796C275462A1703113804BB82D39DC0E3
curl -sSL https://get.rvm.io | bash -s stable --ruby             
/bin/bash --login
rvm install 2.3.0
rvm use 2.3.0
rvm rubygems latest
ruby --version
rvm install ruby-dev

For other issues with the Ruby installation, follow this.

After that, it worked for me.

Share:
16,344

Related videos on Youtube

Christopher
Author by

Christopher

Ubuntu fan since Fiesty.

Updated on September 18, 2022

Comments

  • Christopher
    Christopher over 1 year

    According to the jekyll site, this is how you make a new website with jekyll:

    ~ $ gem install jekyll
    ~ $ jekyll new myblog
    ~ $ cd myblog
    ~/myblog $ jekyll serve
    

    gem install jekyll didn't work, nor did sudo gem install jekyll:

    └─>gem install jekyll
    ERROR:  While executing gem ... (Errno::EACCES)
        Permission denied - /var/lib/gems/1.9.1/gems/fast-stemmer-1.0.2/LICENSE
    ┌─[Sat Jun 08][jon@jon-MacMini:~/Web]
    └─>sudo !!
    sudo gem install jekyll
    Building native extensions.  This could take a while...
    ERROR:  Error installing jekyll:
        ERROR: Failed to build gem native extension.
    
            /usr/bin/ruby1.9.1 extconf.rb
    /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require': cannot load such file -- mkmf (LoadError)
        from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
        from extconf.rb:1:in `<main>'
    
    
    Gem files will remain installed in /var/lib/gems/1.9.1/gems/fast-stemmer-1.0.2 for inspection.
    Results logged to /var/lib/gems/1.9.1/gems/fast-stemmer-1.0.2/ext/gem_make.out
    

    I also tried following the answer here, but that doesn't help. sudo apt-get install jekyll works. Even then, though, running jekyll new myblog returns this error:

    └─>jekyll new myblog
    /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require': iconv will be deprecated in the future, use String#encode instead.
    WARNING: Could not read configuration. Using defaults (and options).
        No such file or directory - new/_config.yml
    Building site: new -> myblog
    /usr/lib/ruby/vendor_ruby/jekyll/site.rb:126:in `chdir': No such file or directory - /home/jon/Web/new/ (Errno::ENOENT)
        from /usr/lib/ruby/vendor_ruby/jekyll/site.rb:126:in `read_directories'
        from /usr/lib/ruby/vendor_ruby/jekyll/site.rb:98:in `read'
        from /usr/lib/ruby/vendor_ruby/jekyll/site.rb:38:in `process'
        from /usr/bin/jekyll:250:in `<main>'
    

    Anyone know what's causing this?

    • Admin
      Admin almost 11 years
      Ubuntu 13.04. I installed ruby the usual way: sudo apt-get install ruby.
    • Admin
      Admin over 7 years
      For Ubuntu 12.04 LTS see this.
  • Christopher
    Christopher almost 11 years
    That worked. I also had to add the gem directory to my PATH, though, in order to be able to run jekyll from the command-line. I also had to uninstall the ubuntu package version, which doesn't have the new subcommand.
  • xhenryx14
    xhenryx14 over 10 years
    This worked for me. Also, I first tried installing and using ruby2.0-dev but without luck.
  • Meta
    Meta almost 10 years
    confirmed to work at ubuntu 14.04
  • igauravsehrawat
    igauravsehrawat almost 10 years
    you should not use sudo with gem install since these are just reusable libraries
  • igauravsehrawat
    igauravsehrawat almost 10 years
    @belacqua best practices recommend usage of RVM rvm.io . if you use sudo excessively , you soon will be facing dependency problems .
  • WestCoastProjects
    WestCoastProjects over 9 years
    @Jon Where did you find the jekyll gem directory? i can not find it under /var/lib/gems/1.8/gems
  • belacqua
    belacqua over 9 years
    @javadba If you are using these instructions, look under /var/lib/gems/1.9.1 instead. Do you have a /var/lib/gems at all?