Bagaimana cara menginstal jekyll?

30

Menurut situs jekyll , ini adalah bagaimana Anda membuat situs web baru dengan jekyll:

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

gem install jekylltidak bekerja, juga tidak 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

Saya juga mencoba mengikuti jawabannya di sini , tetapi itu tidak membantu. sudo apt-get install jekyllbekerja. Meskipun demikian, meskipun berjalan jekyll new myblogmengembalikan kesalahan ini:

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

Adakah yang tahu apa yang menyebabkan ini?

Jonathan
sumber
Ubuntu 13.04. Saya telah menginstal ruby cara biasa: sudo apt-get install ruby.
Jonathan
Untuk Ubuntu 12,04 LTS lihat ini .
NickKolok

Jawaban:

46

Pada sistem 13,04 dan 14,04 saya, semuanya bekerja untuk saya setelah menginstal paket ruby-dev, kemudian menjalankan gem install:

  • sudo apt-get install ruby1.9.1-dev(atau coba: ruby-devsebagai gantinya)

  • gem install jekyll # jika ini gagal maka sudo gem install jekyll

Setelah itu, jekyll dipasang dengan benar.

Perhatikan bahwa untuk gem installinstruksinya, lebih baik tidak menggunakan sudo. *****

Lebih baik menggunakan sesuatu seperti RVM, jadi itu sudotidak diperlukan. Pada beberapa sistem mungkin perlu digunakan sudo, jika misalnya izin ditetapkan oleh perintah sudo sebelumnya atau konfigurasi tingkat root.

Lihat pertanyaan stackoverflow ini - cara memasang permata tanpa sudo untuk informasi lebih lanjut dan untuk bantuan mengatur izin kepada pengguna alih-alih root.

***** Kredit untuk @iguarav nasihat praktik terbaik ini serta link ke rvm.io .

belacqua
sumber
1
Itu berhasil. Saya juga harus menambahkan direktori gem ke PATH saya, agar dapat menjalankan jekylldari command-line. Saya juga harus menghapus versi paket ubuntu, yang tidak memiliki newsub- perintah .
Jonathan
Ini berhasil untuk saya. Juga, saya pertama kali mencoba menginstal dan menggunakan ruby2.0-dev tetapi tidak berhasil.
emchristiansen
dikonfirmasi untuk bekerja di ubuntu 14.04
Meta
Anda tidak boleh menggunakan sudo dengan gem install karena ini hanya perpustakaan yang dapat digunakan kembali
igaurav
@belacqua praktik terbaik merekomendasikan penggunaan RVM rvm.io . jika Anda menggunakan sudo secara berlebihan, Anda akan segera menghadapi masalah ketergantungan.
igaurav
3

Panduan untuk 14,04 LTS tanpa RVM

Jekyll 3 membutuhkan ruby ​​2.0 atau lebih tinggi, jadi kami pertama kali menginstal ruby ​​2.0, header dan nodejs pengembangannya:

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

Kemudian kami mengarahkan perintah yang termasuk dalam paket ruby ​​ke versi baru.

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

Dan akhirnya kita gunakan gemuntuk menginstal jekyll gem.

sudo gem install jekyll
mschwaig
sumber
1

Selain itu, Anda tidak ingin bergantung pada sudountuk mengeksekusi gems, jadi saya sarankan untuk menambahkan pengguna Anda ke grup root dan:

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

Hanya melakukan beberapa pembaruan di utas ini. Menurut dokumen instalasi jekyll versi yang diperlukan adalah versi 2. Setelah memperbaiki masalah izin, saya mengalami kesalahan yang diharapkan:

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

Menginstal dengan 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

Untuk masalah lain dengan instalasi Ruby, ikuti ini .

Setelah itu, itu berhasil untuk saya.

3manuek
sumber