gpt4 book ai didi

Packer:在 packer 脚本中使用 npm install - 失败并出现命令未找到错误

转载 作者:行者123 更新时间:2023-12-04 16:49:38 27 4
gpt4 key购买 nike

我最近一直在研究 packer,发现它是一个很棒的工具。但是我没有在安装脚本中使用已安装的工具。

这是我一直在玩的一个示例打包程序模板(我知道有更好的方法可以将它与脚本和供应商一起使用。但为了简单起见,我正在学习这个):

{
"variables":{
"aws_access_key": "{{env `AWS_ACCESS_KEY`}}",
"aws_secret_key": "{{env `AWS_SECRET_KEY`}}"
},
"builders":[{
"type": "amazon-ebs",
"access_key":"{{user `aws_access_key`}}",
"secret_key":"{{user `aws_secret_key`}}",
"region": "us-east-1",
"source_ami": "ami-de0d9eb7",
"instance_type": "t1.micro",
"ssh_username": "ubuntu",
"ami_name": "packer-example2 {{timestamp}}"

}],
"provisioners":[{
"type": "shell",
"inline":[
"sleep 30",
"echo 'deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen' | sudo tee /etc/apt/sources.list.d/mongodb.list",
"echo 'deb http://www.rabbitmq.com/debian/ testing main' | sudo tee /etc/apt/sources.list.d/rabbitmq.list",
"sudo apt-get-repository ppa:chris-lea/node.js",
"wget http://www.rabbitmq.com/rabbitmq-signing-key-public.asc",
"sudo apt-key add rabbitmq-signing-key-public.asc",
"sudo apt-get update",
"sudo apt-get install -y build-essential python-dev",
"sudo apt-get build-dep -y python-imaging",
"sudo apt-get install -y redis-server",
"sudo apt-get install -y mongodb-org",
"sudo apt-get install -y nodejs",
"sudo apt-get install -y nginx",
"sudo apt-get install -y rabbitmq-server",
"sudo apt-get install -y git",
"sudo apt-get -y install postgresql libpq-dev postgresql-contrib",
"sudo apt-get -y install htop",
"sudo apt-get -y install sysstat",
"sudo apt-get install -y curl",
"sudo apt-get install -y ntp",
"sudo apt-get install -y wget",
"npm install -g swamp bower grunt"
]
}]
}

我收到以下错误消息:

amazon-ebs: sudo: npm: command not found

我知道 npm 使用 nodejs 安装(至少根据我的经验),所以我可能遗漏了一些东西。我想当我尝试使用类似的平台安装工具时也会发生这种情况:pip、gem 等...

最佳答案

自从我问这个问题以来已经有一段时间了,我重新审视了,现在我可以自己回答这个问题(现在我使用 packer 来构建我们的生产机器,仍然很棒),并提供了一些获得 Working Packer 解决方案的指示

  1. 阅读实际的安装日志,它指出了问题所在!它可能与不同的组件有关(就像这里的情况一样),但问题(未添加 apt-repo)可能在错误发生很久之前就出现了。
  2. 实际的问题是 node.js 仓库的 sudo apt-add-repository 从来没有用过,所以我真的没有安装 npm,而是得到了一个旧的 node.js 版本与 ubuntu 存储库捆绑在一起(没有 chris-lea 存储库)并且没有 npm。
  3. 为了使 apt-add-repository 正常工作,必须先在脚本中安装一些先决条件:


sudo apt-get install -y software-properties-common
sudo apt-get install -y python-software-properties

  1. 在尝试安装 npm 模块之前安装 git、curl、wget、unzip 等也是一个好主意,因为某些节点模块/工具实际上依赖于它们。

    <
  2. 根本不要使用 ubuntu node/npm bundle.. install nvm并安装你想要的任何版本的 node.js 和 IO.js。在尝试使用新的 npm 之前,不要忘记source nvm.sh..

希望这对遇到此问题的任何人有所帮助。

关于Packer:在 packer 脚本中使用 npm install - 失败并出现命令未找到错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25217601/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com