在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-readline1。
安装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”。 ↩