[Heroku]CLIをインストールする

Tech全般

Heroku CLIのインストールについては、下記の記事で書いたが、時間が経過して、端末も変わり記事を見ながら試したところ、違う結果が出たので改めて記事を書くことにした。
以前に書いた記事は、Sierraにインストールしたい場合は参考になるかもしれない。

環境情報

  • macOS Catalina 10.15.7
  • Homebrew 3.0.1

インストールする

brew でインストールする

# zsh
brew tap heroku/brew && brew install heroku

結果は下記のようになった。今回はエラーはなくWarningしか出てない。

Warning: Your Xcode (12.2) is outdated.
Please update to Xcode 12.4 (or delete it).
Xcode can be updated from the App Store.

Warning: A newer Command Line Tools release is available.
Update them from Software Update in System Preferences or run:
  softwareupdate --all --install --force

If that doesn't show you any updates, run:
  sudo rm -rf /Library/Developer/CommandLineTools
  sudo xcode-select --install

Alternatively, manually download them from:
  https://developer.apple.com/download/more/.

==> Installing dependencies for heroku/brew/heroku: heroku/brew/heroku-node
==> Installing heroku/brew/heroku dependency: heroku/brew/heroku-node
Warning: Your Xcode (12.2) is outdated.
Please update to Xcode 12.4 (or delete it).
Xcode can be updated from the App Store.

Warning: A newer Command Line Tools release is available.
Update them from Software Update in System Preferences or run:
  softwareupdate --all --install --force

If that doesn't show you any updates, run:
  sudo rm -rf /Library/Developer/CommandLineTools
  sudo xcode-select --install

Alternatively, manually download them from:
  https://developer.apple.com/download/more/.

🍺  /usr/local/Cellar/heroku-node/12.16.2: 3 files, 42.2MB, built in 4 seconds
==> Installing heroku/brew/heroku
==> Caveats
To use the Heroku CLI's autocomplete --
  Via homebrew's shell completion:
    1) Follow homebrew's install instructions https://docs.brew.sh/Shell-Completion
        NOTE: For zsh, as the instructions mention, be sure compinit is autoloaded
              and called, either explicitly or via a framework like oh-my-zsh.
    2) Then run
      $ heroku autocomplete --refresh-cache

  OR

  Use our standalone setup:
    1) Run and follow the install steps:
      $ heroku autocomplete

zsh completions have been installed to:
  /usr/local/share/zsh/site-functions
==> Summary
🍺  /usr/local/Cellar/heroku/7.47.12: 27,703 files, 60.4MB, built in 43 seconds
==> Caveats
==> heroku
To use the Heroku CLI's autocomplete --
  Via homebrew's shell completion:
    1) Follow homebrew's install instructions https://docs.brew.sh/Shell-Completion
        NOTE: For zsh, as the instructions mention, be sure compinit is autoloaded
              and called, either explicitly or via a framework like oh-my-zsh.
    2) Then run
      $ heroku autocomplete --refresh-cache

  OR

  Use our standalone setup:
    1) Run and follow the install steps:
      $ heroku autocomplete

zsh completions have been installed to:
  /usr/local/share/zsh/site-functions

インストールの確認↓

# zsh
heroku --version
 ›   Warning: Our terms of service have changed: https://dashboard.heroku.com/terms-of-service
heroku/7.47.12 darwin-x64 node-v12.16.2

無事インストールはできており、以前の記事ではエラーが発生してつまづいたが、今回はWarningで済んだ。
しかし、Warningといえども、放っておくと後々悪影響を及ぼすので、解消していく。

Warning の解消(XCodeの最新化)

Warning: Your Xcode (12.2) is outdated.

こちらに関しては、XCodeが古いよということなのでUpdateする。最新のXCodeにするかは業務次第だが、先日最新版で対応したとのことなので、Updateする。

App Storeでインストールしているので、App Storeから最新化する。
相変わらず激重。
XCodeのUpdateが完了したらreinstallをする

# zsh
brew reinstall heroku
# log

Warning: A newer Command Line Tools release is available.
Update them from Software Update in System Preferences or run:
  softwareupdate --all --install --force

If that doesn't show you any updates, run:
  sudo rm -rf /Library/Developer/CommandLineTools
  sudo xcode-select --install

Alternatively, manually download them from:
  https://developer.apple.com/download/more/.

==> Caveats
To use the Heroku CLI's autocomplete --
  Via homebrew's shell completion:
    1) Follow homebrew's install instructions https://docs.brew.sh/Shell-Completion
        NOTE: For zsh, as the instructions mention, be sure compinit is autoloaded
              and called, either explicitly or via a framework like oh-my-zsh.
    2) Then run
      $ heroku autocomplete --refresh-cache

  OR

  Use our standalone setup:
    1) Run and follow the install steps:
      $ heroku autocomplete

zsh completions have been installed to:
  /usr/local/share/zsh/site-functions
==> Summary
🍺  /usr/local/Cellar/heroku/7.47.12: 27,703 files, 60.4MB, built in 37 seconds

