其實每個程序員都有着一顆Geek的心!
話說,從2016年年初,我就一直有一個想法,就是搭建一個本身的博客,讓本身更有歸屬感。可是奈何 理想太豐滿 一開始想的太多,想「徹底本身搭建先後端,想...」 結果,一直想了好幾個月,也沒有開始行動(期間域名也買了好幾個,可是奈何備案手續太麻煩,一直沒有開始...)html
某一天,我在知乎某貼上看到了"一系列的jekyll簡潔模板"。當時瞬間就被這些簡潔好看的模板給吸引住了,因而開始打算按照網上的大批教程,用jekyll搭建本身的博客。前端
奈何,當時剛開始接觸jekyll,並且用的電腦又是windows,再加上按照各類教程倒騰了幾天無果後,暫時就放棄windows上用它了。python
直到有一天,我翻出了那臺被棄用好幾個月的老舊本本,安裝了linux(ubuntu) 才終於按照教程成功的搭建了Jekyll博客。linux
折騰了幾天後,算是對其中的原因有了必定了解了,因而此次都從新試着在windows上弄jekyll。最終,不斷披荊斬棘,終於也成功的在windows上運行上了jekyll博客。git
本文正是基於以上狀況,整理了本身在ubutun上,在windows上安裝jekyll的步驟以及一些可能遇到的問題,但願能對他人有所幫助!(最起碼本身之後再次倒騰時能根據本文正常搭建)程序員
說明,本文只關注如何在本機運行起來jekyll博客,至於如何用github pages託管jekyll博客,相對簡單,就再也不贅述了github
另外,其實最近hexo也挺好的,只不過不是本文關注的內容ubuntu
磨刀不誤砍柴功,理清楚如下關係後,對搭建jekyll是有好處的,方便自查可能的錯誤緣由windows
另外還有一個ruby bunder(rails框架中用來管理項目 的gem的,叫bundle),在windows中搭建jekyll,須要安裝完ruby後用gem 安裝下bunder後端
jekyll是基於ruby的,因此搭建jekyll以前必須確保ruby正常安裝 注意,必須ruby大於2.0.0
jekyll3.0以前,有一個語法高亮插件"Pygments",這玩意是基於python的,因此纔會有各類教程裏面都說搭建jekyll以前須要python環境
可是,請注意 jekyll3.0之後,語法高亮插件已經默認改爲了 「rouge‘ 而它是基於ruby的,也就是說 如今搭建jekyll,咱們徹底沒必要要再安裝python 這樣能夠減小很大一部分工做量
無論是那一篇教程,都會告訴你安裝完ruby後須要經過gem命令將官方源改爲淘寶源或[ruby china][]源,這是由於默認的官方源在國外,國內幾乎是沒法訪問的(具體緣由麼...)
因此纔會必須改爲其否源,不然沒法使用,可是,請注意 如今淘寶源已經中止維護了,最新搭建jekyll 都應該要改爲 [ruby china][]的源
http://gems.ruby-china.org
首先,在確保ruby(2.0.0以上)正常安裝,而且切換了ruby china源(或者淘寶源)後,其它遇到的全部問題幾乎都是 確實某些ruby程序的問題,因此只須要根據提示 經過相應命令,好比 gem install ...
便可解決
windows下還得確保DEVELOPMENT KIT正常安裝,而且正確配置
不管是windows上仍是linux上,搭建jekyll基本都知足以下步驟:
另外,windows上還多了一步安裝DevKit-mingw
的過程
因此基本上來講,流程並很少,一遍完整走下來並費不了多少時間(可是網上教程參差不齊,再加上官方教程都是英文,對於剛接觸jekyll,而且英語基礎不太好的人來講,確實很容易被消磨掉激情)
本文中涉及到的安裝系統與環境以下:
說實話,剛開始在windows上安裝jekyll失敗之因此放棄,是由於剛接觸,對其中的關係不瞭解,不太會分析緣由,再加上各類教程都說windows下會出問題,因此就被莫名的恐懼到了。
但實際上最後再次在windows上搭建時,發現要比linux上簡單(至少比ubuntu 14.04上簡單),因此無論怎麼樣,要本身試過了才知道結果...
固然,也許是由於我目前用到的還很少,因此沒遇到那些傳說中的深坑...
若是求穩,最好仍是推薦下載2.0.0(由於本文並無實踐過其它版本,固然本身願意搗鼓固然更好了~~)
下載完安裝包後,先安裝rubyinstaller, 記得儘可能以管理員的權限安裝 安裝時會有三個選項
若是不明白意義,請所有選上(若是不選手,安裝後可能存在ruby不是可行命令等錯誤)。而且安裝完畢後,環境變量也會自動配置
若是安裝完後不放心,能夠自行去windows中檢查環境變量的配置(主要就是Path中有沒有對應的值),而後輸入ruby -v
,若是正常響應版本號則表明安裝正確
另外,本文中爲了排除各類因素,ruby和Development Kit都是默認安裝在C盤的
安裝完ruby後,接着安裝DevKit(請確保管理員權限安裝) 點擊安裝,選擇完對應的目標後,點擊確認即會自動提取
接下來找到安裝的目錄,如 C:\devkit
用windows的命令行運行->cmd便可進入命令行環境進入這個目錄,如 cd /d C:\devkit
,便可當即進入這個目錄。
進入目錄後輸入 ruby dk.rb init
待運行完畢後,該目錄中會自動生成一個config.yml
文件(如C:devkitconfig.yml)
接下來,編輯這個文件,修改爲如下樣子
# This configuration file contains the absolute path locations of all # installed Rubies to be enhanced to work with the DevKit. This config # file is generated by the 'ruby dk.rb init' step and may be modified # before running the 'ruby dk.rb install' step. To include any installed # Rubies that were not automagically discovered, simply add a line below # the triple hyphens with the absolute path to the Ruby root directory. # # Example: # # --- # - C:/ruby19trunk # - C:/ruby192dev # --- - C:\Ruby200-x64
其中惟一的修改就是在文件末尾加上了 - C:\Ruby200-x64
這段表明加上本身的ruby路徑, 實際中能夠將C:\Ruby200-x64
改成本身的實際ruby目錄(層級大概是C:Ruby200-x64bin,在bin的上一級)
修改完畢後,繼續在本目錄下鍵入如下命令便可
ruby dk.rb install
一切順利後,就表明Development Kit已經正確安裝並配置
鑑於官方源沒法訪問,因此咱們得更換爲可使用的源,這裏推薦使用[ruby china][]源,大體步驟以下
gem sources -l
查看當前已經添加的源(默認應該是同時有官方源和淘寶源) gem sources -r https://rubygems.org/
gem sources -r https://ruby.taobao.org/
分別移除官方源和淘寶源 (注意,請對比實際,移除本身已經添加的源便可,能夠改成本身上一步中查詢出來的地址) gem sources -a http://gems.ruby-china.org
添加了[ruby china][]的可用源gem sources -l
查看是否正確修改![rubysource][]
注意,上述的[ruby china][]源 我採用了http連接,這是由於我在windows中使用https時遇到了ssl問題,而且沒法解決,若是你能正確解決,能夠換爲https連接
安裝jekyll前先按照依賴包bundler,下述命令便可安裝
gem install bundler
以後,直接能夠經過下述命令安裝jekyll
gem install jekyll
安裝須要必定的時間,過一段時間正常安裝後即表明jekyll能夠開始使用了
首先,你能夠去[github][]上fork一個本身喜歡的jekyll模板,若是沒有本身喜歡的,能夠考慮用我正在改造的模板 [mygithub][] (這個模板參考了3我的的源碼,正在打算本身重寫前端源碼,正在改造中,歡迎star和fork)
而後將對應的項目拷貝到本身本地的目錄下,一樣用cmd命令進入對應的目錄,好比 E:\tools\jekyll\project\dailc.github.io
而後運行 jekyll serve
過一會後若是有如下提示,則表明正常運行
Server address: http://127.0.0.1:4000/ Server running... press ctrl-c to stop.
另外,若是過程當中遇到一些其它缺失組件的狀況,能夠經過相應的gem命令安裝
接下來,jekyll已經成功運行了,你能夠本身作任意修改了(另外,請注意md文件別用中文命名,不然可能會出錯- gbk to utf8的錯誤,並且保存的文件必定要是UTF-8 無 BOM格式,不然可能沒法識別對應的文章)
另外,須要注意,windows下的jekyll是不支持自動監聽的...
你們也能夠看下目前我搭建的jekyll blog (聲明,參考了多人源碼,正在改造,最終的版本會與如今大不同)
上述我之因此直接用已有的jekyll模板運行而不是直接用 jekyll new myblog
來完成hello word項目,是由於這樣可能會遇到問題
我發現用上述命令搭建hello word項目時,老是提示
Gem::RemoteFetcher::FetchError: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed
而後,我進到myblog目錄下,打開了Gemfile文件,發現原來裏面默認用了一個官方源source(以下)... 因此仍是推薦你們使用已經搭建好的jekyll模板
source "https://rubygems.org" ruby RUBY_VERSION # Hello! This is where you manage which Jekyll version is used to run. ...
其實我最早是在linux上搭建成功的,那時候還順帶學了下git命令,總的來講,也是遇到了很多坑。
我一開始安裝的linux是ubuntu 13.04,而後一開始就發現這個版本14年1月份就已經停用了,而後開始找各類教程,最後能正常更新時發現,這個版本默認不帶ruby2.0.0(當時弄明白後只能繼續重裝能用的版本了...)
關於ubuntu版本號的選擇能夠參考下 [ubuntu 版本支持][](最好使用LTS版本)
開始前先更新下,而後安裝 ruby2.0
sudo apt-get update sudo apt-get install ruby2.0
最好經過su命令進入root權限,另外能夠經過 sudo passwd
設置root密碼
上一步操做完了後,經過 ruby -v
查看發現顯示的是 ruby 1.9.1,這時候請不要慌,其實2.0已經安裝完畢了的(14.04的狀況下)
在14.04中,若是安裝ruby2.0,會默認同時安裝1.9.3和2.0.0,並且1.9.3會顯示成1.9.1,默認用的是1.9.3,因此纔會出現這種狀況
這時候,就須要咱們強制更改ruby版本了,咱們能夠經過強制替換/usr/bin/目錄下與Ruby相關的符號連接到Ruby 2.0對應的版本,這樣便可實現默認版本的切換:(請注意備份,避免意外)
cd /usr/bin/ ln -sf ruby2.0 ruby ln -sf gem2.0 gem ln -sf erb2.0 erb ln -sf irb2.0 irb ln -sf rake2.0 rake ln -sf rdoc2.0 rdoc ln -sf testrb2.0 testrb
替換完成以後先更換官方源,參考windows下更換gem source(在上文)。以後更新下gem
gem update --system gem pristine --all
這時Ruby的默認版本就已經切換到2.0了。固然雖然這樣作比較暴力,但也是能夠還原的,若是想切換會Ruby 1.9.3,只須要運行(請注意在Ubuntu 14.04中,Ruby 1.9.3的名稱爲ruby1.9.1):
cd /usr/bin/ ln -sf ruby1.9.1 ruby ln -sf gem1.9.1 gem ln -sf erb1.9.1 erb ln -sf irb1.9.1 irb ln -sf rake1.9.1 rake ln -sf rdoc1.9.1 rdoc ln -sf testrb1.9.1 testrb
一樣的,再更新一下gem以後Ruby就又切換回1.9.3了。
更改完了後,能夠經過 ruby -v
查看是否版本正確
確保已經切換成了可用源(淘寶源或[ruby china][]源),而後經過下述命令便可安裝jekyll
gem install jekyll -V
-V(大寫)表明查看詳細進度
安裝完了後,和上文同樣,用本身喜歡的jekyll模板,而後運行jekyll serve
便可查看效果
(以後本身能夠任意進行修改,以及添加本身想要的功能)
報錯:
rb can't find header files for ruby
解決:
apt-get install ruby2.0-dev(版本必須正確)
報錯:
缺乏依賴rdiscount,這個是用來解析Markdown標記的解析包。
解決:
gem install rdiscount -V
mac中比較方便,由於通常mac是自帶ruby和gem的
若是沒有ruby
brew install ruby
注意,gem安裝jekyll須要ruby 1.9.2以上版本,如今官方推薦的是1.9.3
若是版本低於,請升級
雖然自帶gems,但在國內,默認的源是被牆住的,所以須要從新設置淘寶源(感謝阿里)
gem sources --remove https://rubygems.org/ gem sources -a http://ruby.taobao.org/ gem sources -l
最後確保只剩一個淘寶源便可
gem install jekyll
安裝完後,便可使用了
jekyll build jekyll server ...
若是遇到權限問題,沒法安裝上,可使用管理員權限安裝
sudo gem install jekyll
若是提示
requires Ruby version >= 2.1.
那麼是因爲ruby版本太低形成的,更新ruby
1.先安裝rvm
curl -L get.rvm.io | bash -s stable
2.開啓rvm
source ~/.bashrc source atom .bash_profile (添加:export PATH=/usr/local/bin:$PATH) source ~/.bash_profile
3.測試是否安裝正常
rvm -v
4.安裝homebrew
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
5.使用rvm安裝新版本的ruby
rvm install 2.2.4 或者 brew install ruby
6.檢測版本是否正常
ruby -v
若是遇到It looks like you don't have jekyll-paginate
gem install jekyll-paginate
雖說在windows上和linux上搭建 jekyll時遇到了各類各樣問題,可是最終都解決了,在解決的那一瞬間,實際上是挺有知足感的(大概這也是我喜歡搗鼓這些東西的願意之一吧),並且確實感受本身知識面比起之前仍是有所拓展的。
因此無論怎麼樣,仍是得多學!
你如今所學的知識,會在未來的某個時間段派上用場!
初次發佈2016.10.30
於我我的博客上面