Heroku CLI
最終更新日 2024年05月03日(金)
Table of Contents
Heroku コマンドラインインターフェース (CLI) は、Heroku を使用するうえで不可欠な部分です。それを使用して、ターミナルから直接 Heroku アプリを作成し、管理できます。
Heroku CLI のインストール
前提条件
Heroku CLI には、一般によく使われている Git というバージョン管理システムが必要です。Git がインストールされていない場合は、次の手順を完了してください。
インストーラーによるインストール
Windows インストーラーで、一部のユーザーに警告が表示されます。この「Windows によって PC が保護されました」という警告が表示されたときにインストールを実行するには、詳細
をクリックし、発行元が salesforce.com, inc
であることを確認してから 実行
ボタンをクリックします。
Snap のインストールはサポートされなくなりました。次のいずれかのインストール方法を使用します。
tar 書庫によるスタンドアロンインストール
スタンドアロンインストールは、バイナリを使用した単純な tar 書庫です。これは独自の Node.js バイナリを含み、自動更新を行います。
CLI を /usr/local/lib/heroku
および /usr/local/bin/heroku
で設定するには、次のスクリプトを実行します。このスクリプトでは sudo が必要で、Windows に対応していません。
$ curl https://cli-assets.heroku.com/install.sh | sh
次のいずれかの tar 書庫をダウンロードして、自分で展開することもできます。
tar 書庫
これらの tar 書庫は gz
または xz
圧縮で使用できます。xz
は非常に小さくなりますが、gz
は互換性が高くなります。
Ubuntu / Debian apt-get でのインストール
$ curl https://cli-assets.heroku.com/install-ubuntu.sh | sh
このバージョンでは、自動更新を行いません。apt-get
を使用して手動で更新してください。CLI の自動更新バージョンにはスタンドアロンインストールを使用します。
Arch Linux のためのインストール
コミュニティによってメンテナンスされている heroku-cli 7.60.1-1 をインストールします。
$ yay -S heroku-cli
npm でのインストール
CLI は Node.js でビルドされ、npm
を介してインストールできます。この手動インストール方法は、自動更新が理想的ではない環境や、Heroku が事前ビルドされた Node.js バイナリを提供していない環境で使用してください。ARM および BSD では、このインストール方法を使用する必要があります。node
と npm
がすでにインストールされている必要があります。この方法は、テスト済みのスクリプトで行うように、CLI の更新をきめ細かく制御する場合にも役立ちます。
可能であれば他のいずれかのインストール方法を使用することを強くお勧めします。
npm によるインストール方法では、自動更新は行われません。また、システムのバージョンの Node.js を使用する必要がありますが、このバージョンは、Heroku が開発した CLI の対象のバージョンよりも古い可能性があります。Heroku は最新のリリースの Node.js を使用し、古いバージョンをサポートしません。
他のインストール方法には、適切なバージョンの Node.js が含まれており、システム上の他のどのバージョンとも競合しません。
また、yarn を使用してインストールする場合でも、npm は他の方法と違って依存関係に yarn ロックファイルを使用しません。マイナーまたはパッチリリースで CLI の依存関係の互換性がなくなった場合、npm は問題の原因になる可能性があります。
$ npm install -g heroku
インストールの検証
CLI インストールを検証するには、heroku --version
コマンドを使用します。
$ heroku --version
heroku/7.0.0 (darwin-x64) node-v8.0.0
この出力は heroku/x.y.z
のように見えます。その出力は表示されないが、Heroku CLI をインストールしている場合は、システム上に古い heroku
gem が存在するかどうかを確認します。これらの手順を使用してアンインストールしてください。
Heroku CLI の開始
CLI をインストールした後、heroku login
コマンドを実行します。
$ heroku login
heroku: Press any key to open up the browser to login or q to exit
› Warning: If browser does not open, visit
› https://cli-auth.heroku.com/auth/browser/***
heroku: Waiting for login...
Logging in... done
Logged in as me@example.com
そのまま CLI を使用して資格情報を入力する場合は、heroku login -i
を実行します。
多要素認証を有効にしている場合、検証について Web ブラウザへ技術的に依存するため、-i
オプションを使用できません。
$ heroku login -i
heroku: Enter your login credentials
Email: me@example.com
Password: ***************
Two-factor code: ********
Logged in as me@heroku.com
CLI は、将来使用できるように、メールアドレスと API トークンを ~/.netrc
に保存します。詳細については、「Heroku CLI Authentication」(Heroku CLI 認証) を参照してください。
これで、最初の Heroku アプリを作成する準備ができました。
$ cd ~/myapp
$ heroku create
Creating app... done, ⬢ sleepy-meadow-81798
https://sleepy-meadow-81798.herokuapp.com/ | https://git.heroku.com/sleepy-meadow-81798.git
最初のアプリのデプロイの包括的な概要については、ご希望の言語のスターターガイドを確認してください。コマンドの完全なリストについては、「Heroku CLI コマンド」を参照してください。
最新の状態の維持
Debian/Ubuntu パッケージをインストールした、または npm install
を使用した場合以外は、Heroku CLI はそれ自体とそのプラグイン (リンク先のプラグインを除く) を自動的に最新の状態に保ちます。
heroku
コマンドを実行すると、バックグラウンドプロセスによって CLI の最新の使用可能バージョンが確認されます。新しいバージョンが見つかると、ダウンロードされ、~/.local/share/heroku/client
に保存されます。このバックグラウンドチェックは最大 4 時間ごとに 1 度行われます。
元々インストールされていたクライアントを使用する前に、heroku
バイナリは ~/.local/share/heroku/client
の最新のクライアントをチェックします。
最新リリースの SHA
Darwin
Linux
Windows
有用な CLI プラグイン
heroku plugins:install someplugin
を使用して CLI プラグインをインストールし、CLI インストールを拡張することができます。プラグイン管理についての詳細は、「CLI プラグインの使用」を参照してください。
有用なプラグインをいくつか示します。
- api —
heroku api GET /account
などのアドホックな API リクエストを作成します。 - heroku-builds — ビルドを表示し、ビルドキャッシュをパージし、tar 書庫からビルドを作成します。
- heroku-repo — コマンドを使用してアプリの Heroku Git リポジトリを操作します。
- heroku-pg-extras — 追加の
heroku pg:*
コマンドを提供します。 - heroku-slugs — アプリ slug をダウンロードします。
- heroku-kafka — Heroku Kafka を管理します。
- heroku-guardian — アプリ、領域、ユーザーの保護に役立つ Heroku のさまざまな設定を表示します。
- heroku-papertrail — Papertrail でログを表示、末尾監視、および検索します。
- advanced-scheduler — Advanced Scheduler トリガーを作成して管理します。
- heroku-cron — 対話型コマンドラインを使用して、またはデプロイ後のスクリプトでマニフェストファイルを使用して Cron To Go ジョブを作成、管理、監視します。
- borealis-pg — Borealis Isolated Postgres アドオンとの高度な対話を可能にします。
CLI アーキテクチャ
Heroku CLI は、Heroku/Salesforce 内で開発された Open CLI Framework (oclif) でビルドされます。oclif は、開発者が大型または小型の CLI をビルドするためのフレームワークとして使用できます。フレームワークには、CLI ジェネレーター、ドキュメント自動作成、テストインフラストラクチャが含まれます。
Heroku CLI のコードはオープンソースでもあります。Node.js や他の依存関係を実行する必要はありません。Debian/Ubuntu パッケージをインストールしたり、npm install
を使用したりする場合以外は、CLI には、他のアプリケーションと競合しない独自の Node.js バイナリが含まれます。
Heroku CLI のトラブルシューティング
すべてのインストール方法が heroku update
をサポートしているわけではありません。
apt
で CLI をインストールした場合は、sudo apt-get update && sudo apt-get upgrade heroku
を使用する必要があります。npm
またはyarn
で CLI をインストールした場合は、npm upgrade -g heroku
またはyarn global upgrade heroku
を使用する必要があります。
CLI が更新できない場合は、アンインストールしてから再インストールしてください。which heroku
または where heroku
(Windows の場合) を使用して heroku
コマンドが示しているものを確かめることによって、従来の Heroku Toolbelt または Heroku Ruby gem がインストールされていないことを確認します。一部のユーザーは PATH
を変更して指定する必要があります (ほとんどのインストール環境では /usr/local/bin/heroku
)。
引き続き問題が発生する場合は、次のデバッグ環境変数を設定し、問題の診断に役立ててください。
環境変数 | 説明 |
---|---|
HEROKU_DEBUG=1 |
Heroku API インタラクションに主に関連したデバッグ情報を表示します |
HEROKU_DEBUG_HEADERS=1 |
HEROKU_DEBUG=1 と一緒に、HTTP ヘッダーを表示します |
DEBUG=* |
冗長なデバッグ情報を表示します |
オペレーティングシステムに応じて次の場所のいずれかに保存された CLI のエラーログファイルもチェックできます。
OS | 場所 |
---|---|
macOS | ~/Library/Caches/heroku/error.log |
Windows | %LOCALAPPDATA%\heroku\error.log |
Linux/その他 | ~/.cache/heroku/error.log (または設定されている場合は XDG_CACHE_HOME ) |
問題の発生が続き、CLI が最新の場合、またはその他の理由で更新が失敗した場合、ユーザーディレクトリを削除することよって、CLI をリセットできます。これらのディレクトリは自動的に置き換えられます。これらを削除してもログアウトされませんが、インストールしたプラグインが失われます。
まず、確実に再インストールできるように、heroku plugins
を実行してインストールしたプラグインを一覧表示します。
続いて、次のディレクトリを削除します。
Windows:
%LOCALAPPDATA%\heroku
macOS/Linux/その他:
~/.local/share/heroku
(または設定されている場合はXDG_DATA_HOME
)- macOS では
~/Library/Caches/heroku
、Linux/その他では~/.cache/heroku
(または設定されている場合はXDG_CACHE_HOME
)
ログインの問題
ログインに問題がある場合は、.netrc
ファイルを移動します。このファイルは、CLI が証明書を保存する場所です。
$ mv ~/.netrc ~/.netrc.backup
$ heroku login
Windows では、ファイルに _netrc
という名前が付けられます。
Homebrew 固有の問題
最新の Homebrew バージョンの heroku
をインストールしていても、従来の警告が表示された場合、PATH
環境変数内のバイナリ heroku
コマンドが、brew がインストールしたバージョンを示していません。
バイナリ heroku
がポイントしているものを確認するには、which heroku
を実行します。/usr/local/bin/heroku
をポイントしていない場合、ポイントされているバイナリを削除します。~/.bashrc
ファイルまたは同等のファイルを変更することにより、PATH
環境変数内で /usr/local/bin/
をさらに上位にすることもできます。
次に brew link --overwrite heroku
を実行して、/usr/local/bin/heroku
が新しい CLI をポイントしていることを確認します。問題が解決しない場合、brew doctor
を実行してシステムの問題を特定します。
Apple シリコンの問題
Apple M1 チップを搭載したマシンで次のエラーが発生する場合、Rosetta 2 がインストールされていないか、インストールが拒否されています。
Bad CPU type in executable
Rosetta 2 をインストールすると、この問題が解決します。
Rosetta 2 をマシンにインストールしたくない場合、Heroku npm パッケージをグローバルにインストールして、独自の Node バイナリをローカルで使用することができます。Node の v16 のみが M1 ARM をサポートしており、npm は推奨されるインストール方法ではありません。
Heroku CLI のアンインストール
このアクションにより、すべての CLI プラグインも削除されます。
macOS
macOS で、次のように入力して CLI をアンインストールできます。
$ rm -rf /usr/local/heroku /usr/local/lib/heroku /usr/local/bin/heroku ~/.local/share/heroku ~/Library/Caches/heroku
Homebrew のインストール
Homebrew を使用して Heroku CLI をインストールした場合、次のように入力して CLI をアンインストールできます。
$ brew uninstall heroku
$ rm -rf ~/.local/share/heroku ~/Library/Caches/heroku
Linux
スタンドアロンインストール
スタンドアロンインストールの場合、次のように入力して CLI をアンインストールできます。
$ rm /usr/local/bin/heroku
$ rm -rf /usr/local/lib/heroku /usr/local/heroku
$ rm -rf ~/.local/share/heroku ~/.cache/heroku
Debian および Ubuntu のインストール
Debian/Ubuntu の場合、次のように入力して CLI をアンインストールできます。
$ sudo apt-get remove heroku heroku-toolbelt
$ sudo rm /etc/apt/sources.list.d/heroku.list
$XDG_DATA_HOME
や $XDG_CACHE_HOME
がある場合、~/.local/share
と ~/.cache
の代わりにこれらの変数を使用します。
次のコマンドを実行することでリリースキーを削除できます。
$ sudo apt-key list
$ sudo apt-key del KEYFROMABOVE
Windows
Windows で、Heroku CLI をアンインストールするには次の手順を実行します。
スタート
メニューから、コントロールパネル
、プログラム
、プログラムと機能
の順にクリックします。Heroku CLI
(Heroku CLI) を選択してから、Uninstall
(アンインストール) をクリックします。アンインストーラーは署名されていません。
Windows アンインストーラーは CLI と一緒に自動的に更新されません。初めて CLI をインストールしてから日数が経過している場合、最新バージョンの CLI を手動でインストールして、最新のアンインストーラーを入手します。
アンインストールがうまくいかない場合、Program Files 内のディレクトリと一緒に %LOCALAPPDATA%\heroku
を手動で削除してください。
従来の Heroku gem のアンインストール
実行可能ファイルの場所を見つけるには、which
を実行します。
$ which heroku
/usr/local/heroku/bin/heroku
heroku
コマンドへのパスは Ruby gem ディレクトリにしないでください。
そのようになっている場合、これと他のすべての heroku
gem をアンインストールします。
$ gem uninstall heroku --all