Wie installiere ich jekyll?

30

Laut der Jekyll-Site erstellen Sie mit Jekyll eine neue Website:

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

gem install jekyllhat nicht funktioniert, noch hat 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

Ich habe auch versucht, der Antwort hier zu folgen , aber das hilft nicht. sudo apt-get install jekyllfunktioniert. Selbst dann gibt das Ausführen jekyll new myblogdiesen Fehler zurück:

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

Weiß jemand, was das verursacht?

Jonathan
quelle
Ubuntu 13.04. Ich installierte die übliche Art und Weise Rubin: sudo apt-get install ruby.
Jonathan
Für Ubuntu 12.04 LTS siehe dies .
NickKolok

Antworten:

46

Auf meinen Systemen 13.04 und 14.04 funktionierten die Dinge für mich, nachdem ich das Ruby-Dev-Paket installiert und dann die Gem-Installation ausgeführt hatte:

  • sudo apt-get install ruby1.9.1-dev(oder versuchen: ruby-devstattdessen)

  • gem install jekyll # wenn dies fehlschlägt dann sudo gem install jekyll

Danach wurde Jekyll korrekt installiert.

Beachten Sie, dass es für die gem installAnweisung besser ist, sudo nicht zu verwenden. *****

Es ist besser, so etwas wie RVM zu verwenden, damit dies sudonicht erforderlich ist. Auf einigen Systemen kann es erforderlich sein, sudoBerechtigungen zu verwenden , die beispielsweise durch vorherige sudo-Befehle oder durch die Konfiguration auf Stammebene festgelegt wurden.

In dieser Frage zum Stackoverflow erfahren Sie, wie Sie Gems ohne sudo installieren, um weitere Informationen zu erhalten und um zu erfahren, wie Sie Berechtigungen für Benutzer anstelle von root festlegen.

***** Credit @iguarav für diese Best Practices Beratung sowie den Link zu rvm.io .

belacqua
quelle
1
Das hat funktioniert. Ich musste aber auch das gem-Verzeichnis zu meinem PATH hinzufügen, um jekyllvon der Kommandozeile ausführen zu können . Ich musste auch die Ubuntu-Paketversion deinstallieren, die den newUnterbefehl nicht hat .
Jonathan
Das hat bei mir funktioniert. Außerdem habe ich zuerst versucht, ruby2.0-dev zu installieren und zu verwenden, aber ohne Glück.
Emchristiansen
bestätigt, um bei Ubuntu 14.04
Meta
Sie sollten sudo nicht mit gem install verwenden, da dies nur wiederverwendbare Bibliotheken sind
igaurav
@belacqua Best Practices empfehlen Verwendung von RVM rvm.io . Wenn Sie sudo übermäßig verwenden, werden Sie bald mit Abhängigkeitsproblemen konfrontiert sein.
Igaurav
3

Leitfaden für 14.04 LTS ohne RVM

Jekyll 3 benötigt Ruby 2.0 oder höher, daher installieren wir zuerst Ruby 2.0, dessen Entwicklungs-Header und Node-Js:

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

Dann verweisen wir die im Ruby-Paket enthaltenen Befehle auf die neue Version.

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

Und zum Schluss geminstallieren wir den Jekyll-Edelstein.

sudo gem install jekyll
mschwaig
quelle
1

Außerdem möchten Sie sudobei der Ausführung nicht darauf angewiesen sein gems, dass Ihr Benutzer der Root-Gruppe hinzugefügt wird, und:

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

Ich mache nur ein paar Updates für diesen Thread. Laut den Installationsdokumenten von Jekyll ist Version 2 erforderlich. Nach dem Beheben des Berechtigungsproblems trat der erwartete Fehler auf:

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

Installation mit 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

Befolgen Sie diese Anweisungen bei anderen Problemen mit der Ruby-Installation .

Danach hat es bei mir geklappt.

3manuek
quelle