1 | #!/usr/bin/env bash
|
2 |
|
3 | if [ -f "/usr/bin/node" ]; then
|
4 |
|
5 | echo "Node.js appears to have already been installed - aborting"
|
6 |
|
7 | else
|
8 |
|
9 | VERSION=${1:-12}
|
10 |
|
11 | echo 'Preparing environment'
|
12 |
|
13 | sudo apt-get update
|
14 | sudo apt-get install -y curl
|
15 |
|
16 |
|
17 |
|
18 | echo 'Installing Node.js'
|
19 |
|
20 | cd ~
|
21 |
|
22 | curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.34.0/install.sh | bash
|
23 |
|
24 |
|
25 |
|
26 |
|
27 | export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"
|
28 | [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
|
29 |
|
30 | nvm install $VERSION
|
31 |
|
32 | PLATFORM=$(uname -m)
|
33 |
|
34 | if [[ "$PLATFORM" == "armv"* ]]; then
|
35 |
|
36 | echo "Installing on a Raspbery Pi"
|
37 | else
|
38 |
|
39 |
|
40 |
|
41 | echo "Setting up sudo access to Node.js"
|
42 |
|
43 | sudo ln -s /usr/local/bin/node /usr/bin/node
|
44 | sudo ln -s /usr/local/lib/node /usr/lib/node
|
45 | sudo ln -s /usr/local/bin/npm /usr/bin/npm
|
46 | sudo ln -s /usr/local/bin/node-waf /usr/bin/node-waf
|
47 | n=$(which node);n=${n%/bin/node}; chmod -R 755 $n/bin/*; sudo cp -r $n/{bin,lib,share} /usr/local
|
48 | fi
|
49 |
|
50 | echo 'Node.js has been installed. Check by typing: node -v'
|
51 |
|
52 | fi
|