Octopressを再インストールしたのでその手順をメモしました。
前回同様にこちらの記事を参考にインストール。
環境
- CentOS5
- ruby 1.9.3
他割愛
やった事メモ
手探りと思いつきでやったので、行った順番はバラバラ。
再インストール
GitHubPages用のリポジトリの作成
GitHubPages用のドメインがgithub.comからgithub.ioに変わってるので、いい機会だしリポジトリも名前を変えて作り直しにしちゃおうと思います。
とりあえず既存のリポジトリはそのまま、新たにalalwww.github.ioリポジトリを作成。手順は割愛。
Source用リポジトリ(リモート)の作成
BitBucketに置くことにしました。
さくっとアカウントを作成してメール認証とSSHKey登録。Octopressのリポジトリを非公開で作成。手順は割愛。
GitHubを使ったことが有るからかもだけど、特に迷うこともなく完了。
サーバーの更新ほったらかしていたのでとりあえず更新
$ sudo yum update
とかとか。いろいろ。
Gemの更新
$ sudo gem update --system
実際はインストールとかひと通り終わった後に思い出してやりました。特に問題はなかったからよしってことにしました。
Octopress再インストール
Octopressをクローンしてきて準備。
$ cd ~/git/
$ git clone git://github.com/imathis/octopress.git octopress
$ cd octopress
$ sudo gem install bundler // 既にインストール済みだし不要だったかも
$ bundle install // 同上
$ bundle update rake
$ rake install
bundle update rake
は忘れてたのであとでやりなおしました。最初、更新を忘れていたせいか、rake setup_github_pages
でブランチがmasterからsourceに変わらないといったハプニングはありましたが、やり直したら問題なくいけたっぽいので気にしないことに。
Octopressのインストール
$ rake setup_github_pages
Enter the read/write url for your repository
(For example, 'git@github.com:your_username/your_username.github.io.git)
or 'https://github.com/your_username/your_username.github.io')
Repository url: (GitHubのリポジトリのURLを入力)
Added remote git@github.com:username/username.github.io.git as origin
Set origin as default remote
Master branch renamed to 'source' for committing your blog source files
rm -rf _deploy
mkdir _deploy
cd _deploy
Initialized empty Git repository in /path/to/git_repos/octopress/_deploy/.git/
[master (root-commit) 81f3a5e] Octopress init
1 file changed, 1 insertion(+)
create mode 100644 index.html
cd -
---
## Now you can deploy to (入力したGitHubのリポジトリのURL) with `rake deploy` ##
ブランチを確認。やり直したあとはちゃんとmasterからsourceに変わってる事を確認。(先に書いたgemsの更新忘れてたときは、何故かこれができてなくてハマってた。)
$ git branch
* source
変更されたファイルを確認。
$ git status
# On branch source
# Changes not staged for commit:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: Gemfile.lock
# modified: Rakefile
# modified: _config.yml
#
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# sass/
# source/
no changes added to commit (use "git add" and/or "git commit -a")
とりあえず未編集状態でコミット。
$ git add .
$ git commit -m 'first commit'
リモートを追加してsourceブランチをpush
作っておいたBitbucketのリポジトリを追加。
$ git remote add bitbucket git@bitbucket.org:username/octopress.git
でもって確認も兼ねてプッシュ。
$ git push bitbucket source
Enter passphrase for key '/path/to/sshkeydir/keyfile':
Counting objects: 4724, done.
Compressing objects: 100% (2027/2027), done.
Writing objects: 100% (4724/4724), 1.19 MiB, done.
Total 4724 (delta 2459), reused 4519 (delta 2321)
To git@bitbucket.org:username/octopress.git
* [new branch] source -> source
Bitbucketサイトのコミットログを確認。
動作の確認など
最低限の設定を行った後、とりあえず生成してみようと記事をバックアップから復活し、rake generate
を実行してみると失敗しました。
$ rake generate
## Generating Site with Jekyll
directory source/stylesheets/
create source/stylesheets/screen.css
Configuration from /path/to/git_repos/octopress/_config.yml
Building site: source -> public
Liquid Exception: incompatible character encodings: UTF-8 and ASCII-8BIT in 2013-02-19-blog-customization1.markdown
/usr/local/lib/ruby/gems/1.9.1/gems/liquid-2.3.0/lib/liquid/block.rb:92:in `join'
/usr/local/lib/ruby/gems/1.9.1/gems/liquid-2.3.0/lib/liquid/block.rb:92:in `render_all'
/usr/local/lib/ruby/gems/1.9.1/gems/liquid-2.3.0/lib/liquid/block.rb:82:in `render'
/usr/local/lib/ruby/gems/1.9.1/gems/liquid-2.3.0/lib/liquid/template.rb:124:in `render'
/usr/local/lib/ruby/gems/1.9.1/gems/liquid-2.3.0/lib/liquid/template.rb:132:in `render!'
/usr/local/lib/ruby/gems/1.9.1/gems/jekyll-0.12.0/lib/jekyll/convertible.rb:79:in `do_layout'
/path/to/git_repos/octopress/plugins/post_filters.rb:167:in `do_layout'
/usr/local/lib/ruby/gems/1.9.1/gems/jekyll-0.12.0/lib/jekyll/post.rb:195:in `render'
/usr/local/lib/ruby/gems/1.9.1/gems/jekyll-0.12.0/lib/jekyll/site.rb:200:in `block in render'
/usr/local/lib/ruby/gems/1.9.1/gems/jekyll-0.12.0/lib/jekyll/site.rb:199:in `each'
/usr/local/lib/ruby/gems/1.9.1/gems/jekyll-0.12.0/lib/jekyll/site.rb:199:in `render'
/usr/local/lib/ruby/gems/1.9.1/gems/jekyll-0.12.0/lib/jekyll/site.rb:41:in `process'
/usr/local/lib/ruby/gems/1.9.1/gems/jekyll-0.12.0/bin/jekyll:264:in `<top (required)>'
/usr/local/bin/jekyll:23:in `load'
/usr/local/bin/jekyll:23:in `<main>'
Build Failed
しかしもう一度試してみると発生しなく…。
$ rake generate
## Generating Site with Jekyll
identical source/stylesheets/screen.css
Configuration from /path/to/git_repos/octopress/_config.yml
Building site: source -> public
Successfully generated site: source -> public
よくわからないけどなんか大丈夫になってしまった。再現性がないのでとりあえず保留。このあとテーマ更新した際にもう一度だけ発生したけど、やっぱりそれ以降再現しないので忘れることに。
とりあえず目についたエラーメッセージをコピって先生に聞いてみたら、関連しそうな記事はあったんだけれど、この後の記事でもOctopress側に問題があっておきてるような事が書いてあるし、原因調査に割く時間もないので、時が解決してくれることを期待しておきます。
設定変更など
.gitignoreに.preview-modeを追加
git status
してみると、新規ファイルが作成されてた。名前的にプレビュー時に生成されたっぽい。コミットは不要な気がするので.gitignore
に.preview-mode
ファイルを追加してまたコミット。
その他、追加した記事や設定の変更を、何度かに分けてコミット。
テーマを変更
先日の記事通りにさくさくっとテーマも変更。ついでにスタイルも少し修正。終わったらまたいくつかにわけてコミット。
new_postなどのテンプレート変更。
先日の記事通りにry
ツイッタープラグイン死亡確認
原因は単純で、OctopressのはAPI1.0系だから。っていうかAPI1.1じゃ認証必須だからどのみち従来のような取得はできない。そんな理由からこのプラグインの更新自体も打ち切られてるみたい。
APIが使えなくなったかわりにTwitter公式が埋め込みタイムラインウィジェットを提供しているので、こっちを利用するものを作成。(参考)
ヘッダーがいまいちだったので消して、自前で用意し、こんな感じに落ち着きました。出来たものはsource/_includes/custom/asides/twitter.html
に配置して_config.yml
のdefault_aside
に追加。
しかしGistのずれは、前から気になってたけどやっぱ気持ち悪い。今度直そう。(修正の参考)
about.htmlを修正し追加
ブログの概要、というか自己紹介的なやつ。
前はTwitterのプロフィールを取得して表示してたけど、そこもAPI1.0系なので死んでてもう使えない。ので普通に書きます。内容はとりあえずあとで考えるとして適当に形だけ。おなかすいた。
アイコンだけはTwitterから取得するようにしました。Guavaterでもよかったかも。(参考)
source/_includes/custom/asides/about.html
を適当に修正。終わったら_config.yml
のdefault_aside
に追加。
再インストールに至った理由
そもそも何故再インストールなんてしたかって言いますと、先日間違って~/git/octopress
ディレクトリを勘違いでrm -rf
してしまったから、だったりします。まるっと全消去です。見る影どころか跡形もありません…。
思えばGitとかをまだ全然理解していない頃に、解説サイトに書いてあるコマンドをコピペしながら作成だけし、そのまま放置しつつ、テーマ弄ったり、記事だけ追加する、みたいなことを繰り返していたので、変更を全くコミットしていませんでした。そのため復旧は早々に諦めましたが、幸いなことに記事だけは直前にバックアップしてあったので、おさらいも兼ねて、いちからOctopressをインストールをし直してしまった、といった感じです。
Octopress本体の更新もだいぶ長いこと放置してたので、実にいい機会です。むしろ計画通り。
というか、いつかまたやらかしそうな気もするので、その時用に作業メモを残した感じ。
何度かに分けて書いてるので文体バラバラ。っていうか、めんどくさい文章になるのでですます調はやめようと思いつつも、つい使ってしまう…。余計な文章書きすぎるクセも抜けない…。