GcloudコマンドラインからいくつかのGCPコンポーネントをインストールしようとすると、常に同じエラーが発生します。
$ gcloud components list
Your current Cloud SDK version is: 146.0.0
The latest available version is: 146.0.0
┌─────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ Components │
├───────────────┬──────────────────────────────────────────────────────┬──────────────────────────┬───────────┤
│ Status │ Name │ ID │ Size │
├───────────────┼──────────────────────────────────────────────────────┼──────────────────────────┼───────────┤
│ Not Installed │ App Engine Go Extensions │ app-engine-go │ 47.9 MiB │
│ Not Installed │ Bigtable Command Line Tool │ cbt │ 3.8 MiB │
│ Not Installed │ Cloud Datalab Command Line Tool │ datalab │ < 1 MiB │
│ Not Installed │ Cloud Datastore Emulator │ cloud-datastore-emulator │ 15.4 MiB │
│ Not Installed │ Cloud Datastore Emulator (Legacy) │ gcd-emulator │ 38.1 MiB │
│ Not Installed │ Cloud Pub/Sub Emulator │ pubsub-emulator │ 21.0 MiB │
│ Not Installed │ Google Container Registry's Docker credential helper │ docker-credential-gcr │ 3.3 MiB │
│ Not Installed │ gcloud app Java Extensions │ app-engine-Java │ 128.3 MiB │
│ Not Installed │ gcloud app Python Extensions │ app-engine-python │ 7.2 MiB │
│ Not Installed │ kubectl │ kubectl │ 11.5 MiB │
│ Installed │ BigQuery Command Line Tool │ bq │ < 1 MiB │
│ Installed │ Cloud SDK Core Libraries │ core │ 5.7 MiB │
│ Installed │ Cloud Storage Command Line Tool │ gsutil │ 2.8 MiB │
│ Installed │ Default set of gcloud commands │ gcloud │ │
│ Installed │ gcloud Alpha Commands │ alpha │ < 1 MiB │
│ Installed │ gcloud Beta Commands │ beta │ < 1 MiB │
└───────────────┴──────────────────────────────────────────────────────┴──────────────────────────┴───────────┘
$ gcloud components install kubectlこのCloud SDKインストールは外部パッケージマネージャーによって管理されているため、このアクションを実行できません。最新バージョンを取得する場合は、次のメインダウンロードページを参照してください。 https://cloud.google.com/sdk/ エラー:(gcloud.components.install)コンポーネントマネージャーはこのインストールでは無効です
このエラーが発生する理由は何ですか?
Cloud SDKコンポーネントマネージャーは、別のパッケージマネージャーからSDKをインストールしない場合にのみ機能します。コンポーネントマネージャを使用する場合は、次のいずれかの方法を使用してインストールできます。
https://cloud.google.com/sdk/downloads#versioned
https://cloud.google.com/sdk/downloads#interactive
追加のパッケージはdebおよびyumリポジトリで利用できるため、すべて同じコンポーネントを利用できます。既存のパッケージマネージャーを使用してインストールするだけです。
Ubuntu OSのこの答えにもう少しコンテキストを追加するために、これらはgoogle-cloud-sdk
パッケージマネージャーを使用してapt-get
を既にインストールしたときに行った手順です。
を使用して既存のインストールを削除します
Sudo apt-get remove google-cloud-sdk
https://cloud.google.com/sdk/docs/quickstart-linux に移動し、手順に従ってシステムに適したtar.gz
パッケージをダウンロードします
ダウンロードディレクトリに移動して、アーカイブを解凍します
tar -zxf google-cloud-sdk-*
を使用してSDKをインストールする
./google-cloud-sdk/install.sh
次のいずれかの方法でgcloud
コマンドを使用可能にします。
source ~/.bashrc
またはこのインストールを使用して、次のコマンドでkubectl
を更新およびインストールできました
gcloud components update
gcloud components install kubectl
apt
またはapt-get
がgcloudをアンインストールしない場合は、snap remove google-cloud-sdk
で試してください。
これは、新しいUbuntuバージョン(LTS 18.04など)を使用している場合に該当する可能性があります。
既存のGCEインスタンス(Ubuntu Xenial)でgcloud
CLIバージョンをアップグレードしたかったので、gcloud components update
を実行すると次のようになりました。
# gcloud components update
ERROR: (gcloud.components.update) You cannot perform this action because this Cloud SDK installation is managed by an external package manager.
Please consider using a separate installation of the Cloud SDK created through the default mechanism described at: https://cloud.google.com/sdk/
私が見つけたのは、SDK実行可能ファイルが/usr/lib/google-cloud-sdk
にインストールされ、/usr/bin
のシンボリックリンクを介してPATHに含まれていることです:
# ll /usr/bin | grep google-cloud
lrwxrwxrwx 1 root root 30 Aug 20 2018 bq -> ../lib/google-cloud-sdk/bin/bq*
lrwxrwxrwx 1 root root 34 Aug 20 2018 gcloud -> ../lib/google-cloud-sdk/bin/gcloud*
lrwxrwxrwx 1 root root 52 Aug 20 2018 git-credential-gcloud.sh -> ../lib/google-cloud-sdk/bin/git-credential-gcloud.sh*
lrwxrwxrwx 1 root root 34 Aug 20 2018 gsutil -> ../lib/google-cloud-sdk/bin/gsutil*
したがって、最新バージョンをインストールするには、 https://cloud.google.com/sdk/docs/quickstart-linux の手順3および4を実行しました。
- ご使用のオペレーティングシステムに最適なアーカイブファイルをダウンロードします。
# curl -O https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-247.0.0-linux-x86_64.tar.gz
- アーカイブをファイルシステム上の任意の場所に抽出します。できれば、ホームフォルダー。
# tar zxvf google-cloud-sdk-247.0.0-linux-x86_64.tar.gz google-cloud-sdk
そして、古い/usr/lib/google-cloud-sdk
ディレクトリを新しいものに置き換えました。
# mv /usr/lib/google-cloud-sdk /usr/lib/google-cloud-sdk-ORIG
# mv google-cloud-sdk /usr/lib/
これにより、既にPATHにあるシンボリックリンクが機能し続け、既存のauth/configが適切に維持され、将来[gcloud components update
]経由のアップグレードをサポートするように見えます:
# gcloud components update
All components are up to date.
gcloud
をアップグレードする前後にこれらを実行すると役立つ場合があります。
PATHのgcloud
はどこですか:
$ which gcloud
/usr/bin/gcloud
使用しているgcloud
のバージョン:
$ gcloud version
Google Cloud SDK 247.0.0
bq 2.0.43
core 2019.05.17
gsutil 4.38
gcloud
を使用する資格情報(デフォルト):
$ gcloud auth list
gcloud
を使用する設定(デフォルト):
$ gcloud config list