Как установить Джекилл?

30

Согласно сайту jekyll , вот как вы создаете новый сайт с помощью jekyll:

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

gem install jekyllне работал и не делал 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

Я также попытался следовать ответу здесь , но это не помогает. sudo apt-get install jekyllработает. Даже тогда, хотя, запуск jekyll new myblogвозвращает эту ошибку:

└─>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>'

Кто-нибудь знает, что вызывает это?

Джонатан
источник
Убунту 13.04. Я установил рубин обычным способом: sudo apt-get install ruby.
Джонатан
Для Ubuntu 12.04 LTS смотрите это .
NickKolok

Ответы:

46

В моих системах 13.04 и 14.04 у меня все работало после установки пакета ruby-dev и запуска установки gem:

  • sudo apt-get install ruby1.9.1-dev(или попробуйте: ruby-devвместо)

  • gem install jekyll # если не получится sudo gem install jekyll

После этого jekyll был установлен правильно.

Обратите внимание, что для gem installинструкции лучше не использовать sudo. *****

Лучше использовать что-то вроде RVM, так что в sudoэтом нет необходимости. В некоторых системах это может потребоваться sudo, если, например, права доступа были установлены предыдущими командами sudo или конфигурацией корневого уровня.

Посмотрите этот вопрос stackoverflow - как установить гемы без sudo для получения дополнительной информации и помощи в получении прав доступа, установленных для пользователя вместо root.

***** Кредит @iguarav для этого лучшего совета практики, а также ссылки на rvm.io .

belacqua
источник
1
Это сработало. Мне также пришлось добавить каталог gem в мой PATH, чтобы иметь возможность запускаться jekyllиз командной строки. Мне также пришлось удалить версию пакета Ubuntu, в которой нет newподкоманды.
Джонатан
Это сработало для меня. Кроме того, я сначала попытался установить и использовать ruby2.0-dev, но безуспешно.
emchristiansen
подтвердил работу в Ubuntu 14.04
Meta
Вы не должны использовать sudo с установкой gem, так как это просто многоразовые библиотеки
igaurav
@belacqua лучшие практики рекомендуют использование РВМ rvm.io . Если вы используете sudo чрезмерно, вы скоро столкнетесь с проблемами зависимости.
igaurav
3

Руководство для 14.04 LTS без RVM

Jekyll 3 требуется ruby ​​2.0 или выше, поэтому сначала мы устанавливаем ruby ​​2.0, это заголовки разработки и nodejs:

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

Затем мы указываем команды, включенные в пакет ruby, на новую версию.

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

И, наконец, мы используем gemдля установки драгоценного камня Jekyll.

sudo gem install jekyll
mschwaig
источник
1

Кроме того, вы не хотите зависеть от sudoвыполнения gems, поэтому я рекомендую добавить вашего пользователя в группу root и:

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

Просто делаю несколько обновлений в этой теме. Согласно документации по установке jekyll, необходимая версия - версия 2. После исправления проблемы с разрешениями я столкнулся с этой ожидаемой ошибкой:

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

Установка с помощью 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

Для других проблем с установкой Ruby, следуйте этому .

После этого у меня это сработало.

3manuek
источник