Ruby > さくらのレンタルサーバで gem install jekyll

「Ruby/さくらのレンタルサーバで gem install jekyll」の編集履歴(バックアップ)一覧に戻る

Ruby/さくらのレンタルサーバで gem install jekyll - (2015/11/08 (日) 21:53:10) のソース

*ruby1.9、gems2.5、yaml
さくらのレンタルサーバ/スタンダードプランにruby1.9、gems2.5を入れて gem install できるようにする。

**元々のバージョン
#highlight(){{
$ ruby -v
ruby 1.8.7 (2012-10-12 patchlevel 371) [amd64-freebsd9]
$ gem -v
1.8.25
}}

**ディレクトリの用意、ソースの取得
#highlight(){{
$ cd $HOME/local
$ mkdir src
$ cd src
$ wget ftp://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p448.tar.gz
$ wget http://rubygems.org/rubygems/rubygems-2.5.0.tgz # rubyforge.orgは無くなった
$ wget http://pyyaml.org/download/libyaml/yaml-0.1.5.tar.gz
}}

**パスの設定
 $ emacs $HOME/.bashrc

#highlight(){{
PATH=$HOME/local/bin:$HOME/local/lib/ruby/gems/bin:$PATH
export RUBYLIB=$HOME/local/lib/ruby/site_ruby/1.9.3:$HOME/local/lib/ruby
export GEM_HOME=$HOME/local/lib/ruby/gems
}}

 $ source $HOME/.bashrc

**yamlのインストール
#highlight(){{
tar zxvf yaml-0.1.5.tar.gz
cd yaml-0.1.5
./configure --prefix=$HOME/local
make && make install
}}

**ruby1.9のインストール
#highlight(){{
cd $HOME/local/src
tar xf ruby-1.9.3-p448.tar.gz
cd ruby-1.9.3-p448
./configure --prefix=$HOME/local --with-opt-dir=$HOME/local
make && make install
}}

**gem2.5のインストール
#highlight(){{
cd $HOME/local/src
tar xf rubygems-2.5.0.tgz
cd rubygems-2.5.0
ruby setup.rb
}}

**確認
#highlight(){{
$ ruby -v
ruby 1.9.3p448 (2013-06-27 revision 41675) [x86_64-freebsd9.1]
$ gem -v
2.5.0
}}

*jekyll2 と Node.js をインストール

**jekyllをgemインストール
 $ gem install jekyll  -v 2.5.3
 (NoMethodError) undefined method `name' for #<RDoc::RubyToken::TkLPAREN:0x00000806dabc50>

なんか RDoc のパーサーがエラー吐いてる

 $ gem install rdoc --pre
 Installing ri documentation for rdoc-4.2.0

 $ gem install jekyll -v 2.5.3
今度は入った。

**PATHの追加
$ emacs ~/.bashrc
 export NODE_PATH=${HOME}/local/lib/node_modules
 export NODE_MODULES=${HOME}/local/bin/node_modules
 export LD_LIBRARY_PATH=${HOME}/local/lib
 export LD_RUN_PATH=${HOME}/local/lib

 $ source ~/.bashrc

**libexecinfo をインストール
node.js のビルドに libexecinfo が必要になるので
#highlight(){{
$ cd $HOME/local/src
$ wget http://pkg.freebsd.org/freebsd:9:x86:64/latest/All/libexecinfo-1.1_3.txz
$ mkdir libexecinfo-1.1_3
$ tar xf libexecinfo-1.1_3.txz -C libexecinfo-1.1_3
$ cd libexecinfo-1.1_3
$ mv usr/local/include/* ~/local/include/
$ mv usr/local/lib/* ~/local/lib/
$ mv usr/local/share/doc/* ~/local/share/doc/
}}

**Node.jsをインストール
#highlight(){{
cd $HOME/local/src
wget https://nodejs.org/download/release/v0.12.7/node-v0.12.7.tar.gz --
tar xf node-v0.12.7.tar.gz
}}

***lexecinfoのパス指定
emacs node-v0.12.7/deps/v8/tools/gyp/v8.gyp
#highlight(){{
             ['OS=="freebsd"', {
+                'include_dirs+': [
+                  '/home/アカウント名/local/include'
+                ],
                 'link_settings': {
                   'libraries': [
-                    '-L/usr/local/lib -lexecinfo',
+                    '-L/usr/local/lib -L${HOME}/local/lib -lexecinfo',
                 ]},
                 'sources': [
                   '../../src/platform-freebsd.cc',
}}

***platform-freebsd.ccコンパイルエラーの回避
emacs node-v0.12.7/deps/v8/src/base/platform/platform-freebsd.cc
#highlight(){{
std::vector<OS::SharedLibraryAddress> OS::GetSharedLibraryAddresses() {
略
-  std::vector result;
+  std::vector address_result;
略
-  if (fd < 0) return result;
+  if (fd < 0) return address_result;
略
-    result.push_back(SharedLibraryAddress(start_of_path, start, end));
+    address_result.push_back(SharedLibraryAddress(start_of_path, start, end));
略
-  return result;
+  return address_result;
}}

***platform-posix.cc コンパイルエラー回避
emacs node-v0.12.7/deps/v8/src/base/platform/platform-posix.cc
#highlight(){{
int OS::GetCurrentThreadId() {
#if V8_OS_MACOSX
  return static_cast<int>(pthread_mach_thread_np(pthread_self()));
#elif V8_OS_LINUX
  return static_cast<int>(syscall(__NR_gettid));
#elif V8_OS_ANDROID
  return static_cast<int>(gettid());
#else
-  return static_cast<int>(pthread_self());
+  return static_cast<int>((int64_t)(void *)pthread_self());
#endif
}}


***node.jsインストール
#highlight(){{
cd node-v0.12.7
./configure --with-intl=small-icu --download=all --prefix=$HOME/local
gmake && gmake install
}}

**確認
$ jekyll -v
jekyll 2.5.3