Jak zainstalować jekyll?

30

Według strony jekyll , w ten sposób tworzysz nową stronę internetową z jekyll:

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

gem install jekyllnie działał, ani nie 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

Próbowałem też podążać za odpowiedzią tutaj , ale to nie pomaga. sudo apt-get install jekyllPrace. Jednak nawet wtedy uruchomienie jekyll new myblogzwraca ten błąd:

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

Czy ktoś wie, co to powoduje?

Jonathan
źródło
Ubuntu 13.04. Po zainstalowaniu Ruby zwykły sposób: sudo apt-get install ruby.
Jonathan
W przypadku Ubuntu 12.04 LTS zobacz to .
NickKolok

Odpowiedzi:

46

W moich systemach 13.04 i 14.04 wszystko działało dla mnie po zainstalowaniu pakietu ruby-dev, a następnie uruchomieniu instalacji gem:

  • sudo apt-get install ruby1.9.1-dev(lub spróbuj: ruby-devzamiast)

  • gem install jekyll # jeśli to się nie powiedzie sudo gem install jekyll

Następnie jekyll został poprawnie zainstalowany.

Pamiętaj, że do gem installinstrukcji lepiej nie używać sudo. *****

Lepiej jest użyć czegoś takiego jak RVM, więc sudonie jest to wymagane. W niektórych systemach może być konieczne użycie sudo, jeśli na przykład uprawnienia zostały ustawione przez poprzednie polecenia sudo lub konfigurację na poziomie administratora.

Zobacz pytanie stackoverflow - jak instalować klejnoty bez sudo, aby uzyskać więcej informacji i uzyskać pomoc dotyczącą uzyskiwania uprawnień dla użytkownika zamiast root.

***** zgłosił @iguarav dla tej najlepszej praktyki rad, a także link do rvm.io .

Belacqua
źródło
1
To się udało. Musiałem jednak również dodać katalog gem do PATH, aby móc uruchomić jekyllz wiersza poleceń. Musiałem także odinstalować wersję pakietu ubuntu, która nie ma newpodkomendy.
Jonathan
To zadziałało dla mnie. Najpierw próbowałem zainstalować i używać ruby2.0-dev, ale bez powodzenia.
emchristiansen
potwierdzony do pracy w ubuntu 14.04
Meta
nie powinieneś używać sudo z instalacją klejnotów, ponieważ są to biblioteki wielokrotnego użytku
igaurav
@belacqua najlepsze praktyki zalecane użycie RVM rvm.io . jeśli użyjesz nadmiernie sudo, wkrótce będziesz mieć problemy z zależnością.
igaurav
3

Przewodnik dla 14.04 LTS bez RVM

Jekyll 3 potrzebuje Ruby 2.0 lub nowszego, więc najpierw instalujemy Ruby 2.0, to nagłówki programistyczne i nodejs:

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

Następnie kierujemy polecenia zawarte w pakiecie ruby ​​do nowej wersji.

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

Na koniec geminstalujemy klejnot jekyll.

sudo gem install jekyll
mschwaig
źródło
1

Ponadto nie chcesz polegać na sudowykonywaniu gems, więc zalecamy dodanie użytkownika do grupy root i:

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

Tylko kilka aktualizacji tego wątku. Zgodnie z dokumentacją instalacyjną jekyll potrzebna jest wersja 2. Po naprawieniu problemu z uprawnieniami napotkałem oczekiwany błąd:

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

Instalowanie za pomocą 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

W przypadku innych problemów z instalacją Ruby wykonaj następujące czynności .

Potem zadziałało dla mnie.

3manuek
źródło