【问题标题】:Issue installing hiredis on AWS Linux using OpsWorks使用 OpsWorks 在 AWS Linux 上安装hiredis 时出现问题
【发布时间】:2015-02-12 10:27:47
【问题描述】:

我正在使用 OpsWorks 部署我的自定义 node.js 应用程序。我不是厨师专家,我认为这将是一个简单的过程,但我一直遇到困难。最近的这个问题真的让我退缩了。

基本上,我使用的是一个名为“Kue”的包,它依赖于一个名为 Hiredis 的 Node 包。 Hiredis 是在 C 级别实现的(据我了解),并使用了一些 Python 级别的编译工具。

似乎 OpsWorks 使用的默认 Chef 脚本在安装 Kue 然后 Hiredis 时一直失败。以下是实例尝试部署应用时的日志:http://codepad.org/RXxKXqBq

通过谷歌搜索,一些人指出 AWS Linux 使用的 Python 版本存在问题。请注意,我使用的是默认的 Node.js 应用程序 Chef recipes,可以在此处找到:https://github.com/aws/opsworks-cookbooks/tree/release-chef-11.10/opsworks_nodejs

【问题讨论】:

    标签: node.js amazon-web-services chef-infra aws-opsworks hiredis


    【解决方案1】:

    我对节点包和版本兼容性不太熟悉,但从您共享的日志来看,您使用的一个名为 amdefine 的节点包似乎存在问题:

    npm ERR! Failed to parse json
    npm ERR! Unexpected end of input
    npm ERR! File: /home/deploy/.npm/amdefine/0.1.0/package/package.json
    npm ERR! Failed to parse package.json data.
    npm ERR! package.json must be actual JSON, not just JavaScript.
    npm ERR! 
    npm ERR! This is not a bug in npm.
    npm ERR! Tell the package author to fix their package.json file. JSON.parse
    npm ERR! System Linux 3.14.26-24.46.amzn1.x86_64
    npm ERR! command "/usr/local/bin/node" "/usr/local/bin/npm" "install" "--production"
    npm ERR! cwd /srv/www/my_api/releases/20141214002817
    npm ERR! node -v v0.10.29
    npm ERR! npm -v 1.4.14
    npm ERR! file /home/deploy/.npm/amdefine/0.1.0/package/package.json
    

    它可以通过npm cache clean 或通过更改nodejs 的版本来修复,可能是you found too

    要添加命令npm cache clean,您必须创建新配方或将其添加到您的wrapper cookbook。唯一应该满足的是,这个命令应该在安装节点之后和安装包之前。

    如果你想改变版本,你可以检查default nodejs recepie,你可以看到安装的nodejs的requred版本在attributes file为那个食谱定义。

    因此您可以使用default[:opsworks_nodejs][:version] 属性覆盖默认值。

    【讨论】:

    • 我将尝试在 nodejs_configuratiobs.rb 中添加 npm cache clean。在 ShellOut 命令中,我在 npm 包安装之前添加了它: Chef::Log.info(OpsWorks::ShellOut.shellout("npm cache clean && sudo su - #{app_config[:user]} -c 'cd # {app_root_path} && npm #{npm_install_options}' 2>&1")) -- 希望这能解决问题。测试,如果可行,会回复你=)谢谢。
    • 太好了,成功了。现在环境已设置好,我需要专注于配置它并检测节点应用程序是否成功部署。谢谢 rastasheep!
    • 好消息!没问题:)
    猜你喜欢
    • 2011-01-14
    • 2013-08-07
    • 2020-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-25
    • 2017-12-19
    • 2017-06-21
    相关资源
    最近更新 更多