Como instalar o jekyll?

30

De acordo com o site jekyll , é assim que você cria um novo site com jekyll:

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

gem install jekyllnão funcionou, nem 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

Eu também tentei seguir a resposta aqui , mas isso não ajuda. sudo apt-get install jekylltrabalho. Mesmo assim, a execução jekyll new myblogretorna este erro:

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

Alguém sabe o que está causando isso?

Jonathan
fonte
Ubuntu 13.04. Eu instalei rubi da forma usual: sudo apt-get install ruby.
Jonathan
Para o Ubuntu 12.04 LTS, veja isso .
NickKolok

Respostas:

46

Nos meus sistemas 13.04 e 14.04, as coisas funcionaram para mim depois de instalar o pacote ruby-dev e depois executar a instalação gem:

  • sudo apt-get install ruby1.9.1-dev(ou tente: em ruby-devvez disso)

  • gem install jekyll # se isso falhar, então sudo gem install jekyll

Depois disso, o jekyll foi instalado corretamente.

Observe que, para a gem installinstrução, é melhor não usar o sudo. *****

É melhor usar algo como RVM, para que isso sudonão seja necessário. Em alguns sistemas, pode ser necessário usá-lo sudo, se, por exemplo, as permissões foram definidas pelos comandos sudo anteriores ou pela configuração no nível raiz.

Veja esta pergunta sobre o stackoverflow - como instalar gemas sem sudo para obter mais informações e ajuda na obtenção de permissões definidas para o usuário em vez de raiz.

***** crédito para @iguarav para este melhor conselho práticas, bem como o link para rvm.io .

belacqua
fonte
1
Isso funcionou. Eu também tive que adicionar o diretório gem ao meu PATH, no entanto, para poder executar a jekyllpartir da linha de comando. Eu também tive que desinstalar a versão do pacote ubuntu, que não possui o newsubcomando.
Jonathan
Isso funcionou para mim. Além disso, tentei instalar e usar o ruby2.0-dev, mas sem sorte.
emchristiansen
confirmado para trabalhar no ubuntu 14.04
Meta
você não deve usar sudo com gem install uma vez que estes são bibliotecas apenas reutilizáveis
igaurav
@belacqua melhores práticas recomendam o uso de RVM rvm.io . se você usar o sudo excessivamente, em breve estará enfrentando problemas de dependência.
Ur av
3

Guia para 14.04 LTS sem RVM

O Jekyll 3 precisa do ruby ​​2.0 ou superior, então instalamos primeiro o ruby ​​2.0, são os cabeçalhos de desenvolvimento e o nodejs:

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

Em seguida, apontamos os comandos incluídos no pacote ruby ​​para a nova versão.

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

E, finalmente, usamos gempara instalar a gema jekyll.

sudo gem install jekyll
mschwaig
fonte
1

Além disso, você não deseja depender sudoda execução gems, portanto, recomendo adicionar seu usuário ao grupo raiz e:

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

Apenas fazendo algumas atualizações sobre este tópico. De acordo com os documentos de instalação do jekyll, a versão necessária é a versão 2. Depois de corrigir o problema de permissões, encontrei o erro esperado:

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

Instalando com o 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

Para outros problemas com a instalação do Ruby, siga isto .

Depois disso, funcionou para mim.

3manuek
fonte