在Archlinux用着用着虚拟机,XP系统突然崩溃重启不来了,当时正赶着要用Windows系统,所以一气之下把系统重做为Windows 7了,这是好长时间以前的事了,当时就想着用Cygwin装了Jekyll来用,结果没成功,今天又试了一次,好歹是成功了,记录一下。
安装Jekyll
之前要先安装Ruby
,这里使用的是通过rvm
来安装Ruby
,在安装之前要使得Cygwin
已安装了patch
,zlib-devel
,openssl
,openssl-devel
,libyaml-devel
,libyaml0_2
,sqlite3
,make
,libtool
,gcc-core
,autoconf
,automake
,bison
,m4
,mingw64-i686-gcc
,mingw64-x86_64-gcc
,cygwin32-readline
1。
安装Ruby
,安装方法可见这里,主要步骤为:
安装rvm
curl -L https://get.rvm.io | bash -s stable --ruby
安装ruby
rvm list known
rvm install 2.1
rvm use 2.1 --default
安装jekyll
gem update --system
gem list
gem install jekyll
安装jekyll会出现错误,错误主要是由于ffi-1.9.3.gem
的安装问题:
.
.
.
compiling ffi.c
compiling Function.c
Function.c: 在函数'callback_invoke'中:
Function.c:479:9: 警告:
传递'rb_thread_call_with_gvl'的第1个参数时在不兼容的指针类型间转换 [默认启用]
rb_thread_call_with_gvl(callback_with_gvl, &cb);
^
.
.
.
linking shared-object ffi_c.so
Call.o: 在函数'call_blocking_function'中:
/home/$USER/.rvm/gems/ruby-2.1.1/gems/ffi-1.9.3/ext/ffi_c/Call.c:294:
对'ffi_call'未定义的引用
/home/$USER/.rvm/gems/ruby-2.1.1/gems/ffi-1.9.3/ext/ffi_c/Call.c:294:(.text+0xa4):
relocation truncated to fit: R_X86_64_PC32 against undefined symbol
'ffi_call'
.
.
.
collect2: 错误: ld 返回 1
Makefile:232: recipe for target 'ffi_c.so' failed
make: *** [ffi_c.so] Error 1
.
.
.
解决方法见这里,也即:在Cygwin
中安装libffi6
,libffi-devel
,cygwin32-libffi
,pkg-config
并将PKG_CONFIG_PATH
指向为”/lib/pkgconfig”
export PKG_CONFIG_PATH="/lib/pkgconfig"
这样就可以安装成功Jekyll
了。
安装完Jekyll
后在博客目录运行jekyll serve
会发现Liquid
抛出异常:
.
.
.
Generating... Liquid Exception: No such file or directory - C:\Windows\System32\cmd.exe in
.
.
.
解决方法在这里,即设置一下COMSPEC
变量:
export COMSPEC=/cygdrive/c/Windows/System32/cmd.exe
好了,这样就可以运行jekyll
serve
了。在Cygwin
中安装Jekyll
的事情到此就结束了。
这里uname -a
查看Cygwin版本为”CYGWIN_NT-6.1”,cygcheck -V
为”cygcheck (cygwin) 1.7.28”。 ↩