こんにちは、2回生のかいきです。

主に低レイヤーと言われる分野を好んでやってますが、最近はその限りでもなくなってきました。jsなんかを触っていることが多いです。

まず、本題に入る前に皆さんはBash on Ubuntu on Windowsはご存知でしょうか?最近、Windowsのアップデートで導入されたもので、WindowでLinuxのCUIツールが使えるようになるという素敵ツールです。以前、似たようなものとしてCygwinというものもありましたが、いかんせん不便なところが多くありました。Bash on Ubuntu on Windowsもサービスが開始されて間もなく、問題がないわけではありませんが、Cygwinと比べてLinuxのCUIツールと操作感がより似ており、詰まってもまだ分かり易い印象を受けます。実際、僕はどっちも使ってますが、どちらを初めに導入するかと聞かれるとBash on Ubuntu on Windowsをおススメします。

さて、では本題に入りましょう。今回は、Cygwin話を書こうかなと思います。おや?Bash on Ubuntu on Windowsの話ではないんですかって?うるせぇ、Cygwinの話だよ。

初めに簡単に言ってしまうと、herokuコマンドをCygwinでも使えるようにしたお話です。最近はjsで遊んでいるもんで、herokuが使いたいと思ったのですが、Cygwinがうまいこと動いてくれなかったんですよね。本来、heroku toolbelをインストールすることでコマンドラインの環境あたりはできるはずなのですが、どうやらCygwinは対応してないらしくダメでした。以下、原因と解決のお話。

原因その1
実行ファイルのパスの中にスペースや"()"などの特殊文字が入っており、正しく参照できない。
Windowsには特殊記号の含まれたディレクトリがデフォルトで用意されています。herokuをデフォルトでインストールするとその特殊記号が含まれたディレクトリ下にインストールされるので、参照できなくなります。パスの特殊文字をクォーテーションで囲うなりバックスラッシュをつけてherokuコマンドのエイリアスを作ってあげることで解決しました。

原因その2
やっぱそもそもCygwinはherokuに対応してない。
ようやく、herokuコマンドが実行できるようになりましたが、実行してもherokuにログインできません。login画面でメールアドレスは入力できますが、パスワード入力が自動で飛ばされ、ログインに失敗します。調べたところherokuに対応していないから、というのが理由らしいのですが、実際のところはよく分かっていません。解決法ですが、Cygwinのシェルをbashからzshに切り替えたらなぜかログインできるようになりました。謎です。zshがなければapt-cygでzshをインストールしましょう。apt-cygがなければぜひ導入しましょう。あと、デフォルトだとzshはちょっと文字化けしてます。この辺はCygwinめちゃめちゃ面倒です。

まとめ
Cygwinはインストール時に使用するsetup.exeで主に管理するので後で何か追加するのはかなり面倒です。ただ、初めにチェックボックスにチェックさえ入れていれば勝手にインストールされて使えるようになるというのも場合によっては楽にも感じます(herokuに関してはそもそもチェックボックスもなさそう)。でも、何かしようとする度にCygwinで躓くのでやっぱヨクナイ。


次回の記事は「DxLibとMMDで簡易デスクトップマスコットを作る」です。お楽しみに!

Twitterでフォローしよう

おすすめの記事