我们正在尝试做的事情
我们在 GCP 上使用 Cloud Shell Editor (IDE)。
根据环境自定义脚本的文档:
$HOME/.customize_environmen
当您的实例启动时,Cloud Shell 会自动运行脚本 t。与.profile
or不同.bashrc
,此脚本在 Cloud Shell 启动时运行一次(而不是每次 shell 登录一次)。此脚本以 root 身份运行,您可以使用 Debian 软件包管理命令安装您希望在每个 Cloud Shell 会话中存在的任何软件包。
例如,如果您想在 Cloud Shell 上安装 erlang,您的
.customize_environment
文件将如下所示:#!/bin/sh apt-get update apt-get -y install erlang
我们正在尝试为我们的开发人员预安装节点版本并使用nvm
.
我们有问题的地方
我们查看了几篇关于在 bash 脚本文件(文件)中进行nvm
调用.customize_environment
的文章:
这些答案似乎都不能解决我们的问题。
GCPnvm
详细信息
Cloud Shell 预安装nvm
(全球);它位于/usr/local/nvm/nvm.sh
。
没有~/.nvm
文件夹。
我可以nvm
直接从 Cloud Shell(命令行)运行而不会出现问题。
我无法nvm
从 bash 文件运行(也无法使用 for 路径)。
最近的尝试
sudo
运行以下命令很接近,但由于 Cloud Shell 限制,我受限于您无法使用的权限:
. /usr/local/nvm/nvm.sh
nvm install 14
结果是:
Downloading and installing node v14.15.4...
mkdir: cannot create directory ‘/usr/local/nvm/.cache/bin/node-v14.15.4-linux-x64’: Permission denied
creating directory /usr/local/nvm/.cache/bin/node-v14.15.4-linux-x64/files failed
Downloading https://nodejs.org/dist/v14.15.4/node-v14.15.4-linux-x64.tar.xz...
Warning: Failed to create the file
Warning: /usr/local/nvm/.cache/bin/node-v14.15.4-linux-x64/node-v14.15.4-linux-
Warning: x64.tar.xz: No such file or directory
curl: (23) Failed writing body (0 != 966)
Binary download from https://nodejs.org/dist/v14.15.4/node-v14.15.4-linux-x64.tar.xz failed, trying source.
grep: /usr/local/nvm/.cache/bin/node-v14.15.4-linux-x64/node-v14.15.4-linux-x64.tar.xz: No such file or directory
Provided file to checksum does not exist.
Binary download failed, trying source.
Detected that you have 4 CPU core(s)
Running with 3 threads to speed up the build
mkdir: cannot create directory ‘/usr/local/nvm/.cache/src’: Permission denied
creating directory /usr/local/nvm/.cache/src/node-v14.15.4/files failed
Downloading https://nodejs.org/dist/v14.15.4/node-v14.15.4.tar.xz...
Warning: Failed to create the file
Warning: /usr/local/nvm/.cache/src/node-v14.15.4/node-v14.15.4.tar.xz: No such
Warning: file or directory
curl: (23) Failed writing body (0 != 965)
Binary download from https://nodejs.org/dist/v14.15.4/node-v14.15.4.tar.xz failed, trying source.
grep: /usr/local/nvm/.cache/src/node-v14.15.4/node-v14.15.4.tar.xz: No such file or directory
Provided file to checksum does not exist.
重要线路:mkdir: cannot create directory ‘...’: Permission denied
我不能sudo
绕过它,运行usermod
(例如usermod -a -G staff $(whoami)
),即使谷歌的文档说我应该能够:
设置 Cloud Shell 会话时,您会获得一个常规 Unix 用户帐户,其用户名基于您的电子邮件地址。使用此访问权限,您可以在分配的 VM 上拥有完全的 root 权限,甚至可以
sudo
在需要时运行命令。
问题
我们如何nvm
在 GCP 的 Cloud Shell 中的 bash 脚本文件中使用?