Як встановити jekyll?


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

Хтось знає, що це викликає?


Ubuntu 13.04. Я встановив рубін звичайним способом: sudo apt-get install ruby.
Джонатан

Для Ubuntu 12.04 LTS дивіться це .
NickKolok

Відповіді:


46

У моїх системах 13.04 та 14.04 все працювало для мене після встановлення пакета ruby-dev, а потім запускаючи gem install:

  • sudo apt-get install ruby1.9.1-dev(або спробуйте: ruby-devнатомість)

  • gem install jekyll # якщо це не вдасться потім sudo gem install jekyll

Після цього jekyll був встановлений правильно.

Зауважте, що для gem installінструкції краще не використовувати судо. *****

Краще використовувати щось на зразок RVM, щоб sudoце не потрібно. У деяких системах може знадобитися використання sudo, якщо, наприклад, дозволи були встановлені попередніми командами sudo або конфігурацією кореневого рівня.

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

***** Кредит @iguarav для цього кращого ради практики, а також посилання на rvm.io .


1
Це спрацювало. Я також повинен був додати каталог gem до свого PATH, однак для того, щоб можна було запускати jekyllз командного рядка. Також мені довелося видалити версію пакета ubuntu, у якій немає newпідкоманди.
Джонатан

Це працювало для мене. Також я спершу спробував встановити та використовувати ruby2.0-dev, але без удачі.
emchristiansen

підтверджено роботу в ubuntu 14.04
Meta

не слід використовувати sudo з gem install, оскільки це просто бібліотеки для багаторазового використання
igaurav

@belacqua кращі практики рекомендують використання РВМ rvm.io . якщо надмірно використовувати судо, незабаром ви зіткнетесь із проблемами залежності.
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

1

Крім того, ви не хочете залежати від sudoвиконання gems, тому рекомендую додати свого користувача до кореневої групи та:

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 слідкуйте за цим .

Після цього це працювало для мене.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.