Мой журнал использует Jekyll - программу для генерации сайтов на основе шаблонов, но без использования базы данных.

Чем привлекателен Jekyll? Вот некоторые его преимущества:

  • jekyll поддерживается GitHub Pages, таким образом Вы можете хостить свой сайт на Github абсолютно бесплатно;
  • jekyll использует привычные технологии: разметку markdown, шаблоны а-ля Django и CSS-препроцессор;
  • сайты, сгенерированные jekyll, работают очень быстро – ведь это просто статические страницы.

С jekyll легко начать работать, если он уже установлен на Вашем компьютере. В дистрибутив Ubuntu включена устаревшая версия jekyll. Если Вы планируете хостить свой сайт на Github Pages, желательно использовать соответствующую версию на локальном компьютере для пердварительного просмотра изменений перед публикацией. Для знатоков Ruby не составит труда установить необходимые версии ПО, для остальных может быть полезна эта заметка.

Установка Jekyll на Ubuntu 12.04

Ubuntu 12.04 поставляется с пакетом ruby-1.8 и ruby-1.9. На момент написания этой статьи git hub pages требовала использования Ruby 2.1+

Простой способ установить свежий Ruby из пакетов описан здесь:

sudo apt-add-repository ppa:brightbox/ruby-ng
sudo apt-get update
sudo apt-get install ruby2.1 ruby2.1-dev libssl-dev zlib1g-dev build-essential

Последние четыре пакета понадобятся для компиляции устанавливаемых gems.

Теперь устанавливаем bundler:

sudo gem install bundler

Создадим Gemfile:

source 'https://rubygems.org'
gem 'github-pages'
gem 'therubyracer'

Пакет therubyracer, встроенный в ruby интерпретатор javascript, необходим для запуска jekyll. Если не установить его, при запуске jekyll вываливается ошибка:

stsivin@tough:/www/sergeytsivin.github.io$ jekyll --version
/var/lib/gems/2.1.0/gems/execjs-2.4.0/lib/execjs/runtimes.rb:45:in `autodetect': Could not find a JavaScript runtime. See https://github.com/sstephenson/execjs for a list of available runtimes. (ExecJS::RuntimeUnavailable)
    from /var/lib/gems/2.1.0/gems/execjs-2.4.0/lib/execjs.rb:5:in `<module:ExecJS>'
    from /var/lib/gems/2.1.0/gems/execjs-2.4.0/lib/execjs.rb:4:in `<top (required)>'
    from /usr/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /usr/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /var/lib/gems/2.1.0/gems/coffee-script-2.3.0/lib/coffee_script.rb:1:in `<top (required)>'
    from /usr/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /usr/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /var/lib/gems/2.1.0/gems/coffee-script-2.3.0/lib/coffee-script.rb:1:in `<top (required)>'
    from /usr/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /usr/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /var/lib/gems/2.1.0/gems/jekyll-coffeescript-1.0.1/lib/jekyll-coffeescript.rb:2:in `<top (required)>'
    from /usr/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /usr/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /var/lib/gems/2.1.0/gems/jekyll-2.4.0/lib/jekyll/deprecator.rb:46:in `block in gracefully_require'
    from /var/lib/gems/2.1.0/gems/jekyll-2.4.0/lib/jekyll/deprecator.rb:44:in `each'
    from /var/lib/gems/2.1.0/gems/jekyll-2.4.0/lib/jekyll/deprecator.rb:44:in `gracefully_require'
    from /var/lib/gems/2.1.0/gems/jekyll-2.4.0/lib/jekyll.rb:141:in `<top (required)>'
    from /usr/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /usr/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /var/lib/gems/2.1.0/gems/jekyll-2.4.0/bin/jekyll:6:in `<top (required)>'
    from /usr/local/bin/jekyll:23:in `load'
    from /usr/local/bin/jekyll:23:in `<main>'

Теперь осталось установить необходимые gems:

bundler install

Если все прошло хорошо, можно запустить jekyll:

$ jekyll --version
jekyll 2.4.0

UPDATE 7 Feb 2016:

С тех пор, как написана эта заметка, многое изменилось:

  • вышел jekyll 3.0 и GitHub pages теперь использует эту версию
  • на моем компьютере установлена версия Ubuntu 14.04 (а скоро выйдет 16.04 :-) )

Ubuntu 14.04 все еще содержит устаревшую версию jekyll и ruby, таким образом, статья все еще актуальна. Свежие пакеты Ruby по-прежнему можно скачать из репозитория brightbox, но уже вышла версия Ruby 2.2 и даже Ruby 2.3 (я остановился на использовании 2.2):

sudo apt-add-repository ppa:brightbox/ruby-ng
sudo apt-get update
sudo apt-get install ruby2.2 ruby2.2-dev libssl-dev zlib1g-dev build-essential

Теперь устанавливаем bundler:

sudo gem install bundler

Создадим Gemfile – ‘therubyracer’ больше не требуется:

source 'https://rubygems.org'
gem 'github-pages'

Если Вы ранее устанавливали jekyll, в Вашем репозитарии, наверняка, есть Gemfile.lock. Чтобы получить последние версии пакетов, используйте команду:

bundle update

Запустите jekyll:

bundle exec jekyll -v
jekyll 3.0.2

Выкат веб-приложения с помощью Ansible

[Ansible] --- популярная система для управления конфигурацией серверов, но не только: с помощью ansible можнотакже выкатывать (deploy) пр...… Continue reading

Установка Jekyll на Mac OS X

Published on July 04, 2016