WSL環境下でHerokuを使う

WSLがいろいろ便利になってきたので、Herokuの操作もWSLに移行してみようということで、インストールして使ってみました。

開発マシン環境

Surface Book (Core i7 / 8GB / 256GB)
Windows 10 Pro

Herokuをインストールする

まずはインストール。

macOSだったら、Homebrewからインストールができます。(というか、公式ガイドがMacではbrewコマンドで入れろってなってますしね。)

WSLでもHomebrewが使えるので試しにインストールしてみます。

brew tap heroku/brew && brew install heroku

Updating Homebrew...
==> Tapping heroku/brew
Cloning into '/home/linuxbrew/.linuxbrew/Homebrew/Library/Taps/heroku/homebrew-brew'...
remote: Enumerating objects: 10, done.
remote: Counting objects: 100% (10/10), done.
remote: Compressing objects: 100% (8/8), done.
remote: Total 10 (delta 0), reused 7 (delta 0), pack-reused 0
Unpacking objects: 100% (10/10), done.
Tapped 2 formulae (38 files, 148.6KB).
Updating Homebrew...
Error: No available formula with the name "herok"
==> Searching for a previously deleted formula (in the last month)...
Warning: homebrew/core is shallow clone. To get complete history run:
  git -C "$(brew --repo homebrew/core)" fetch --unshallow

Error: No previously deleted formula found.
==> Searching for similarly named formulae...
These similarly named formulae were found:
cherokee                                         heroku                                           heroku/brew/heroku                               heroku/brew/heroku-node
To install one of them, run (for example):
  brew install cherokee
==> Searching taps...
==> Searching taps on GitHub...
Error: No formulae found in taps.
[email protected]:/mnt/c/Users/satoshi/blog$ brew tap heroku/brew && brew install heroku
Updating Homebrew...
Updating Homebrew...
heroku: macOS is required.

macOSじゃないとだめだと怒られました。

snapではどうでしょう。

sudo snap install --classic heroku

error: cannot communicate with server: Post http://localhost/v2/snaps/heroku: dial unix /run/snapd.socket: connect: no such file or directory

WSLはsnap対応してない?

仕方ないので、bashから入れます。

curl https://cli-assets.heroku.com/install.sh | sh

エラーがでましたが入りました。

heroku -v
(node:28954) [EACCES] Error Plugin: heroku: EACCES: permission denied, mkdir '/home/c0d3man/.cache/heroku'
module: @oclif/[email protected]
task: runHook init
plugin: heroku
root: /usr/local/lib/heroku
See more details with DEBUG=*
(node:28954) [EACCES] Error Plugin: heroku: EACCES: permission denied, mkdir '/home/c0d3man/.cache/heroku'
module: @oclif/[email protected]
task: runHook init
plugin: heroku
root: /usr/local/lib/heroku
See more details with DEBUG=*
heroku/7.21.0 linux-x64 node-v11.9.0

パーミッション系のエラーがでてますね。

sudoで試します。

sudo heroku -v
heroku/7.21.0 linux-x64 node-v11.9.0

入ったようですね。

heroku login

ログインしてみます。

sudo heroku login
heroku: Press any key to open up the browser to login or q to exit:
Warning: spawn cmd.exe ENOENT
 ›   Warning: Cannot open browser. Go to https://cli-auth.heroku.com/auth/browser/d06a259a-cf04-4325-bc76-757af1768201 to finish login or run heroku login --interactive
 ›
Logging in... done
Logged in as [email protected]

ログインできました。

heroku apps

アプリ一覧を出してみます。

sudo heroku apps
=== [email protected] Apps
aaaaa
bbbbb
ccccc

出ました。


sudoでないとだめなのが面倒ですが、問題なく使えそうです。

WSLがあれば、macOSやLinuxからWindowsへの移住がスムーズになりそうですね。