如何在Alpine Linux上安装Google Cloud CLI而不安装其捆绑的Python版本?
如何在Alpine Linux上安装Google Cloud CLI而不安装其捆绑的Python版本?
嘿,我正好碰到过类似的问题!在Alpine上装gcloud的时候,它硬要装那75MB的捆绑Python确实挺烦的,毕竟咱们已经有符合版本要求的Python 3.12了。试试下面这几个办法,应该能解决你的问题:
1. 先补全系统Python的依赖
gcloud之所以会自动装捆绑Python,大概率是它检测到咱们的系统Python缺少必要的依赖,觉得没法正常运行。在Alpine上,你得先装几个额外的Python相关包:
RUN apk add --no-cache python3 py3-pip py3-setuptools py3-cffi libffi-dev
这些包能给系统Python补上gcloud运行需要的基础环境,让安装脚本意识到“哦,这个系统Python能用”,就不会再去下载捆绑版本了。
2. 用--no-bundled-python参数强制跳过
虽然你试过的--install-python是MacOS专属,但Linux版的install.sh其实有个--no-bundled-python参数,专门用来告诉脚本别装捆绑Python。搭配CLOUDSDK_PYTHON环境变量指定系统Python路径,效果更好:
RUN mkdir -p /usr/local/gcloud \ && curl -s https://dl.google.com/dl/cloudsdk/release/google-cloud-sdk.tar.gz | tar -xz -C /usr/local/gcloud \ && CLOUDSDK_PYTHON=/usr/bin/python3 /usr/local/gcloud/google-cloud-sdk/install.sh --quiet --usage-reporting false --no-bundled-python
3. 手动选组件,避开捆绑Python
要是上面的办法还不行,你可以直接指定要安装的gcloud组件,把那个bundled-python311排除在外。比如只装核心组件、BigQuery和Cloud Storage工具:
RUN mkdir -p /usr/local/gcloud \ && curl -s https://dl.google.com/dl/cloudsdk/release/google-cloud-sdk.tar.gz | tar -xz -C /usr/local/gcloud \ && CLOUDSDK_PYTHON=/usr/bin/python3 /usr/local/gcloud/google-cloud-sdk/install.sh --quiet --usage-reporting false --components bq,gcloud-storage,core
你可以根据自己的CI需求添加更多组件,比如compute、deploy之类的,这样就完全不会触发捆绑Python的安装了。
验证一下是否成功
装完之后,跑个命令确认gcloud用的是系统Python:
gcloud info | grep "Python location"
要是输出显示的是/usr/bin/python3,那说明咱们成功绕开了捆绑版本!
备注:内容来源于stack exchange,提问作者kashev
相关产品推荐
相关产品推荐

