How to install a specific version of Node on Ubuntu?

前端 未结 14 667
Happy的楠姐
Happy的楠姐 2020-12-07 12:52

I would like to install NodeJS version 0.8.18 on Ubuntu 12.04. I tried to install the newest version and then reverting to 0.8.18 by using nvm, but when I run m

相关标签:
14条回答
  • 2020-12-07 13:24

    Try this way. This worked me.

    1. wget nodejs.org/dist/v0.10.36/node-v0.10.36-linux-x64.tar.gz(download file)

    2. Go to the directory where the Node.js binary was downloaded to, and then run command i.e, sudo tar -C /usr/local --strip-components 1 -xzf node-v0.10.36-linux-x64.tar.gz to install the Node.js binary package in “/usr/local/”.

    3. You can check:-

      $ node -v
       v0.10.36 
      $ npm -v
       1.4.28
      
    0 讨论(0)
  • 2020-12-07 13:25

    To install a specific version of nodejs in Ubuntu you can use below commands, just specify and replace the version number, for example, node_12.x will fetch the latest of 12.

    curl https://deb.nodesource.com/gpgkey/nodesource.gpg.key | sudo apt-key add -
    sudo apt-add-repository "deb https://deb.nodesource.com/node_7.x $(lsb_release -sc) main"
    sudo apt-get update
    sudo apt-get install nodejs
    
    0 讨论(0)
  • 2020-12-07 13:25

    Here is a list of available builds for debian: https://github.com/nodesource/distributions/tree/master/deb

    For this example, lets assume you want version 14 (LTS at the time of writing)

    We can download this script from github, execute it and install the version of node we want. For security reasons it's a good idea to read the script prior to executing it.

    curl -sL https://raw.githubusercontent.com/nodesource/distributions/master/deb/setup_14.x | bash
    apt-get install -y nodejs # may or may not require sudo based on your setup 
    

    I like this approach because it doesn't require extraneous dependencies like nvm to target specific versions

    If you are building for a different distro or architecture you can find more builds here https://nodejs.org/dist/

    0 讨论(0)
  • 2020-12-07 13:31

    FYI, according to this page in the wiki of the nodejs github repo, Chris Lea's PPA (mentioned in several other answers) has been superseded by the NodeSource distributions as the main way of installing nodejs from source in Ubuntu:

    curl -sL https://deb.nodesource.com/setup | sudo bash -
    sudo apt-get install -y nodejs
    

    This is supported for the three latest (at the time of writing this) LTS versions of Ubuntu: 10.04 (lucid), 12.04 LTS (precise) and 14.04 (trusty).

    I'm not sure this will help in installing an old version of nodejs, but I'm putting this here in case it helps others who needed to install a specific (newer) version of nodejs that isn't included in their distro's repositories.

    0 讨论(0)
  • NOTE: you can use NVM software to do this in a more nodejs fashionway. However i got issues in one machine that didn't let me use NVM. So i have to look for an alternative ;-)

    You can manually download and install.

    go to nodejs > download > other releases http://nodejs.org/dist/

    choose the version you are looking for http://nodejs.org/dist/v0.8.18/

    choose distro files corresponding your environmment and download (take care of 32bits/64bits version). Example: http://nodejs.org/dist/v0.8.18/node-v0.8.18-linux-x64.tar.gz

    Extract files and follow instructions on README.md :

    To build:

    Prerequisites (Unix only):

    * Python 2.6 or 2.7
    * GNU Make 3.81 or newer
    * libexecinfo (FreeBSD and OpenBSD only)
    

    Unix/Macintosh:

    ./configure
    make
    make install
    

    If your python binary is in a non-standard location or has a non-standard name, run the following instead:

    export PYTHON=/path/to/python
    $PYTHON ./configure
    make
    make install
    

    Windows:

    vcbuild.bat
    

    To run the tests:

    Unix/Macintosh:

    make test
    

    Windows:

    vcbuild.bat test
    

    To build the documentation:

    make doc
    

    To read the documentation:

    man doc/node.1
    

    Maybe you want to (must to) move the folder to a more apropiate place like /usr/lib/nodejs/node-v0.8.18/ then create a Symbolic Lynk on /usr/bin to get acces to your install from anywhere.

    sudo mv /extracted/folder/node-v0.8.18 /usr/lib/nodejs/node-v0.8.18
    sudo ln -s /usr/lib/nodejs/node-v0.8.18/bin/node /usr/bin/node
    

    And if you want different release in the same machine you can use debian alternatives. Proceed in the same way posted before to download a second release. For example the latest release.

    http://nodejs.org/dist/latest/ -> http://nodejs.org/dist/latest/node-v0.10.28-linux-x64.tar.gz

    Move to your favorite destination, the same of the rest of release you want to install.

    sudo mv /extracted/folder/node-v0.10.28 /usr/lib/nodejs/node-v0.10.28
    

    Follow instructions of the README.md file. Then update the alternatives, for each release you have dowload install the alternative with.

    sudo update-alternatives    --install genname symlink  altern  priority  [--slave  genname  symlink altern]
              Add a group of alternatives  to  the  system.   genname  is  the
              generic  name  for  the  master link, symlink is the name of its
              symlink  in  the  alternatives  directory,  and  altern  is  the
              alternative being introduced for the master link.  The arguments
              after  --slave  are  the  generic  name,  symlink  name  in  the
              alternatives  directory  and alternative for a slave link.  Zero
              or more --slave options, each followed by three  arguments,  may
              be specified.
    
              If   the   master   symlink  specified  exists  already  in  the
              alternatives system’s records, the information supplied will  be
              added  as a new set of alternatives for the group.  Otherwise, a
              new group, set to  automatic  mode,  will  be  added  with  this
              information.   If  the group is in automatic mode, and the newly
              added alternatives’ priority is higher than any other  installed
              alternatives  for  this  group,  the symlinks will be updated to
              point to the newly added alternatives.
    

    for example:

    sudo update-alternatives --install /usr/bin/node node /usr/lib/nodejs/node-v0.10.28 0 --slave /usr/share/man/man1/node.1.gz node.1.gz /usr/lib/nodejs/node-v0.10.28/share/man/man1/node.1
    

    Then you can use update-alternatives --config node to choose between any number of releases instaled in your machine.

    0 讨论(0)
  • 2020-12-07 13:34

    NVM (Node Version manager)

    https://github.com/nvm-sh/nvm

    Advantages:

    • allows you to use multiple versions of Node and without sudo

    • is analogous to Ruby RVM and Python Virtualenv, widely considered best practice in Ruby and Python communities

    • downloads a pre-compiled binary where possible, and if not it downloads the source and compiles one for you

    Tested in Ubuntu 17.10:

    curl https://raw.githubusercontent.com/creationix/nvm/master/install.sh | sh
    source ~/.nvm/nvm.sh
    nvm install 0.9.0
    nvm install 0.9.9
    nvm use 0.9.0
    node --version
    #v0.9.0
    nvm use 0.9.9
    node --version
    #v0.9.9
    

    For the particular case of the most recent long term support version (recommended if you can choose):

    nvm install --lts
    nvm use --lts
    npm --version
    npm install --global vaca
    vaca
    

    Since the sourcing has to be done for every new shell, the install script hacks adds some auto sourcing to the end of your .barshrc. That works, but I prefer to remove the auto-added one and add my own:

    f="$HOME/.nvm/nvm.sh"
    if [ -r "$f" ]; then
      . "$f" &>'/dev/null'
      nvm use --lts &>'/dev/null'
    fi
    

    With this setup, you get for example:

    which node
    

    gives:

    /home/ciro/.nvm/versions/node/v0.9.0/bin/node
    

    and:

    which vaca
    

    gives:

    /home/ciro/.nvm/versions/node/v0.9.0/bin/vaca
    

    and if we want to use the globally installed module:

    npm link vaca
    node -e 'console.log(require.resolve("vaca"))'
    

    gives:

    /home/ciro/.nvm/versions/node/v0.9.0/lib/node_modules/vaca/index.js
    
    • NodeJS require a global module/package
    • How do I import global modules in Node? I get "Error: Cannot find module <module>"?

    so we see that everything is completely contained inside the specific node version.

    0 讨论(0)
提交回复
热议问题