無事XCodeのWarningは表示されなくなった。A newer Command Line Tools release is available. というWarningを対応するかは、過去にこの端末でnodejs(nodeenv)とXCodeでとても苦労しており、ここで何かしたらXCode等が起動できないという問題が再発したら嫌だなぁと思ったが、そんなことを言ってたらバージョンアップをいつまでもできないので対応することにした。

Command Line Toolsの最新化

# zsh
softwareupdate --all --install --force
% softwareupdate --all --install --force
Software Update Tool

Finding available software
Attempting to quit apps: (
    "com.apple.Safari.SafariQuickLookPreview",
    "com.apple.Safari"
)
Successfully quit all apps

Downloaded Command Line Tools for Xcode
Downloaded Safari
Downloaded SF Symbols
Downloading macOS Catalina 10.15.7 Supplemental Update
Downloaded macOS Catalina 10.15.7 Supplemental Update
Installing Command Line Tools for Xcode, Safari, SF Symbols, macOS Catalina 10.15.7 Supplemental Update
Done with Command Line Tools for Xcode
Done with Safari
Done with SF Symbols
Done.
To install these updates, your computer must shut down. Your computer will automatically start up to finish installation.
Installation will not complete successfully if you choose to restart your computer instead of shutting down.
Please call halt(8) or select Shut Down from the Apple menu. To automate the shutdown process with softwareupdate(8), use --restart.

インストールするのには再起動が必要とのことなので、端末の再起動をする。
再起動はアップルマークから行った、起動時にインストールをするため、これも時間がかかった。
XCodeの起動確認とnodeを使っているプロジェクトで起動確認をしたところ、どちらとも起動できたのでよかった。

再度reinstallを行う

# zsh
brew reinstall heroku
# result

To use the Heroku CLI's autocomplete --
  Via homebrew's shell completion:
    1) Follow homebrew's install instructions https://docs.brew.sh/Shell-Completion
        NOTE: For zsh, as the instructions mention, be sure compinit is autoloaded
              and called, either explicitly or via a framework like oh-my-zsh.
    2) Then run
      $ heroku autocomplete --refresh-cache

  OR

  Use our standalone setup:
    1) Run and follow the install steps:
      $ heroku autocomplete

zsh completions have been installed to:
  /usr/local/share/zsh/site-functions
==> Summary
🍺  /usr/local/Cellar/heroku/7.47.12: 27,703 files, 60.4MB, built in 37 seconds

Command Line Tools のWarningも無事無くなった。
残っているのは、Warningではなくautocomplete(Herokuコマンドの自動補完)の設定をしていく。

Heroku autocompleteの設定

下の standalone setup を行う。.zshrcで自動補完時になければ、/usr/local/share/zsh/site-functionsを読み込むみたいなことを書くと思うが、あまりzshrcを変更したくなかったので、簡単なそうな方にした。

# zsh
heroku autocomplete

質問を聞かれ、どれかキーを押すとブラウザが起動しログインを求められ、ログインをすると成功する

Setup Instructions for HEROKU CLI Autocomplete ---

1) Add the autocomplete env var to your zsh profile and source it
$ printf "$(heroku autocomplete:script zsh)" >> ~/.zshrc; source ~/.zshrc

NOTE: After sourcing, you can run `$ compaudit -D` to ensure no permissions conflicts are present

2) Test it out, e.g.:
$ heroku <TAB>                 # Command completion
$ heroku apps:info --<TAB>     # Flag completion
$ heroku apps:info --app=<TAB> # Flag option completion

Visit the autocomplete Dev Center doc at https://devcenter.heroku.com/articles/heroku-cli-autocomplete

Enjoy!

結局、.zshrcに環境変数を追加しろみたいに言われた笑
指示通りにコマンドを実行する

# zsh
printf "$(heroku autocomplete:script zsh)" >> ~/.zshrc
source ~/.zshrc

自動補完の確認を行おうと思ったらまさかのファイルが見つかりません。。。

compinit:503: no such file or directory: /usr/local/share/zsh/site-functions/_brew_cask

ググったらbrew cleanupでできたよってあるので実行(参考リンク)

# zsh
brew cleanup

もう一度zshrcを読み込む

# zsh
source ~/.zshrc

エラーなし!なので、heroku コマンドで自動補完を試す( l を入力して<TAB>を入力)

# zsh
heroku l
labs           -- list experimental features
labs:disable   -- disables an experimental feature
labs:enable    -- enables an experimental feature
labs:info      -- show feature info
leave          -- remove yourself from a team app
local          -- run heroku app locally
local:run      -- run a one-off command
local:version  -- display node-foreman version
lock           -- prevent team members from joining an app
logs           -- display recent log output
# zsh
heroku logs -a 
アプリ名1 アプリ名2 ...

コマンドの補完もアプリ名の補完もできた。

感想

想像以上よりも時間がかかったので、無事にインストールできて何より。時間がかかった理由はおもにXCodeやソフトウェアアップデート。
先日M1チップのmacが出て同僚がいろいろハマっているが、端末を手に入れた際にはぜひM1チップでのHeroku CLIのインストールもしてみたい。
Big Surにもそのうちあげたいなーと思っている。
今回は、herokuにdockerをデプロイしたくてその際にHeroku CLIが必要なので、インストールした。思わぬところで時間がかかったという認識だが、これで本題に戻れるので、進めていく。

コメント