installation from packages available as an option; source install still default; readme migrated to md; foodcritic lint applied
Esse commit está contido em:
@@ -0,0 +1,3 @@
|
||||
## v1.0.0:
|
||||
|
||||
* added packages installation support thanks to Nathan L Smith
|
||||
+67
@@ -0,0 +1,67 @@
|
||||
DESCRIPTION
|
||||
===========
|
||||
|
||||
Installs Node.JS
|
||||
|
||||
REQUIREMENTS
|
||||
============
|
||||
|
||||
|
||||
## Platform
|
||||
|
||||
* Tested on Debian 5+ and Ubuntu 10.04
|
||||
* Should work fine on Centos, RHEL, etc.
|
||||
|
||||
## Cookbooks:
|
||||
|
||||
* build-essential
|
||||
|
||||
Opscode cookbooks (http://github.com/opscode/cookbooks/tree/master)
|
||||
|
||||
ATTRIBUTES
|
||||
==========
|
||||
|
||||
* nodejs['install_method'] = source or package
|
||||
* nodejs['version'] - release version of node to install
|
||||
* nodejs['dir'] - location where node will be installed, default /usr/local
|
||||
* nodejs['npm'] - version of npm to install
|
||||
|
||||
USAGE
|
||||
=====
|
||||
|
||||
Include the nodejs recipe to install node on your system based on the default installation method:
|
||||
|
||||
* include_recipe "nodejs"
|
||||
|
||||
Include the install_from_source recipe to install node from sources:
|
||||
|
||||
* include_recipe "nodejs::install_from_source"
|
||||
|
||||
Include the install_from_package recipe to install node from packages:
|
||||
|
||||
* include_recipe "nodejs::install_from_package"
|
||||
|
||||
Include the npm recipe to install npm:
|
||||
|
||||
* include_recipe "nodejs::npm"
|
||||
|
||||
LICENSE and AUTHOR
|
||||
==================
|
||||
|
||||
Author:: Marius Ducea (marius@promethost.com)
|
||||
Author:: Nathan L Smith (nlloyds@gmail.com)
|
||||
|
||||
Copyright:: 2010-2012, Promet Solutions
|
||||
Copyright:: 2012, Cramer Development, Inc.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
@@ -1,53 +0,0 @@
|
||||
= DESCRIPTION:
|
||||
|
||||
Installs Node.JS.
|
||||
|
||||
= REQUIREMENTS:
|
||||
|
||||
== Platform:
|
||||
|
||||
Tested on Debian Lenny. Should work fine on Ubuntu, Centos, etc.
|
||||
|
||||
== Cookbooks:
|
||||
|
||||
Opscode cookbooks (http://github.com/opscode/cookbooks/tree/master)
|
||||
|
||||
* build-essential
|
||||
|
||||
= ATTRIBUTES:
|
||||
|
||||
* nodejs[:version] - release version of node to install
|
||||
* nodejs[:dir] - location where node will be installed, default /usr/local
|
||||
* nodejs[:npm] - version of npm to install
|
||||
|
||||
= USAGE:
|
||||
|
||||
Include the nodejs recipe to install node on your system:
|
||||
|
||||
include_recipe "nodejs"
|
||||
|
||||
Include the nodejs recipe to install node from source on your system:
|
||||
|
||||
include_recipe "nodejs::source"
|
||||
|
||||
Include the npm recipe to install npm:
|
||||
|
||||
include_recipe "nodejs::npm"
|
||||
|
||||
= LICENSE and AUTHOR:
|
||||
|
||||
Author:: Marius Ducea (marius@promethost.com)
|
||||
|
||||
Copyright:: 2010, Promet Solutions
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
@@ -2,7 +2,7 @@
|
||||
# Cookbook Name:: nodejs
|
||||
# Attributes:: nodejs
|
||||
#
|
||||
# Copyright 2010, Promet Solutions
|
||||
# Copyright 2010-2012, Promet Solutions
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
@@ -17,7 +17,8 @@
|
||||
# limitations under the License.
|
||||
#
|
||||
|
||||
default.nodejs[:version] = "0.6.11"
|
||||
default.nodejs[:checksum] = "94bbdb2d62645fd2ad5b96e41cfec68abf004fd03fabaaf7d71c48b39013cbd1"
|
||||
default.nodejs[:dir] = "/usr/local"
|
||||
default.nodejs[:npm] = "1.1.2"
|
||||
default['nodejs']['install_method'] = 'source'
|
||||
default['nodejs']['version'] = '0.6.11'
|
||||
default['nodejs']['checksum'] = '94bbdb2d62645fd2ad5b96e41cfec68abf004fd03fabaaf7d71c48b39013cbd1'
|
||||
default['nodejs']['dir'] = '/usr/local'
|
||||
default['nodejs']['npm'] = '1.1.2'
|
||||
|
||||
+12
-6
@@ -2,10 +2,16 @@ maintainer "Promet Solutions"
|
||||
maintainer_email "marius@promethost.com"
|
||||
license "Apache 2.0"
|
||||
description "Installs/Configures nodejs"
|
||||
long_description IO.read(File.join(File.dirname(__FILE__), 'README.rdoc'))
|
||||
version "0.6.11"
|
||||
recipe "nodejs", "Installs Node.JS"
|
||||
recipe "nodejs::source", "Installs Node.JS from source"
|
||||
recipe "nodejs::npm", "Installs npm - a package manager for node"
|
||||
long_description IO.read(File.join(File.dirname(__FILE__), 'README.md'))
|
||||
version "1.0.0"
|
||||
|
||||
depends "build-essential"
|
||||
recipe "nodejs", "Installs Node.JS based on the default installation method"
|
||||
recipe "nodejs::install_from_source", "Installs Node.JS from source"
|
||||
recipe "nodejs::install_from_package", "Installs Node.JS from packages"
|
||||
recipe "nodejs::npm", "Installs npm from source - a package manager for node"
|
||||
|
||||
depends "build-essential"
|
||||
|
||||
%w{ debian ubuntu centos redhat }.each do |os|
|
||||
supports os
|
||||
end
|
||||
|
||||
+3
-35
@@ -1,9 +1,9 @@
|
||||
#
|
||||
# Author:: Nathan L Smith (nlloyds@gmail.com)
|
||||
# Author:: Marius Ducea (marius@promethost.com)
|
||||
# Cookbook Name:: nodejs
|
||||
# Recipe:: default
|
||||
#
|
||||
# Copyright 2012, Cramer Development, Inc.
|
||||
# Copyright 2010-2012, Promet Solutions
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
@@ -18,36 +18,4 @@
|
||||
# limitations under the License.
|
||||
#
|
||||
|
||||
case node[:platform]
|
||||
when 'centos', 'redhat', 'scientific'
|
||||
file = '/usr/local/src/nodejs-stable-release.noarch.rpm'
|
||||
|
||||
remote_file file do
|
||||
source 'http://nodejs.tchol.org/repocfg/el/nodejs-stable-release.noarch.rpm'
|
||||
action :create_if_missing
|
||||
end
|
||||
|
||||
yum_package 'nodejs-stable-release' do
|
||||
source file
|
||||
options '--nogpgcheck'
|
||||
end
|
||||
|
||||
%w{ nodejs nodejs-compat-symlinks npm }.each do |pkg|
|
||||
package pkg
|
||||
end
|
||||
when 'ubuntu'
|
||||
apt_repository 'node.js' do
|
||||
uri 'http://ppa.launchpad.net/chris-lea/node.js/ubuntu'
|
||||
distribution node['lsb']['codename']
|
||||
components ['main']
|
||||
keyserver "keyserver.ubuntu.com"
|
||||
key "C7917B12"
|
||||
action :add
|
||||
end
|
||||
|
||||
%w{ nodejs npm }.each do |pkg|
|
||||
package pkg
|
||||
end
|
||||
else
|
||||
include_recipe 'nodejs::source'
|
||||
end
|
||||
include_recipe "nodejs::install_from_#{node['nodejs']['install_method']}"
|
||||
|
||||
@@ -0,0 +1,53 @@
|
||||
#
|
||||
# Author:: Nathan L Smith (nlloyds@gmail.com)
|
||||
# Cookbook Name:: nodejs
|
||||
# Recipe:: package
|
||||
#
|
||||
# Copyright 2012, Cramer Development, Inc.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
|
||||
case node['platform']
|
||||
when 'centos', 'redhat', 'scientific'
|
||||
file = '/usr/local/src/nodejs-stable-release.noarch.rpm'
|
||||
|
||||
remote_file file do
|
||||
source 'http://nodejs.tchol.org/repocfg/el/nodejs-stable-release.noarch.rpm'
|
||||
action :create_if_missing
|
||||
end
|
||||
|
||||
yum_package 'nodejs-stable-release' do
|
||||
source file
|
||||
options '--nogpgcheck'
|
||||
end
|
||||
|
||||
%w{ nodejs nodejs-compat-symlinks npm }.each do |pkg|
|
||||
package pkg
|
||||
end
|
||||
when 'ubuntu'
|
||||
apt_repository 'node.js' do
|
||||
uri 'http://ppa.launchpad.net/chris-lea/node.js/ubuntu'
|
||||
distribution node['lsb']['codename']
|
||||
components ['main']
|
||||
keyserver "keyserver.ubuntu.com"
|
||||
key "C7917B12"
|
||||
action :add
|
||||
end
|
||||
|
||||
%w{ nodejs npm }.each do |pkg|
|
||||
package pkg
|
||||
end
|
||||
else
|
||||
include_recipe "nodejs::install_from_source"
|
||||
end
|
||||
@@ -1,9 +1,9 @@
|
||||
#
|
||||
# Author:: Marius Ducea (marius@promethost.com)
|
||||
# Cookbook Name:: nodejs
|
||||
# Recipe:: default
|
||||
# Recipe:: source
|
||||
#
|
||||
# Copyright 2010, Promet Solutions
|
||||
# Copyright 2010-2012, Promet Solutions
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
@@ -20,23 +20,23 @@
|
||||
|
||||
include_recipe "build-essential"
|
||||
|
||||
case node[:platform]
|
||||
when "centos","redhat","fedora"
|
||||
case node['platform']
|
||||
when 'centos','redhat','fedora'
|
||||
package "openssl-devel"
|
||||
when "debian","ubuntu"
|
||||
when 'debian','ubuntu'
|
||||
package "libssl-dev"
|
||||
end
|
||||
|
||||
nodejs_tar = "node-v#{node[:nodejs][:version]}.tar.gz"
|
||||
nodejs_tar = "node-v#{node['nodejs']['version']}.tar.gz"
|
||||
nodejs_tar_path = nodejs_tar
|
||||
|
||||
if node[:nodejs][:version].split('.')[1].to_i >= 5
|
||||
nodejs_tar_path = "v#{node[:nodejs][:version]}/#{nodejs_tar_path}"
|
||||
if node['nodejs']['version'].split('.')[1].to_i >= 5
|
||||
nodejs_tar_path = "v#{node['nodejs']['version']}/#{nodejs_tar_path}"
|
||||
end
|
||||
|
||||
remote_file "/usr/local/src/#{nodejs_tar}" do
|
||||
source "http://nodejs.org/dist/#{nodejs_tar_path}"
|
||||
checksum node[:nodejs][:checksum]
|
||||
checksum node['nodejs']['checksum']
|
||||
mode 0644
|
||||
end
|
||||
|
||||
@@ -44,20 +44,20 @@ end
|
||||
# on NFS-mounted filesystem
|
||||
execute "tar --no-same-owner -zxf #{nodejs_tar}" do
|
||||
cwd "/usr/local/src"
|
||||
creates "/usr/local/src/node-v#{node[:nodejs][:version]}"
|
||||
creates "/usr/local/src/node-v#{node['nodejs']['version']}"
|
||||
end
|
||||
|
||||
bash "compile node.js" do
|
||||
cwd "/usr/local/src/node-v#{node[:nodejs][:version]}"
|
||||
cwd "/usr/local/src/node-v#{node['nodejs']['version']}"
|
||||
code <<-EOH
|
||||
./configure --prefix=#{node[:nodejs][:dir]} && \
|
||||
./configure --prefix=#{node['nodejs']['dir']} && \
|
||||
make
|
||||
EOH
|
||||
creates "/usr/local/src/node-v#{node[:nodejs][:version]}/node"
|
||||
creates "/usr/local/src/node-v#{node['nodejs']['version']}/node"
|
||||
end
|
||||
|
||||
execute "nodejs make install" do
|
||||
command "make install"
|
||||
cwd "/usr/local/src/node-v#{node[:nodejs][:version]}"
|
||||
not_if {File.exists?("#{node[:nodejs][:dir]}/bin/node") && `#{node[:nodejs][:dir]}/bin/node --version`.chomp == "v#{node[:nodejs][:version]}" }
|
||||
cwd "/usr/local/src/node-v#{node['nodejs']['version']}"
|
||||
not_if {File.exists?("#{node['nodejs']['dir']}/bin/node") && `#{node['nodejs']['dir']}/bin/node --version`.chomp == "v#{node['nodejs']['version']}" }
|
||||
end
|
||||
+6
-6
@@ -3,7 +3,7 @@
|
||||
# Cookbook Name:: nodejs
|
||||
# Recipe:: npm
|
||||
#
|
||||
# Copyright 2010, Promet Solutions
|
||||
# Copyright 2010-2012, Promet Solutions
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
@@ -18,7 +18,7 @@
|
||||
# limitations under the License.
|
||||
#
|
||||
|
||||
include_recipe "nodejs"
|
||||
include_recipe "nodejs::install_from_source"
|
||||
|
||||
package "curl"
|
||||
|
||||
@@ -26,11 +26,11 @@ bash "install npm - package manager for node" do
|
||||
cwd "/usr/local/src"
|
||||
user "root"
|
||||
code <<-EOH
|
||||
mkdir -p npm-v#{node[:nodejs][:npm]} && \
|
||||
cd npm-v#{node[:nodejs][:npm]}
|
||||
curl -L http://registry.npmjs.org/npm/-/npm-#{node[:nodejs][:npm]}.tgz | tar xzf - --strip-components=1 && \
|
||||
mkdir -p npm-v#{node['nodejs']['npm']} && \
|
||||
cd npm-v#{node['nodejs']['npm']}
|
||||
curl -L http://registry.npmjs.org/npm/-/npm-#{node['nodejs']['npm']}.tgz | tar xzf - --strip-components=1 && \
|
||||
make uninstall dev
|
||||
EOH
|
||||
not_if "#{node[:nodejs][:dir]}/bin/npm -v 2>&1 | grep '#{node[:nodejs][:npm]}'"
|
||||
not_if "#{node['nodejs']['dir']}/bin/npm -v 2>&1 | grep '#{node['nodejs']['npm']}'"
|
||||
end
|
||||
|
||||
|
||||
Referência em uma Nova Issue
Bloquear um usuário