読者です 読者をやめる 読者になる 読者になる

ゼロからはじめるGollum Wiki

研究 Mac プログラミング

全く開発環境を整備したことがないマシンで、最終的にはGollum Wikiを設立し、自動git pushすることでGitHubへのバックアップもできる、という環境を構築します。Mac OS Mavericksを想定しています。

おしながき

  • iTerm2 導入
  • Sublime Text導入
  • Xcode導入
  • Homebrew導入
  • rbenv導入・設定
  • GitHubアカウント取得・ローカル設定
  • Gollum導入
  • Launchdで自動git push設定

iTerm2導入

Mac標準付属のTerminalは見にくい&醜いので、iTermに変えましょう。 こちらから本体をダウンロードしてアプリケーションフォルダに入れましょう。

iTerm2 - Mac OS Terminal Replacement

とりあえずインストールしたらPreferences→KeysタブでHotkeyを設定しましょう。僕はF1キーを設定して、簡単にiTermウィンドウを呼び出したり隠したりができるようにしています。

Sublime Text導入

コマンドラインからスクリプト書くのに重宝するテキストエディタです。もちろんVimEmacsに愛着があるかたはそちらでも良いのですが、特にこだわりがない方はSublime Textがモダンで良いのではないかと思います。

Sublime Text: The text editor you'll fall in love with

細かいテーマ設定などはお好みでどうぞ(僕はSolarizedを使っています)。

コマンドラインから呼び出すためにシンボリックリンクを設定しましょう。

sudo ln -s "/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl" /usr/bin/subl

これで、ターミナルにsublと打ち込めばSublime Textが立ち上がるはずです。

Xcode導入

MacディベロッパツールXCodeをインストールしましょう。

Xcode

Xcode

結構巨大なファイルなので、GUIが不要な方はCommand line Tools for XCodeをオススメします。

【追記】 Mavericksの場合はCommand line Toolsが以下の処理にあたって必須のようなので、以下のコマンドでインストールしてください。

xcode-select --install

Homebrew導入

次はパッケージマネージャーのHomebrewを導入します。最近はMac Portsより優勢らしいと聞きますが、正直その辺の機微はわかりません。両方一緒に入れちゃダメです。

Homebrew — OS X用パッケージマネージャー

以下のコマンドをターミナルに貼り付けて実行してください。

ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"

これでbrew doctorと打ち込んで動いたらインストール成功。 もし"Command not found"とエラーが出てしまったら、まずは

echo $PATH

と打ち込んでPathが通っているディレクトリを確認しましょう。もし/usr/local/binが見当たらなかったら、subl .bash_profileして.bashrcファイルを開き、

export PATH=/usr/local/bin:/usr/local/sbin:$PATH  # for Homebrew

と記入してから保存(⌘S)して、

source ~/.bash_profile

とターミナルに打ち込んで変更を反映させましょう。もういちどbrew doctorしてOKならbrew updateして次へ。

rbenv導入・設定

GollumはRubyで書かれたソフトウェアなので、Ruby周りの環境を整備しましょう。

インストール

brew install rbenv
echo 'if which rbenv > /dev/null; then eval "$(rbenv init -)"; fi' >> ~/.bash_profile
brew install ruby-build
brew install rbenv-gemset
brew install rbenv-gem-rehash

更新

rm -rf ~/.rbenv/plugins/ruby-build
git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build

確認・使用

rbenv --version #Versionかくにん!
rbenv install 1.9.3-p547 #Gollumは1.9.3推奨です
rbenv rehash
rbenv global 1.9.3-p547 #デフォルトに設定します

GitHub設定

GollumはGitHubと連携して動作するので、もしアカウントを持っていない方は登録してください。 GitHub · Build software better, together.

初期設定

アカウント登録が済んだら、まずはgitをダウンロードしていれます。

brew install git

つぎにターミナル上でhogehogeを自分のGitHubユーザー名に変えて実行。

git config --global user.name "hogehoge"

Emailも設定します(自分のアドレスに変更してください)

git config --global user.email "example@example.com"

キーチェーンを設定します

git config --global credential.helper osxkeychain

レポジトリ設定

まずはGitHub上でNew Repositoryを選び、適当な名前をつけたレポジトリを作成しましょう。 ここで、もし実験ノートなどの一般公開すべきでない情報を書き込む場合はレポジトリを非公開(Private)に設定しましょう。アカデミックユーザーなら無料で4つまで設定できます(前に書いたこちらの記事を参照してください)。 とりあえずwikiという名前にしましょう。

GitHubの操作が終わったら、iTerm上でwikiフォルダを収めたいディレクトリに行って、

mkdir wiki && cd wiki
git init
git remote add origin https://github.com/username/wiki.git

githubの設定を済ませましょう。

Gollum

インストール

brew install icu4c
sudo gem install nokogiri
sudo gem install gollum

でしばらく待ったら入るはずです。 Nokogiriを入れる際にnokogiri requires Ruby version >=1.9.2とエラーが出る場合は、rbenvのPATHが通っていない可能性が高いです。

HOMEに戻って(cd $HOME)、subl .bash_profileしてそこに

export PATH="$HOME/.rbenv/bin:$PATH"

と追記してからsource ~/.bash_profileして、echo $PATHしてみてrbenvが追加されてるか確認して下さい。 それからもう一度sudo gem install nokogiriするといける気がします。

起動

wikiフォルダ内で

gollum

を実行することでgollumが立ち上がります。 ブラウザのアドレスバーにhttp://localhost:4567と入力することでアクセスできます。

Gollumの使い方

Gitの基本

Gollumはwikiフォルダ内にあるファイルを読み込んでwikiに整形してくれるエンジンなのですが、gollumにファイルを認識してもらうためには変更がcommitされている必要があります。 このへんはGitの話になるので詳細は省きますが、とりあえず必要な操作は

git add . #変更点をadd
git commit -m "commit message" #変更をcommit。commit messageはわかりやすく書こう

です。これでhttp://localhost:4567に行けば変更点がみえるはずです。 せっかくなので

git push

すればcommit内容がGitHub側に反映されます(バックアップが出来ます)。

ワークフロー

とりあえずwikiフォルダに行って、

subl Home.md

でホームになるページを作成しましょう。内容はMarkdownで好きに書けばOKです。 保存できたら

git add .
git commit -m "add Home.md"
git push

とやればOKなはずです。 さらに、ブラウザ上でページを作ったり変更した場合は勝手にaddとcommitをしてくれるので、一日の終わりなどに最後のgit pushだけターミナルに戻ってやればよいことになります。

Git push自動化

そうはいってもいちいちgit pushするのめんどくさいし、忘れそうで不安だというのが人情でしょう。 そんな要望にも対応するスクリプトを書かれている方がいたのでご紹介します。

シェルスクリプト作成

まずはwikiフォルダ内にsync.shというファイルを作り(subl sync.sh)以下の内容を貼り付けます。

#!/bin/bash
DIR="$( cd -P "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
(cd $DIR && git pull && git push)

書けたら

chmod a+x sync.sh

を実行してアクセス権限を変更するのを忘れないこと。

Launchd設定

次に~/Library/LaunchAgentsに移動して、 com.github.gollum-sync.plistというファイルを作成しましょう。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>Label</key>
  <string>com.github.gollum-sync</string>
  <key>RunAtLoad</key>
  <true/>
  <key>ProgramArguments</key>
  <array>
      <string>/Users/user-name/path/to/sync.sh</string>
  </array>
  <key>StartInterval</key>
  <integer>60</integer>

</dict>
</plist>

/Users/user-name/path/to/sync.shはsync.shが置いてあるフォルダのパスに変えてください(wikiフォルダ内でpwdと入力すると表示されます)。

これで

launchctl load -w ~/Library/LaunchAgents/com.github.gollum-sync.plist

とすれば60秒間隔でpushを行ってくれます。

うまくいかない時は

うまく行ってなさそうなときはSpotlightからコンソールを呼び出し、右上の検索ボックスにGollumと入力してエラーが起こっていないか確認して下さい。 job failed to exec(3) for weird reason 2はファイルが見つからないエラーなのでcom.github.gollum-sync.plistのパスがあってるか確認、job failed to exec(3) for weird reason 13はファイルの権限が通っていないので上記のchmodをしているか確認してください。

まとめ

これでまっさらな状態からGollumでWikiを立ち上げ、さらに自動git pushGitHubにオート同期ができる状態になったのではないかと思います。もし間違っているところ、うまくいかないところがあった場合はコメントで教えてください!

参考にしたサイト

[Mac] ターミナルから Sublime Text 2 を開く subl コマンドを設定してみた(ついでにST2→ターミナルも) | memobits

Mac OS Xで環境変数にPATHを追加する方法 at HouseTect, JavaScriptな情報をあなたに

Ruby - Homebrewのインストールとrbenvのインストール Mac編 - Qiita

MacOSX - Mac OS Xでgollumを導入してgithubにpushするようにする - Qiita

githubのwikiエンジン"gollum"の導入と細かい設定 - yukke::note

Related Posts Plugin for WordPress, Blogger...