web-dev-qa-db-ja.com

gcloudコマンドからGoogle Cloudコンポーネントをインストールするエラー

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)コンポーネントマネージャーはこのインストールでは無効です

このエラーが発生する理由は何ですか?

34
Ivan Fernandez

Cloud SDKコンポーネントマネージャーは、別のパッケージマネージャーからSDKをインストールしない場合にのみ機能します。コンポーネントマネージャを使用する場合は、次のいずれかの方法を使用してインストールできます。

https://cloud.google.com/sdk/downloads#versioned

https://cloud.google.com/sdk/downloads#interactive

追加のパッケージはdebおよびyumリポジトリで利用できるため、すべて同じコンポーネントを利用できます。既存のパッケージマネージャーを使用してインストールするだけです。

https://cloud.google.com/sdk/downloads#apt-get

https://cloud.google.com/sdk/downloads#yum

30
Mark

Ubuntu OSのこの答えにもう少しコンテキストを追加するために、これらはgoogle-cloud-sdkパッケージマネージャーを使用してapt-getを既にインストールしたときに行った手順です。

  1. を使用して既存のインストールを削除します

    Sudo apt-get remove google-cloud-sdk

  2. https://cloud.google.com/sdk/docs/quickstart-linux に移動し、手順に従ってシステムに適したtar.gzパッケージをダウンロードします

  3. ダウンロードディレクトリに移動して、アーカイブを解凍します

    tar -zxf google-cloud-sdk-*

  4. を使用してSDKをインストールする

    ./google-cloud-sdk/install.sh

  5. 次のいずれかの方法でgcloudコマンドを使用可能にします。

    • source ~/.bashrcまたは
    • 現在のターミナルセッションを閉じて新しいセッションを開く

このインストールを使用して、次のコマンドでkubectlを更新およびインストールできました

gcloud components update
gcloud components install kubectl
16
ScottMcC

aptまたはapt-getがgcloudをアンインストールしない場合は、snap remove google-cloud-sdkで試してください。

これは、新しいUbuntuバージョン(LTS 18.04など)を使用している場合に該当する可能性があります。

4
Wal

私の問題

既存の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を実行しました。

  1. ご使用のオペレーティングシステムに最適なアーカイブファイルをダウンロードします。
# curl -O https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-247.0.0-linux-x86_64.tar.gz
  1. アーカイブをファイルシステム上の任意の場所に抽出します。できれば、ホームフォルダー。
# 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
0
superEb