/ / Kochkochbuch installiert den Teer in / opt - node.js, Koch

kochbuch koch installieren sie den teer in / opt - node.js, chef

Hier ist mein nodejs_from_binary.rb

Chef::Recipe.send(:include, NodeJs::Helper)

node.force_override["nodejs"]["install_method"] = "binary" # ~FC019

# Shamelessly borrowed from http://docs.opscode.com/dsl_recipe_method_platform.html
# Surely there"s a more canonical way to get arch?
arch = if node["kernel"]["machine"] =~ /armv6l/
"arm-pi" # assume a raspberry pi
else
node["kernel"]["machine"] =~ /x86_64/ ? "x64" : "x86"
end

# package_stub is for example: "node-v0.8.20-linux-x64.tar.gz"
version = "v#{node["nodejs"]["version"]}/"
prefix = node["nodejs"]["prefix_url"][node["nodejs"]["engine"]]

if node["nodejs"]["engine"] == "iojs"
filename = "iojs-v#{node["nodejs"]["version"]}-linux-#{arch}.tar.gz"
archive_name = "iojs-binary"
binaries = ["bin/iojs", "bin/node"]
else
filename = "node-#{node["nodejs"]["version"]}.gz"
archive_name = "nodejs-binary"
binaries = ["bin/node"]
end

binaries.push("bin/npm") if node["nodejs"]["npm"]["install_method"] == "binary"

directory "/opt/nodejs/" do
owner "root"
group "root"
mode "0755"
recursive true
action :create
end

bash "get the nodejs-#{node["nodejs"]["version"]} from nexus" do
cwd ::File.dirname("/opt/nodejs/node-#{node["nodejs"]["version"]}")
code <<-EOH
wget http://#{node["nexus_ipaddress"]}:8080/nexus/content/repositories/thirdparty/com/nodejs/node/#{node["nodejs"]["version"]}/node-#{node["nodejs"]["version"]}.xz
tar -xvf node-#{node["nodejs"]["version"]}.xz
EOH
end

Der Knoten-4.6.0.xz wird jedoch weiterhin auf / opt anstelle von /opt/nodejs/node-4.6.0 oder / opt / nodejs installiert

Antworten:

0 für die Antwort № 1

Möglicherweise wurde Ihr Archiv mit erstellt tar -P

   -P, --absolute-names
Don"t strip leading slashes from file names when creating archives.

Dann kann es nicht möglich sein, in das aktuelle Verzeichnis zu extrahieren. Sie können Ihr tar-Archiv auflisten, indem Sie ausführen tar tvf node-4.6.0.xz.

BTW. Anstelle des Verzeichnisses / bash-Blocks "shenanigans" sollten Sie verwenden Arche Ressource mit :dump/:put Aktion.


0 für die Antwort № 2

Um Ihre Frage nicht direkt zu beantworten, aber wenn Sie nicht all das tun wollen, habe ich ein Poise-Javascript Community-Kochbuch, das all dies und mehr verwaltet.


0 für die Antwort № 3
tar -C /opt/nodejs -xvf node-#{node["nodejs"]["version"]}.xz

hat den Trick gemacht Danke @Szymon