更新Jekyll


更新碼雲博客后,想在本地測試一下。上次更新倉庫是2年前了,這次爆出一堆問題,參考網上一篇文章解決了。

報錯

% jekyll serve
zsh: /usr/local/bin/jekyll: bad interpreter: /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/bin/ruby: no such file or directory

查看ruby版本

% ruby --version
ruby 2.6.3p62 (2019-04-16 revision 67580) [universal.x86_64-darwin19]

一、更新jekyll

sudo gem install bundler jekyll

又裝了一大堆東西。

新的報錯

% jekyll serve  
Traceback (most recent call last):
	12: from /usr/local/bin/jekyll:23:in `<main>'
	11: from /usr/local/bin/jekyll:23:in `load'
	10: from /Library/Ruby/Gems/2.6.0/gems/jekyll-4.0.0/exe/jekyll:11:in `<top (required)>'
	 9: from /Library/Ruby/Gems/2.6.0/gems/jekyll-4.0.0/lib/jekyll/plugin_manager.rb:52:in `require_from_bundler'
	 8: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/bundler.rb:107:in `setup'
	 7: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/bundler/runtime.rb:20:in `setup'
	 6: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/bundler/runtime.rb:108:in `block in definition_method'
	 5: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/bundler/definition.rb:226:in `requested_specs'
	 4: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/bundler/definition.rb:237:in `specs_for'
	 3: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/bundler/definition.rb:170:in `specs'
	 2: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/bundler/spec_set.rb:85:in `materialize'
	 1: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/bundler/spec_set.rb:85:in `map!'
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/bundler/spec_set.rb:91:in `block in materialize': Could not find public_suffix-3.0.2 in any of the sources (Bundler::GemNotFound)

更新bundle。很慢,還以為卡死了。中間要輸密碼。
太慢了,因為Gemfile.lock寫死了gem的源:

GEM
  remote: https://rubygems.org/

改鏡像

$ bundle config mirror.https://rubygems.org https://gems.ruby-china.com

改完鏡像,瞬間升級完成

% bundle update

還是報錯

% jekyll serve 
Traceback (most recent call last):
	10: from /usr/local/bin/jekyll:23:in `<main>'
	 9: from /usr/local/bin/jekyll:23:in `load'
	 8: from /Library/Ruby/Gems/2.6.0/gems/jekyll-4.0.0/exe/jekyll:11:in `<top (required)>'
	 7: from /Library/Ruby/Gems/2.6.0/gems/jekyll-4.0.0/lib/jekyll/plugin_manager.rb:52:in `require_from_bundler'
	 6: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/bundler.rb:107:in `setup'
	 5: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/bundler/runtime.rb:26:in `setup'
	 4: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/bundler/runtime.rb:26:in `map'
	 3: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/forwardable.rb:230:in `each'
	 2: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/forwardable.rb:230:in `each'
	 1: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/bundler/runtime.rb:31:in `block in setup'
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/bundler/runtime.rb:319:in `check_for_activated_spec!': You have already activated i18n 1.8.2, but your Gemfile requires i18n 0.9.5. Prepending `bundle exec` to your command may solve this. (Gem::LoadError)

解:
加上bundle exec,運行成功

% bundle exec jekyll serve
Configuration file: /Users/luojinrong/code/GitHub/obarong.github.io/_config.yml
            Source: /Users/luojinrong/code/GitHub/obarong.github.io
       Destination: /Users/luojinrong/code/GitHub/obarong.github.io/_site
 Incremental build: disabled. Enable with --incremental
      Generating... 
       Jekyll Feed: Generating feed for posts
                    done in 0.708 seconds.
 Auto-regeneration: enabled for '/Users/luojinrong/code/GitHub/obarong.github.io'
    Server address: http://127.0.0.1:4000/
  Server running... press ctrl-c to stop.

二、升級本地倉庫用的Jekyll版本(這節可以跳過)

在倉庫目錄查看Jekyll版本會出現之前那個報錯,要去沒有Gemfile的目錄。

% jekyll -v
jekyll 4.0.0

在倉庫目錄實際用的是3.8.6

% bundle exec jekyll -v
jekyll 3.8.6

修改Gemfile

gem "jekyll", "~> 4.0.0"

更新

% bundle install
The dependency tzinfo-data (>= 0) will be unused by any of the platforms Bundler is installing for. Bundler is installing for ruby but the dependency is only for x86-mingw32, x86-mswin32, x64-mingw32, java. To add those platforms to the bundle, run `bundle lock --add-platform x86-mingw32 x86-mswin32 x64-mingw32 java`.
Fetching gem metadata from https://rubygems.org/............
Fetching gem metadata from https://rubygems.org/..
You have requested:
  jekyll ~> 4.0.0

The bundle currently has jekyll locked at 3.8.6.
Try running `bundle update jekyll`

If you are updating multiple gems in your Gemfile at once,
try passing them all to `bundle update`
% bundle update jekyll

成功升級倉庫的Jekyll。這下可以直接執行jekyll serve了。

三、本地改用GitHub pages主題

為什么GitHub pages的顯示效果比我本地的好?

修改Gemfile

#gem "jekyll", "~> 4.0.0"
……
gem "github-pages", group: :jekyll_plugins

報錯

% bundle update github-pages
Could not find gem 'github-pages'.

解:

% sudo gem install github-pages

install和update走起

% bundle update

這下本地瀏覽效果跟GitHub一模一樣,但是要加bundle exec啟動。

參考

解決因macOS High Sierra更新Ruby到2.3造成的Jekyll不能啟動的問題 | 大專欄
https://www.dazhuanlan.com/2019/08/21/5d5c525c9e454/

bundle install 無響應問題 | 大專欄
https://www.dazhuanlan.com/2020/01/07/5e142e02df589/

個人博客搭建之一步步使用Github Page創建博客主頁(2) | 大專欄
https://www.dazhuanlan.com/2020/02/02/5e366f389c663/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM