Linux

Ubuntu 18.04 (WSL) に、Google Cloud SDK をインストールする

投稿日:2019年5月16日 更新日:

1. はじめに

Ubuntu 18.04 (WSL) に、Google Cloud SDK をインストールする手順を紹介します。

Google Cloud SDK は、Google Cloud Platform が提供する各種サービスを操作するためのコマンドライン インターフェースです。

2. 環境

  • Ubuntu 18.04 (WSL)

3. インストール手順

ポイント

Google Cloud SDK のドキュメント には「Debian / Ubuntu」用の説明が載っているのですが、「Linux」用のインストールに従うことをお勧めします(前者の場合、使えない機能があります)。

実はこの「Debian / Ubuntu 用ではなく、Linux 用のインストール方法に従う」というのが本記事で一番書きたかったことで、あとは Linux 用のクイックスタート に載ってる手順に従うだけです。一応ざっと手順を追ってみます。

手順

(1) Python の導入

ドキュメントによると「Python 2.7.9 以降の Python 2」が必要とのことですが、Ubuntu 18.04 の場合、以下のコマンドで Python をインストールすれば問題ありません。

$ sudo apt install python

(2) Cloud SDK をダウンロード

Linux 用のクイックスタート にアクセスして、Cloud SDK をダウンロードします。

ダウンロードリンクが用意されています

64 ビット用と 32 ビット用がありますが、通常は 64 ビット用でよいでしょう。リンクをクリックしてダウンロードします。

または、ターミナル上からコマンドでダウンロードすることもできます。

ダウンロードコマンドがコピーできます

64ビット版なら以下のコマンドでダウンロードすることができます(バージョンは更新されていくので、元のサイトで最新のURLを確認してください)。

curl -O https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-240.0.0-linux-x86_64.tar.gz

使ってるシステムが 64bit なのか 32bit なのか調べる

使ってるシステムが 64bit なのか 32bit なのか調べる場合は、PowerShell を起動して以下のコマンドを実行します。
PS> $env:PROCESSOR_ARCHITECTURE

64bit の場合なら、AMD64 と表示されます。それ以外なら 32bit です。

※ これ以外にも、[設定] – [システム] – [バージョン情報] – [システム情報] – [システムの種類] を見るなど、調べる方法はたくさんあります。

(3) Cloud SDK を解凍して配置する

ここでは、64 ビット用の google-cloud-sdk-240.0.0-linux-x86_64.tar.gz ファイルをダウンロードしたとします。

この圧縮ファイルをどこかに解凍するのですが、今回は Windows 側の C:\Users\{ユーザー名} フォルダー直下に解凍します(ここが $HOME になっている前提です)。 解凍操作は、Windows側で行っても良いですし WSL 側で行っても構いません。

WSL のターミナル上で行うなら、例えば以下のコマンドで解凍することができます。

$ tar zxvf google-cloud-sdk-240.0.0-linux-x86_64.tar.gz -C ~

解凍した結果、以下のフォルダーが生成されました。

C:\Users\{ユーザー名}\google-cloud-sdk

(4) Google Cloud SDK ツールにパスを通す, etc.

解凍したフォルダーの中に入っている install.sh ファイルを実行することにより、Google Cloud SDK のコマンドにパスを通します。サブコマンドの補完設定なども合わせて行われます。(これは必須ではないです)

以下のコマンドを実行します。

$ cd ~
$ ./google-cloud-sdk/install.sh

まず最初に、Google Cloud SDK をどのように使っているかのデータやクラッシュした際のデータなどを匿名で Google に提供するかどうか聞かれます。

次に、「環境変数 $PATH に Google Cloud SDK ツールのパスを追加する」のと「そのツールであるコマンドの補完を有効にする」ための設定を設定ファイル(デフォルトは ~/.bashrc だが変更可)に追記するかどうか聞かれます。これは追記すればよいでしょう。すると指定した設定ファイルに設定が書き込まれます。

設定を反映させるために、ターミナルエミュレータを一旦閉じて開き直します。

~/.bashrc に追記される内容

今回の場合、~/.bashrc (変更可)に追記される内容は以下になります。
# The next line updates PATH for the Google Cloud SDK.
if [ -f '/mnt/c/Users/{ユーザー名}/google-cloud-sdk/path.bash.inc' ]; then . '/mnt/c/Users/{ユーザー名}/google-cloud-sdk/path.bash.inc'; fi

# The next line enables shell command completion for gcloud.
if [ -f '/mnt/c/Users/{ユーザー名}/google-cloud-sdk/completion.bash.inc' ]; then . '/mnt/c/Users/{ユーザー名}/google-cloud-sdk/completion.bash.inc'; fi
しかし、ホームディレクトリは $HOME を使って書いた方がポータビリティが上がりますので、以下のように書き換えるとよいです。
# The next line updates PATH for the Google Cloud SDK.
if [ -f "$HOME/google-cloud-sdk/path.bash.inc" ]; then . "$HOME/google-cloud-sdk/path.bash.inc"; fi

# The next line enables shell command completion for gcloud.
if [ -f "$HOME/google-cloud-sdk/completion.bash.inc" ]; then . "$HOME/google-cloud-sdk/completion.bash.inc"; fi

(5) SDK の初期化

以下のコマンドを実行して、SDK を初期化します。

$ ~/google-cloud-sdk/bin/gcloud init --console-only

これにより行われるのは主に認証作業で、以下の操作を行います。

  1. URL が表示されるので、そこにブラウザでアクセスします。
  2. Google アカウントでログインします。
  3. 確認コードが表示されるのでコピーします。
  4. コンソール上に貼り付けます。

--console-only オプションを指定しないと、認証作業をする際に WSL 側(Linux 上の)ブラウザを起動してログインさせようとします。

プロジェクトを作成するか聞かれますが、このタイミングで作成しなくて構いません。

(6) Google Cloud SDK コンポーネントの更新と追加

以下のコマンドを実行して Google Cloud SDK コンポーネントを更新しておきます。

$ gcloud components update

必要に応じて Google Cloud SDK コンポーネントをインストールします。

$ gcloud components install コンポーネント名

参考

📂-Linux

執筆者:labo


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

Linux

ドキュメントルートに chmod コマンドを実行する際、指定すると便利なモード引数

目次1. はじめに2. chmod に関する前提知識3. ディレクトリは rwxr-xr-x ファイルは rw-r–r– にする解説4. ディレクトリは rwxrwxr-x ファイルは rw-rw …

Linux

シェルスクリプト (Bash) では組み込みコマンド set を活用しましょう

Linux や MacOS、Windows の WSL でシェルスクリプト(Bash)を書く場合は、組み込みコマンド set を活用しましょう。より完成度の高い処理を書くことができます。 スポンサード …

docker

CentOS 上の Docker にウェブサーバーを入れて80番以外のポートで公開することができない問題【未解決】

CentOS 7 上の Dockerコンテナ にウェブサーバーを入れた場合、80番以外のポートで公開することはできないようです。 例えば、 まず、firewall-cmd コマンドで 8080番ポート …

Linux

ラベル行のある複数ファイルを1ファイルにマージするコマンド

ラベル行のある複数ファイルをマージするコマンドを紹介します。

Linux

テキストファイル内の行毎に、特定の箇所を抽出する

ファイル内の行毎に、特定の箇所を抽出する方法を紹介します。