ejoneco's devlog

ejo090がなんかやったときにまとめるブログ

Bash on Windowsで色々してHexoでブログが書けるようになるまで

前回はHexoにしたわけで無限に長々としたポエムを書きました。
今日はHexoで実際にブログを作るまでをズドンと書きます。

Bash on Windowsのセットアップ

Bash on Windowsとは

詳しい情報は腐るほどネットに転がってます。
簡単に言ってしまうと、CygwinなどのUnixライクな環境を提供するソフトウェアや、VirtualBoxなどの仮装マシンにLinuxをインストールしたりしなくてもWindows10だけでBashが動くのである。
これはすごい。正直言ってWindowsで開発なりをするときは非常に厳しい茨の道でしたからね。
このBash on Windowsですが、WSL(Windows Subsystem for Linux)によってLinuxバイナリがWindowsで動いています。
(むしろBash on WindowsというよりはWSLのおかげなんですが情報的にはBash on Windowsって書いてるほうが多いのはまぁ仕方がないことなのかもしれませんネ…)
WSLとはなんぞやという話ですが、このエントリで書くことでもないのでここに詳しいです。
LinuxバイナリがWindowsで動いているということは、いちいちWindows向けのバイナリを生成する必要がないというわけで、もう世間に転がっているLinuxの情報がそのまま使えちゃったりするわけですね(まぁ話はそんなに単純ではないのですが)。
「えーとこれをするときWindowsだとなにをどうすればいいんだ…?ドキュメントに書いてないぞ…」のように悩まなくても「apt install hoge」ってするだけでいいんです。最高か。
まぁこのBash on Windows自体は昨年夏のWindows10 Anniversary Updateによって提供されたものなので今更?って感じではありますが。。。
注意点としては完全にLinux互換というものではないのでチマチマ問題が起きてくるところですかね。

Bash on Windowsの導入

導入も腐るほどネットに転がっているためここでは扱いません。
どこ見ても一緒だとは思いますが、私が確か参照した気がする記事を記載しておきます。
Bash on Ubuntu on Windowsをインストールしてみよう!
上記の記事を見ていけば問題なく導入まではできると思います。
加えて、sshdが起動しててガバガバみたいなことが私の環境ではあったため、下記エントリを参照しながら修正しました。
Windows10 Anniversary updateで知らぬ間にSSHdが起動している
(これを行ったのは4ヶ月ほど前のため現在はどうなっているかはわかりませんが…)

wslttyを導入

PowerShellないしコマンドプロンプトから適当にbashと叩くことでbashが起動してくれるようになったとは思いますが、これらはターミナルとしては非常にビミョーであります。
そこで、別なターミナルエミュレータを使います。(ここはすきなの使ってください)
ちょっと前にminttyがWSL向けのminttyであるwslttyをリリースしてくれたのでこれを使おうと思います。
mintty/wsltty
README.mdに記述されているとおりにすればいいです。
インストールができたらデスクトップにショートカットが置かれるので開きます。
このショートカットですが、いくつかありますが私はWSL Bash ~ in Minttyを使ってます。
wslttyことminttyを起動したらまぁなんかいつものターミナルって感じです。あたりまえですが。
とりあえず真っ黒の画面は目がつかれるのでカラースキームをとりあえずSolarized-lightあたりにしておきます。
mavnn/mintty-colors-solarized
mintty向けのsolarizedがあるのでこれをつかいます。
wslttyの設定自体はさっきのリポジトリのMintty settingsのところに書いてあるのでそこを見ながらしましょう。

Hexoをインストールしていく

なんか必要そうなのを適当に

長々とBash on Windowsの話をしてましたが、あとはもういつもの感じでズバズバいくだけです。
でもいまのBash on Windowsくんはまっさらなのでとりあえず適当になんかインストールしておきます。
まずsudo apt updateして、sudo apt upgradeしておきます。
あととりあえずインスコして損はないbuild-essentialとgitでしょうか。
sudo apt install build-essential git

つぎにnodejs

私はnodejsに対する知見がないのでとりあえず公式ページのinstallationみてstableなのを導入しました。
ここを見ながら適当にコマンドをぽちぽちしましょう。

1
2
curl -sL https://deb.nodesource.com/setup_7.x | sudo -E bash -
sudo apt-get install -y nodejs

こんな感じでしょうか。
終わったらnodejs -vするとバージョンが出てくるはずなのでやってみよう。

しあげにHexo

やっとです。
やっとですけどこれも一瞬で終わりです。
Hexoの公式ページにある通りです。

1
2
3
4
5
$ npm install hexo-cli -g
$ hexo init blog
$ cd blog
$ npm install
$ hexo server

これだけでズドンです。
まぁこれだけでちゃんと見られるかというと見られないのでちょっと追記をします。
npm installの後にhexo generateをしてあげて、最後にhexo server -sでサーバが起動してどんな感じかをブラウザで見ることができます。
初期設定ではhttp://localhost:8000/なのでアドレス欄にでも入れるとこりゃもうゴイスーなページを見ることができます。Hexoはクソ!
最後のhexo generateとかhexo server -s-sとかってなんなんだよって話ですが、これはまぁWSL特有っぽいです。
公式のトラブルシューティングにありました。(ここ) Hexoはクソ!
でもまぁ記述の通りInsider Previewのbuild#14942でなんとかなったっぽいのでHexoはクソ!って言いたくない人は現状Insider Prebiewを入れるのが手かもしれません。
私は入れてません。

おわりに

色々書きましたが無駄話だらけですね。まぁポエムみたいなものなので仕方ないね。
まぁこれで最低限書けるようになったとおもうので色々頑張ってみるといいと思います。
私はここまでで気力が-1145141919810になったので続きはまた今度です。
あとさっきHexoの公式のInstallation確認しなおしたらnvm使えやオッラーン!っつってたのでいずれ書き直します。

以上

Proudly powered by Hexo and Theme by Hacker
© 2019 ejo090