やっと復活。。。

前のブログで「ランチャが消えちゃう」なんていう話をしていたらもっと深刻な状況に。
今度は、ランチャやメニューは表示されるのですが、デスクトップ自体が真っ黒のままで何も表示されず。ターミナルのアイコンをランチャ上でクリックすると、ターミナルは立ち上がっているようなのですが、見えません。メニューも一応見えていますが、クリックすると茶色いプルダウンらしきものが広がるだけで何も見えません。

ブログに書いた手順を試してみるも、ターミナルが見えないのでいかんともし難く。。。。
ブラインド状態でコマンド入力してみても、うまく入力できているようですが、効果なし。


##新しいubuntuを立ち上げ
webでいろいろ調べましたが、結局解決には至らず。新しいubuntuをインストールするのが早いのじゃないか、ということで再インストールに。

幸い、MacOSのParallelsの上の仮想PCだったので、トラブった環境はそのままにしてすすめました。こういうとき仮想環境は楽ですね。

まずは、大事なブログのソースファイルをまるごと救出。
Ctrl-Alt-F1でCUIベースのターミナルを開いて、

tar czf octopress.tar.gz octopress

のような感じで。

さて、これをscpでコピーしようとしたら、どうもうまくいかず。。。

きちんとsshの設定をしていなかったからか。。。反省。

ですが、これまたラッキーなことにParallelsにはホストOSとのファイル共有が標準で用意されていて、これがubuntuでも有効です。

cp ./octopress.tar.gz ~/Desktop/Parallels\ Shared\ Folders/

とするだけです。
これで大事な原稿と環境はホストOSにコピーされました。

肝心のインストールは、ubuntu のインストール用ディスクイメージを持ってきて、Parallelsに教えてあげるだけであとは勝手にインストールして完了。


##git インストール

さてここから環境の構築です。

まず、SSH関係をしっかりと構築したあと、

octopressのセットアップ手順にしたがって、

sudo apt-get install git

としてインストール。簡単。問題無し。

一応、動作を確認。gitで使うディレクトリに移動して

git init

エラーなし。okです。

##ruby インストール

これまた、手順にしたがって、rbenvでRubyをインストールすることにします。

1
2
3
4
5
6
cd
git clone git://github.com/sstephenson/rbenv.git .rbenv
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
git clone git://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
source ~/.bash_profile

ubuntuでは、.bash_profileをログイン時に実行するために

echo 'source ~/.bash_profile' >> .bashrc

としました。

インストールの結果を確認します。
新しいターミナルを開いて、

echo $PATH

の結果に~/.rbenv/binなどが入って入ればいいかと思います。

これでrbenvツールが設定できたので、ここからRubyのインストールです。

私の環境ではzlib1g-devlibssl-devが入っていなかったので、あとあとエラーしました。

念のため前もって

sudo apt-get install zlib1g-dev libssl-dev

などとして、インストールするか確認しておいたほうがいいかもしれません。
そうでないと何回もRubyをインストールすることになります。

  • octopressのセットアップではRubyのモジュールをダウンロードしますが、このときサーバにSSLで接続します。そのためにSSLのライブラリが必要なようです。

では、インストール。解説にしたがい

1
2
3
$ rbenv install 1.9.3-p0
$ rbenv local 1.9.3-p0
$ rbenv rehash

と、しました。

実は、rbenv install 1.9.3-p0installなんてコマンドないよ!と起こられましたが、ruby-buildが正しい位置に持ってこれていなかったのが原因でした。

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

を正しく実行し直して事なきを得ます。

  • webの解説によれば、rbenv local ruby 1.9.3-p0は、その他のディレクトリにあるRuby環境を変更することなく、octopressをインストールするために使われるそうです。もし、どこでもこのバージョンを使いたいなら、local を grobal に変更するといい、と書かれています。

インストールができたら、Ruby --versionでバージョンを確認。OK。


Octopress

こちらの手順にしたがってインストール。

まず

1
2
git clone git://github.com/imathis/octopress.git octopress
cd octopress

としてoctopress自身を持ってきます。

さらに、gemで必要なRubyモジュールをインストール

1
2
3
gem install bundler
rbenv rehash # If you use rbenv, rehash to be able to run the bundle command
bundle install

ここで、ちゃんと動くかどうか

rake generate

でためしてみたところ。

