【问题标题】:Problema with nvm_install and chef-client first runnvm install 和 chef-client 首次运行的问题
【发布时间】:2016-02-29 00:23:13
【问题描述】:

我正在使用带有 nvm_install 资源的 nvm chef cookbook 来安装 nodejs 和 npm。

nvm_install 'v4.2.2' do
  from_source false
  alias_as_default true
  action :create
end

安装节点后,我尝试运行“npm install”,但出现此错误:

没有这样的文件或目录 - npm

我尝试放置一个“源”来加载 nvm.sh 脚本,但在我第一次运行 chef-client 时没有工作。

append_if_no_line "Global .bashrc and source to nvm" do
  path "/etc/bash.bashrc"
  line "[[ -s #{node['nvm']['directory']}/nvm.sh ]] && . #{node['nvm']['directory']}/nvm.sh  # This loads NVM"
end

我的问题是,如何在安装 NVM/NODE 并运行 chef-client 后运行 NPM INSTALL。

代码:

nvm_install 'v4.2.2' do
  from_source false
  alias_as_default true
  action :create
end

append_if_no_line "Global .bashrc and source to nvm" do
  path "/etc/bash.bashrc"
  line "[[ -s #{node['nvm']['directory']}/nvm.sh ]] && . #{node['nvm']['directory']}/nvm.sh  # This loads NVM"
end


execute "npm install" do
  cwd "#{PATH_CODE}"
  command "npm install"
  action :run
end

【问题讨论】:

  • 在尝试运行 npm 之前是否重新加载 bash 配置文件?

标签: node.js chef-infra cookbook nvm


【解决方案1】:

如 IRC 所述,您需要在从 Chef 运行的每个子 shell 中处理此问题。更好的解决方案可能是使用 poise-javascript 来管理 Chef 中的版本。

【讨论】:

  • 如果您在回答中提到了您在 IRC 上提到的内容,那将非常有帮助......我遇到了同样的问题。你能说得更具体点吗?
  • 正如我所说,解决方案可能是使用较新的 javascript 运行时管理手册之一。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-31
  • 2020-06-28
  • 1970-01-01
  • 1970-01-01
  • 2020-02-14
  • 1970-01-01
相关资源
最近更新 更多