3

I would like to work Google Cloud SDK on ARM machine.

$ uname -a
Linux myhost 3.14.79-at10 #2 SMP PREEMPT Mon Mar 6 15:38:30 JST 2017 armv7l GNU/Linux

In this page, I can find only for x86 architecture.

Can I work Google Cloud SDK on ARM?

4

4 回答 4

6

是的 - 我能够在 ARM64 (aarch64) Pinebook Pro 上使用apt-get 指令安装它。如果你没有 Ubuntu/Debian,你可以使用 Docker 容器。我使用 Ubuntu 容器从 Manjaro-ARM 完成了它。

我认为这些说明适用于运行 Raspbian 的 Raspberry Pi。

虽然上面的链接由 Google 维护,可能是获取这些说明的最佳位置,但我将复制下面当前的最小命令集,以防说明在某些时候被移动:

sudo apt-get update
sudo apt-get install apt-transport-https ca-certificates gnupg
echo "deb [signed-by=/usr/share/keyrings/cloud.google.gpg] https://packages.cloud.google.com/apt cloud-sdk main" | sudo tee -a /etc/apt/sources.list.d/google-cloud-sdk.list
curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key --keyring /usr/share/keyrings/cloud.google.gpg add -
sudo apt-get update && sudo apt-get install google-cloud-sdk
gcloud init

您可以选择安装以下任何附加软件包:

  • google-cloud-sdk-app-engine-python
  • google-cloud-sdk-app-engine-python-extras
  • google-cloud-sdk-app-engine-java
  • google-cloud-sdk-app-engine-go
  • google-cloud-sdk-bigtable 模拟器
  • 谷歌-云-sdk-cbt
  • google-cloud-sdk-cloud-build-local
  • google-cloud-sdk-datalab
  • google-cloud-sdk-datastore-模拟器
  • google-cloud-sdk-firestore-模拟器
  • google-cloud-sdk-pubsub 模拟器
  • kubectl
于 2020-06-03T21:48:05.520 回答
2

答案是否定的。SDK 是封闭源代码,您不太可能破解它以在 ARM 上工作。我不会阻止你这样做,因为它主要由 Python 脚本组成。

另一方面,处理云存储操作的 SDK 的一部分 gsutil 是开源的,并且基于 PyPI。您可以像往常一样使用 pip 安装它。

于 2017-04-14T10:22:29.720 回答
0

我们围绕 Docker 组织本地环境。不幸的是,谷歌云 SDK 没有官方的 ARM Docker 镜像。为了解决这个问题,我们克隆了官方的 Google Cloud SDK Dockerfile,经过反复试验,能够删除不可用的 SDK 模块,这样我们就可以在本地构建以生成 ARM Docker 映像。不可用的模块对我们来说不是问题,因为我们不使用它们,所以我们只是将它们注释掉(参见LOCAL_HACK下面的部分)。这是我们使用的当前被黑的 Dockerfile:

# This is a temporary workaround Dockerfile to allow us to run the Google SDK on Apple Silicon
# For the original @see https://raw.githubusercontent.com/GoogleCloudPlatform/cloud-sdk-docker/master/Dockerfile

FROM docker:19.03.11 as static-docker-source

FROM debian:buster
ARG CLOUD_SDK_VERSION=365.0.1
ENV CLOUD_SDK_VERSION=$CLOUD_SDK_VERSION
ENV PATH "$PATH:/opt/google-cloud-sdk/bin/"
COPY --from=static-docker-source /usr/local/bin/docker /usr/local/bin/docker
RUN groupadd -r -g 1000 cloudsdk && \
    useradd -r -u 1000 -m -s /bin/bash -g cloudsdk cloudsdk
RUN apt-get -qqy update && apt-get install -qqy \
        curl \
        python3-dev \
        python3-crcmod \
        python-crcmod \
        apt-transport-https \
        lsb-release \
        openssh-client \
        git \
        make \
        gnupg && \
    export CLOUD_SDK_REPO="cloud-sdk-$(lsb_release -c -s)" && \
    echo "deb https://packages.cloud.google.com/apt $CLOUD_SDK_REPO main" > /etc/apt/sources.list.d/google-cloud-sdk.list && \
    curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add - && \
    apt-get update && \
    apt-get install -y google-cloud-sdk=${CLOUD_SDK_VERSION}-0 \
        google-cloud-sdk-app-engine-python=${CLOUD_SDK_VERSION}-0 \
        google-cloud-sdk-app-engine-python-extras=${CLOUD_SDK_VERSION}-0 \
        google-cloud-sdk-app-engine-java=${CLOUD_SDK_VERSION}-0 \
        google-cloud-sdk-datalab=${CLOUD_SDK_VERSION}-0 \
        google-cloud-sdk-datastore-emulator=${CLOUD_SDK_VERSION}-0 \
        google-cloud-sdk-pubsub-emulator=${CLOUD_SDK_VERSION}-0 \
        google-cloud-sdk-firestore-emulator=${CLOUD_SDK_VERSION}-0 \
        kubectl && \
    gcloud --version && \
    docker --version && kubectl version --client

# >>> LOCAL HACK START
# @todo Removed the following packages from the `apt-get install` above as we cannot build them locally
#8 29.36 E: Unable to locate package google-cloud-sdk-app-engine-go
#8 29.37 E: Version '339.0.0-0' for 'google-cloud-sdk-bigtable-emulator' was not found
#8 29.37 E: Unable to locate package google-cloud-sdk-spanner-emulator
#8 29.37 E: Unable to locate package google-cloud-sdk-cbt
#8 29.37 E: Unable to locate package google-cloud-sdk-kpt
#8 29.37 E: Unable to locate package google-cloud-sdk-local-extract
#        google-cloud-sdk-app-engine-go=${CLOUD_SDK_VERSION}-0 \
#        google-cloud-sdk-bigtable-emulator=${CLOUD_SDK_VERSION}-0 \
#        google-cloud-sdk-spanner-emulator=${CLOUD_SDK_VERSION}-0 \
#        google-cloud-sdk-cbt=${CLOUD_SDK_VERSION}-0 \
#        google-cloud-sdk-kpt=${CLOUD_SDK_VERSION}-0 \
#        google-cloud-sdk-local-extract=${CLOUD_SDK_VERSION}-0 \
# <<< LOCAL HACK END

RUN apt-get install -qqy \
        gcc \
        python3-pip
RUN pip3 install --upgrade pip
RUN pip3 install pyopenssl
RUN git config --system credential.'https://source.developers.google.com'.helper gcloud.sh
VOLUME ["/root/.config", "/root/.kube"]

如果您将此文件另存为Dockerfile.CloudSdk.arm64,则可以docker build在 ARM 机器(在我们的示例中为 Apple M1 机器)上运行 a 来生成您的 ARM Docker 映像:

docker build -f Dockerfile.CloudSdk.arm64 -t yourorg.com/cloud-sdk-docker-arm:latest .

瞧!您现在拥有一个功能合理的 Google Cloud SDK Docker 映像,可以在 ARM 架构上完美运行 :)

于 2022-01-13T09:57:04.427 回答
0

如果您有pythonpython3以及pippip3,请尝试:

pip install --upgrade google-cloud

希望有帮助。

tekk@rack:~ $ uname -a
Linux rack 4.9.59-v7+ #1047 SMP Sun Oct 29 12:19:23 GMT 2017 armv7l GNU/Linux

它对我有用。

于 2017-11-21T21:47:21.160 回答