2011-01-05 16:01:29 +01:00
|
|
|
|
# n
|
|
|
|
|
|
|
|
|
|
My own flavour of node binary management, no subshells, no profile setup, no convoluted api, just _simple_.
|
|
|
|
|
|
|
|
|
|
## Installation
|
|
|
|
|
|
2011-07-08 00:27:38 +02:00
|
|
|
|
$ npm install -g n
|
2011-01-05 16:01:29 +01:00
|
|
|
|
|
|
|
|
|
or
|
|
|
|
|
|
|
|
|
|
$ make install
|
|
|
|
|
|
2011-01-21 04:35:00 +01:00
|
|
|
|
### Installing Binaries
|
2011-01-05 16:48:51 +01:00
|
|
|
|
|
2011-01-21 04:35:00 +01:00
|
|
|
|
Install a few nodes ("v" is optional), the version given becomes the active node binary once installation is complete.
|
2011-01-05 16:48:51 +01:00
|
|
|
|
|
|
|
|
|
$ n 0.2.6
|
2011-01-05 17:24:13 +01:00
|
|
|
|
$ n v0.3.3
|
2011-01-05 16:48:51 +01:00
|
|
|
|
|
2011-01-21 04:35:00 +01:00
|
|
|
|
List installed binaries:
|
2011-01-05 16:48:51 +01:00
|
|
|
|
|
|
|
|
|
$ n
|
2011-10-26 22:59:40 +02:00
|
|
|
|
|
2011-01-05 16:48:51 +01:00
|
|
|
|
0.2.5
|
2011-01-21 04:35:00 +01:00
|
|
|
|
ο 0.2.6
|
2011-01-05 16:48:51 +01:00
|
|
|
|
0.3.3
|
|
|
|
|
|
2011-01-05 16:55:56 +01:00
|
|
|
|
Pass some config flags to _./configure_:
|
|
|
|
|
|
2011-01-21 04:35:00 +01:00
|
|
|
|
$ n 0.2.6 --debug
|
|
|
|
|
|
|
|
|
|
List installed binaries, config flags are shown:
|
|
|
|
|
|
2011-10-26 22:59:40 +02:00
|
|
|
|
0.2.3
|
2011-01-21 04:35:00 +01:00
|
|
|
|
ο 0.2.6 --debug
|
2011-10-26 22:59:40 +02:00
|
|
|
|
0.3.4
|
2011-01-21 04:35:00 +01:00
|
|
|
|
0.3.5
|
|
|
|
|
|
2011-01-22 00:25:07 +01:00
|
|
|
|
Use or install the latest official release:
|
|
|
|
|
|
2012-01-25 12:42:27 +01:00
|
|
|
|
$ n latest
|
|
|
|
|
|
2012-01-28 16:34:26 +01:00
|
|
|
|
Use or install the stable official release:
|
|
|
|
|
|
|
|
|
|
$ n stable
|
|
|
|
|
|
2012-01-25 12:42:27 +01:00
|
|
|
|
Install a custom or patched version of node from a tarball:
|
|
|
|
|
|
|
|
|
|
$ n custom 0.6.5 https://github.com/dshaw/node/tarball/patch/v0.6.5status
|
2011-01-22 00:25:07 +01:00
|
|
|
|
|
2011-01-21 04:35:00 +01:00
|
|
|
|
### Removing Binaries
|
2011-01-05 16:55:56 +01:00
|
|
|
|
|
2011-01-05 17:17:16 +01:00
|
|
|
|
Remove some versions:
|
|
|
|
|
|
2011-01-05 17:24:13 +01:00
|
|
|
|
$ n rm 0.2.4 v0.3.0
|
2011-01-05 17:17:16 +01:00
|
|
|
|
|
2011-01-05 17:23:02 +01:00
|
|
|
|
Instead of using `rm` we can simply use `-`:
|
|
|
|
|
|
|
|
|
|
$ n - 0.2.4
|
|
|
|
|
|
2011-01-21 04:35:00 +01:00
|
|
|
|
### Binary Usage
|
|
|
|
|
|
2011-01-05 17:43:16 +01:00
|
|
|
|
When running multiple versions of node, we can target
|
|
|
|
|
them directly by asking `n` for the binary path:
|
|
|
|
|
|
|
|
|
|
$ n bin 0.3.3
|
|
|
|
|
/usr/local/n/versions/0.3.3/bin/node
|
|
|
|
|
|
2011-01-05 22:33:28 +01:00
|
|
|
|
Execute a script with 0.3.3 regardless of the active version:
|
2011-01-05 16:01:29 +01:00
|
|
|
|
|
2011-01-05 22:33:28 +01:00
|
|
|
|
$ n use 0.3.3 some.js
|
2011-01-05 16:01:29 +01:00
|
|
|
|
|
2011-01-05 22:33:28 +01:00
|
|
|
|
with flags:
|
2011-01-05 17:17:16 +01:00
|
|
|
|
|
2011-01-05 22:33:28 +01:00
|
|
|
|
$ n as 0.3.3 --debug some.js
|
2011-01-05 16:01:29 +01:00
|
|
|
|
|
2011-11-29 06:04:59 +01:00
|
|
|
|
Execute npm with 0.6.3 regardless of the active version:
|
|
|
|
|
|
|
|
|
|
$ n npm 0.6.3 install coffee-script
|
|
|
|
|
$ n npm 0.6.3 list
|
|
|
|
|
|
2011-01-05 22:33:28 +01:00
|
|
|
|
## Usage
|
2011-01-05 16:01:29 +01:00
|
|
|
|
|
2011-01-05 22:33:28 +01:00
|
|
|
|
Output from `n --help`:
|
2011-01-05 16:01:29 +01:00
|
|
|
|
|
2011-10-26 22:59:40 +02:00
|
|
|
|
Usage: n [options] [COMMAND] [config]
|
2011-01-22 00:25:07 +01:00
|
|
|
|
|
2011-01-05 22:33:28 +01:00
|
|
|
|
Commands:
|
2011-01-22 00:25:07 +01:00
|
|
|
|
|
2011-01-05 22:33:28 +01:00
|
|
|
|
n Output versions installed
|
2011-01-22 00:25:07 +01:00
|
|
|
|
n latest [config ...] Install or activate the latest node release
|
2012-01-28 16:34:26 +01:00
|
|
|
|
n stable [config ...] Install or activate the latest stable node release
|
2011-01-22 00:25:07 +01:00
|
|
|
|
n <version> [config ...] Install and/or use node <version>
|
2012-01-25 12:42:27 +01:00
|
|
|
|
n custom <version> <tarball> [config ...] Install custom node <tarball> with [args ...]
|
2011-01-05 22:33:28 +01:00
|
|
|
|
n use <version> [args ...] Execute node <version> with [args ...]
|
2011-11-29 06:04:59 +01:00
|
|
|
|
n npm <version> [args ...] Execute npm <version> with [args ...]
|
2011-01-05 22:33:28 +01:00
|
|
|
|
n bin <version> Output bin path for <version>
|
|
|
|
|
n rm <version ...> Remove the given version(s)
|
2011-01-22 00:25:07 +01:00
|
|
|
|
n --latest Output the latest node version available
|
2012-01-28 16:34:26 +01:00
|
|
|
|
n --stable Output the latest stable node version available
|
2011-02-14 18:02:47 +01:00
|
|
|
|
n ls Output the versions of node available
|
2011-01-22 00:25:07 +01:00
|
|
|
|
|
2011-01-05 16:01:29 +01:00
|
|
|
|
Options:
|
2011-01-22 00:25:07 +01:00
|
|
|
|
|
2011-01-05 16:01:29 +01:00
|
|
|
|
-V, --version Output current version of n
|
|
|
|
|
-h, --help Display help information
|
2011-01-22 00:25:07 +01:00
|
|
|
|
|
2011-01-05 22:33:28 +01:00
|
|
|
|
Aliases:
|
2011-01-22 00:25:07 +01:00
|
|
|
|
|
2011-01-05 22:33:28 +01:00
|
|
|
|
- rm
|
|
|
|
|
which bin
|
|
|
|
|
use as
|
2012-01-25 12:42:27 +01:00
|
|
|
|
custom c
|
2011-01-22 00:25:07 +01:00
|
|
|
|
|
2011-01-05 16:08:46 +01:00
|
|
|
|
## Details
|
|
|
|
|
|
|
|
|
|
`n` by default installs node to _/usr/local/n/versions_, from
|
|
|
|
|
which it can see what you have currently installed, and activate previously installed versions of node when `n <version>` is invoked again.
|
|
|
|
|
|
2011-10-26 22:59:40 +02:00
|
|
|
|
Activated nodes are then installed to the prefix _/usr/local_, which of course may be altered via the __N_PREFIX__ environment variable.
|
2011-01-05 16:40:17 +01:00
|
|
|
|
|
2011-01-05 16:08:46 +01:00
|
|
|
|
To alter where `n` operates simply export __N_PREFIX__ to whatever you prefer.
|
|
|
|
|
|
2011-10-26 22:59:40 +02:00
|
|
|
|
## License
|
2011-01-05 14:50:12 +01:00
|
|
|
|
|
|
|
|
|
(The MIT License)
|
|
|
|
|
|
|
|
|
|
Copyright (c) 2010 TJ Holowaychuk <tj@vision-media.ca>
|
|
|
|
|
|
|
|
|
|
Permission is hereby granted, free of charge, to any person obtaining
|
|
|
|
|
a copy of this software and associated documentation files (the
|
|
|
|
|
'Software'), to deal in the Software without restriction, including
|
|
|
|
|
without limitation the rights to use, copy, modify, merge, publish,
|
|
|
|
|
distribute, sublicense, and/or sell copies of the Software, and to
|
|
|
|
|
permit persons to whom the Software is furnished to do so, subject to
|
|
|
|
|
the following conditions:
|
|
|
|
|
|
|
|
|
|
The above copyright notice and this permission notice shall be
|
|
|
|
|
included in all copies or substantial portions of the Software.
|
|
|
|
|
|
|
|
|
|
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
|
|
|
|
|
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
|
|
|
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
|
|
|
|
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
|
|
|
|
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
|
|
|
|
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
2011-10-26 22:59:40 +02:00
|
|
|
|
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|