mirror of
https://github.com/tj/n.git
synced 2024-12-01 13:41:07 +00:00
176 lines
5.4 KiB
Markdown
176 lines
5.4 KiB
Markdown
# n
|
||
|
||
[![Join the chat at https://gitter.im/tj/n](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/tj/n?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
|
||
|
||
Simple flavour of node/iojs binary management, no subshells, no profile setup, no convoluted api, just _simple_.
|
||
|
||
*Note: Does not work on Windows at the moment. Pull Requests are appreciated.*
|
||
|
||
![](https://i.cloudup.com/59cA8VEDae.gif)
|
||
|
||
## Installation
|
||
|
||
$ npm install -g n
|
||
|
||
or
|
||
|
||
$ make install
|
||
|
||
to `$HOME`. Prefix later calls to `n` with `N_PREFIX=$HOME`
|
||
|
||
$ PREFIX=$HOME make install
|
||
|
||
### Installing Binaries
|
||
|
||
Install a few nodes:
|
||
|
||
$ n 0.8.14
|
||
$ n 0.8.17
|
||
$ n 0.9.6
|
||
|
||
Type `n` to prompt selection of an installed node. Use the up /
|
||
down arrow to navigate, and press enter or the right arrow to
|
||
select, or ^C to cancel:
|
||
|
||
$ n
|
||
|
||
0.8.14
|
||
ο 0.8.17
|
||
0.9.6
|
||
|
||
Use or install the latest official release:
|
||
|
||
$ n latest
|
||
|
||
Use or install the stable official release:
|
||
|
||
$ n stable
|
||
|
||
Switch to the previous version you were using:
|
||
|
||
$ n prev
|
||
|
||
### Removing Binaries
|
||
|
||
Remove some versions:
|
||
|
||
$ n rm 0.9.4 v0.10.0
|
||
|
||
Instead of using `rm` we can simply use `-`:
|
||
|
||
$ n - 0.9.4
|
||
|
||
### Binary Usage
|
||
|
||
When running multiple versions of node, we can target
|
||
them directly by asking `n` for the binary path:
|
||
|
||
$ n bin 0.9.4
|
||
/usr/local/n/versions/0.9.4/bin/node
|
||
|
||
Or by using a specific version through `n`'s `use` sub-command:
|
||
|
||
$ n use 0.9.4 some.js
|
||
|
||
with flags:
|
||
|
||
$ n as 0.9.4 --debug some.js
|
||
|
||
### Different Architectures
|
||
|
||
By default `n` picks the binaries matching your system architecture, e.g. `n` will download 64 bit binaries for a 64 bit system. You can override this by using the `-a` or `--arch` option.
|
||
|
||
Download and use latest 32 bit version of node:
|
||
|
||
$ n --arch x86 latest
|
||
|
||
Download and use latest 32 bit version of iojs:
|
||
|
||
$ n io --arch x86 latest
|
||
|
||
|
||
## Usage
|
||
|
||
Output from `n --help`:
|
||
|
||
Usage: n [options/env] [COMMAND] [args]
|
||
|
||
Environments:
|
||
n [COMMAND] [args] Uses default env (node)
|
||
n io [COMMAND] Sets env as io
|
||
|
||
Commands:
|
||
|
||
n Output versions installed
|
||
n latest Install or activate the latest node release
|
||
n -a x86 latest As above but force 32 bit architecture
|
||
n stable Install or activate the latest stable node release
|
||
n <version> Install node <version>
|
||
n use <version> [args ...] Execute node <version> with [args ...]
|
||
n bin <version> Output bin path for <version>
|
||
n rm <version ...> Remove the given version(s)
|
||
n prev Revert to the previously activated version
|
||
n --latest Output the latest node version available
|
||
n --stable Output the latest stable node version available
|
||
n ls Output the versions of node available
|
||
|
||
(iojs):
|
||
|
||
n io latest Install or activate the latest iojs release
|
||
n io -a x86 latest As above but force 32 bit architecture
|
||
n io <version> Install iojs <version>
|
||
n io use <version> [args ...] Execute iojs <version> with [args ...]
|
||
n io bin <version> Output bin path for <version>
|
||
n io rm <version ...> Remove the given version(s)
|
||
n io --latest Output the latest iojs version available
|
||
n io ls Output the versions of iojs available
|
||
|
||
Options:
|
||
|
||
-V, --version Output current version of n
|
||
-h, --help Display help information
|
||
-q, --quiet Disable curl output (if available)
|
||
-d, --download Download only
|
||
-a, --arch Override system architecture
|
||
|
||
Aliases:
|
||
|
||
which bin
|
||
use as
|
||
list ls
|
||
- rm
|
||
|
||
## 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.
|
||
|
||
Activated nodes are then installed to the prefix _/usr/local_, which of course may be altered via the __N_PREFIX__ environment variable.
|
||
|
||
To alter where `n` operates simply export __N_PREFIX__ to whatever you prefer.
|
||
|
||
## License
|
||
|
||
(The MIT License)
|
||
|
||
Copyright (c) 2014 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
|
||
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|