1
2
3
4
5
6
7
$ rake generate
## Generating Site with Jekyll
identical source/stylesheets/screen.css
/home/masa/.rbenv/versions/1.9.3-p0/lib/ruby/gems/1.9.1/gems/
execjs-2.2.2/lib/execjs/runtimes.rb:51:in `autodetect': Could not find
a JavaScript runtime. See https://github.com/sstephenson/execjs for a
list of available runtimes. (ExecJS::RuntimeUnavailable)

と言われてしまいました。
“octopress Could not find a JavaScript runtime”をキーワードに
googleさんに尋ねてみると、解決策が

sudo apt-get install nodejs

を実行しろ、ということだったので、さっそくインストールし、無事rake generateできることを確認。

さらにrake previewで出来栄えも確認し、インストール完了。

やっと環境が整いました。


昔の機械から原稿を持ってくる

さて、昔の機械からデータを持ってこなきゃいけませんが、オリジナルのoctopress からテーマを更新(oct2を使用)しているので、もしかしたらコピーだけではだめかもしれないという危惧もあり、厄介かなあとおもいつつも、ダメモトということで、octopressディレクトリをまるごとコピー。

オリジナルをキープしておいて、持ってきたものをコピーしましたが、rake generateでは「バージョンが違いますけど!」と注意されてしまいます。しかたがないので、オリジナルに戻して、今度はsourceフォルダだけを昔のものに入れ替えて試してみました。

すると、何事もなくgenerateが可能に。さらにpreviewして元のBlogページが戻ることを確認!!ああ、素晴らしい。

ということで、記事を書き始めるとまたまたトラブル。。。。

どうも文字が大きい。さらに、バックグラウンドの絵がページの頭の部分で黒くなる。。。。

「うむ、やはりコピーだけではダメかああああ。」
しかたなく、もう一度octopressの環境から作り直し。さらにoct2も素直にインストールし直し。

まず、octopressのディレクトリをまるごと削除。もう一度インストールし直します。

さらにoct2を以下のようにしてインストール

1
2
git clone https://github.com/bijumon/oct2.git .themes/oct2
rake install["oct2"]

oct2のページによるインストール方法ではcloneの保存先が.themes/ですが、これではエラーしてしまうので、.themes/oct2としてみました。

これで一応環境は整っているはずなので、このまま何もせず

rake preview

としてfirefoxなどでlocalhost:4000をアクセス。oct2が有効になっていることを確認します。

いよいよblogのソースをコピーします。といっても、.mdの原稿を_postディレクトリにコピーするだけです。

さらに、以下のファイルをコピーしました。

./_config.yml
./public/image/background.png  (自分で作ったバックグラウンドカラー)
./public/image/logo.png
./public/image/(その他必要な画像)
./source/includes/post/date.html(日付表示がうまくいくように変更したもの)
./source/(その他、自分で作ったディレクトリ)

これで、再びrake previewを実行。

!!!やっとこれで元通り!!!とおもったところが、まだ文字が異常に大きい。。。

これまた、googleにたずねると、「ここをご覧なさい」といわれたので、そのまま追加して、納得できる出来栄えに。。。。

./sass/custom/_stypes.scss に追加
1
2
3
4
5
6
7
8
9
10
11
h1 { font-size: 1.2em;}
h2 { font-size: 1.1em;}
h3 { font-size: 1.0em;}
#content .blog-index {
article h1 {
font-size: 1.2em;
}
}

これもちょっと腑に落ちない妙な動作をするのですが、まあ、とりあえず吉としておきます。とおもいましたが、やはり気になるので他の方法も試してみるとこちらの方がいい感じなので、こうしました。

./sass/custom/_styles.scss を変更
1
body { font-size: 0.8em; }

お疲れさまでした。
ほぼ1日消費です。

そうそう、Parallelsでスナップショットをとっておこう。

2014/12/14 update

_styles.scssをエディットしましたが、どうもこれが有効になったり無効になったり、おかしな感じになります。ちょっとしらべたところ、geditでは編集しているファイルのバックアップファイルを編集しているファイルと同じホルダに作ります。この時のファイル名が “オリジナルのファイル名~” となるのですが、どうもそれをoctopressが区別できていない、あるいは編集中のものにはアクセスロックがかかる?ようです。

geditを使うときは、保存したファイルを一旦閉じるか、バックアップファイルを作るのをやめるように設定するか、編集後バックアップファイルを消して generate なり preview なりしたほうがいいようです。