0


Centos7 安装NVM【安装node、安装教程】

1.编辑安装脚本

vim install.sh

这里为了防止无法访问到github,这里特地将安装脚本复制过来了

对应网站:raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh

#!/usr/bin/env bash{# this ensures the entire script is downloaded #nvm_has(){type"$1"> /dev/null 2>&1}nvm_echo(){commandprintf %s\\n "$*"2>/dev/null
}nvm_grep(){GREP_OPTIONS=''commandgrep"$@"}nvm_default_install_dir(){[ -z "${XDG_CONFIG_HOME-}"]&&printf %s "${HOME}/.nvm"||printf %s "${XDG_CONFIG_HOME}/nvm"}nvm_install_dir(){if[ -n "$NVM_DIR"];thenprintf %s "${NVM_DIR}"else
    nvm_default_install_dir
  fi}nvm_latest_version(){
  nvm_echo "v0.38.0"}nvm_profile_is_bash_or_zsh(){local TEST_PROFILE
  TEST_PROFILE="${1-}"case"${TEST_PROFILE-}"in
    *"/.bashrc"| *"/.bash_profile"| *"/.zshrc")return;;
    *)return1;;esac}## Outputs the location to NVM depending on:# * The availability of $NVM_SOURCE# * The method used ("script" or "git" in the script, defaults to "git")# NVM_SOURCE always takes precedence unless the method is "script-nvm-exec"#nvm_source(){local NVM_GITHUB_REPO
  NVM_GITHUB_REPO="${NVM_INSTALL_GITHUB_REPO:-nvm-sh/nvm}"local NVM_VERSION
  NVM_VERSION="${NVM_INSTALL_VERSION:-$(nvm_latest_version)}"local NVM_METHOD
  NVM_METHOD="$1"local NVM_SOURCE_URL
  NVM_SOURCE_URL="$NVM_SOURCE"if["_$NVM_METHOD"="_script-nvm-exec"];thenNVM_SOURCE_URL="https://raw.githubusercontent.com/${NVM_GITHUB_REPO}/${NVM_VERSION}/nvm-exec"elif["_$NVM_METHOD"="_script-nvm-bash-completion"];thenNVM_SOURCE_URL="https://raw.githubusercontent.com/${NVM_GITHUB_REPO}/${NVM_VERSION}/bash_completion"elif[ -z "$NVM_SOURCE_URL"];thenif["_$NVM_METHOD"="_script"];thenNVM_SOURCE_URL="https://raw.githubusercontent.com/${NVM_GITHUB_REPO}/${NVM_VERSION}/nvm.sh"elif["_$NVM_METHOD"="_git"]||[ -z "$NVM_METHOD"];thenNVM_SOURCE_URL="https://github.com/${NVM_GITHUB_REPO}.git"else
      nvm_echo >&2"Unexpected value \"$NVM_METHOD\" for \$NVM_METHOD"return1fifi
  nvm_echo "$NVM_SOURCE_URL"}## Node.js version to install#nvm_node_version(){
  nvm_echo "$NODE_VERSION"}nvm_download(){if nvm_has "curl";thencurl --fail --compressed -q "$@"elif nvm_has "wget";then# Emulate curl with wgetARGS=$(nvm_echo "$@"|commandsed -e 's/--progress-bar /--progress=bar /'\
                            -e 's/--compressed //'\
                            -e 's/--fail //'\
                            -e 's/-L //'\
                            -e 's/-I /--server-response /'\
                            -e 's/-s /-q /'\
                            -e 's/-sS /-nv /'\
                            -e 's/-o /-O /'\
                            -e 's/-C - /-c /')# shellcheck disable=SC2086evalwget$ARGSfi}install_nvm_from_git(){local INSTALL_DIR
  INSTALL_DIR="$(nvm_install_dir)"local NVM_VERSION
  NVM_VERSION="${NVM_INSTALL_VERSION:-$(nvm_latest_version)}"if[ -n "${NVM_INSTALL_VERSION:-}"];then# Check if version is an existing refifcommandgit ls-remote "$(nvm_source "git")""$NVM_VERSION"| nvm_grep -q "$NVM_VERSION";then:# Check if version is an existing changesetelif! nvm_download -o /dev/null "$(nvm_source "script-nvm-exec")";then
      nvm_echo >&2"Failed to find '$NVM_VERSION' version."exit1fifilocal fetch_error
  if[ -d "$INSTALL_DIR/.git"];then# Updating repo
    nvm_echo "=> nvm is already installed in $INSTALL_DIR, trying to update using git"commandprintf'\r=> 'fetch_error="Failed to update nvm with $NVM_VERSION, run 'git fetch' in $INSTALL_DIR yourself."elsefetch_error="Failed to fetch origin with $NVM_VERSION. Please report this!"
    nvm_echo "=> Downloading nvm from git to '$INSTALL_DIR'"commandprintf'\r=> 'mkdir -p "${INSTALL_DIR}"if["$(ls -A "${INSTALL_DIR}")"];then# Initializing repocommandgit init "${INSTALL_DIR}"||{
        nvm_echo >&2'Failed to initialize nvm repo. Please report this!'exit2}commandgit --git-dir="${INSTALL_DIR}/.git" remote add origin "$(nvm_source)"2> /dev/null \||commandgit --git-dir="${INSTALL_DIR}/.git" remote set-url origin "$(nvm_source)"||{
        nvm_echo >&2'Failed to add remote "origin" (or set the URL). Please report this!'exit2}else# Cloning repocommandgit clone "$(nvm_source)" --depth=1"${INSTALL_DIR}"||{
        nvm_echo >&2'Failed to clone nvm repo. Please report this!'exit2}fifi# Try to fetch tagifcommandgit --git-dir="$INSTALL_DIR"/.git --work-tree="$INSTALL_DIR" fetch origin tag "$NVM_VERSION" --depth=12>/dev/null;then:# Fetch given versionelif!commandgit --git-dir="$INSTALL_DIR"/.git --work-tree="$INSTALL_DIR" fetch origin "$NVM_VERSION" --depth=1;then
    nvm_echo >&2"$fetch_error"exit1ficommandgit -c advice.detachedHead=false --git-dir="$INSTALL_DIR"/.git --work-tree="$INSTALL_DIR" checkout -f --quiet FETCH_HEAD ||{
    nvm_echo >&2"Failed to checkout the given version $NVM_VERSION. Please report this!"exit2}if[ -n "$(commandgit --git-dir="$INSTALL_DIR"/.git --work-tree="$INSTALL_DIR" show-ref refs/heads/master)"];thenifcommandgit --git-dir="$INSTALL_DIR"/.git --work-tree="$INSTALL_DIR" branch --quiet 2>/dev/null;thencommandgit --git-dir="$INSTALL_DIR"/.git --work-tree="$INSTALL_DIR" branch --quiet -D master >/dev/null 2>&1else
      nvm_echo >&2"Your version of git is out of date. Please update it!"commandgit --git-dir="$INSTALL_DIR"/.git --work-tree="$INSTALL_DIR" branch -D master >/dev/null 2>&1fifi

  nvm_echo "=> Compressing and cleaning up git repository"if!commandgit --git-dir="$INSTALL_DIR"/.git --work-tree="$INSTALL_DIR" reflog expire --expire=now --all;then
    nvm_echo >&2"Your version of git is out of date. Please update it!"fiif!commandgit --git-dir="$INSTALL_DIR"/.git --work-tree="$INSTALL_DIR" gc --auto --aggressive --prune=now ;then
    nvm_echo >&2"Your version of git is out of date. Please update it!"fireturn}## Automatically install Node.js#nvm_install_node(){local NODE_VERSION_LOCAL
  NODE_VERSION_LOCAL="$(nvm_node_version)"if[ -z "$NODE_VERSION_LOCAL"];thenreturn0fi

  nvm_echo "=> Installing Node.js version $NODE_VERSION_LOCAL"
  nvm install"$NODE_VERSION_LOCAL"local CURRENT_NVM_NODE

  CURRENT_NVM_NODE="$(nvm_version current)"if["$(nvm_version "$NODE_VERSION_LOCAL")"=="$CURRENT_NVM_NODE"];then
    nvm_echo "=> Node.js version $NODE_VERSION_LOCAL has been successfully installed"else
    nvm_echo >&2"Failed to install Node.js $NODE_VERSION_LOCAL"fi}install_nvm_as_script(){local INSTALL_DIR
  INSTALL_DIR="$(nvm_install_dir)"local NVM_SOURCE_LOCAL
  NVM_SOURCE_LOCAL="$(nvm_source script)"local NVM_EXEC_SOURCE
  NVM_EXEC_SOURCE="$(nvm_source script-nvm-exec)"local NVM_BASH_COMPLETION_SOURCE
  NVM_BASH_COMPLETION_SOURCE="$(nvm_source script-nvm-bash-completion)"# Downloading to $INSTALL_DIRmkdir -p "$INSTALL_DIR"if[ -f "$INSTALL_DIR/nvm.sh"];then
    nvm_echo "=> nvm is already installed in $INSTALL_DIR, trying to update the script"else
    nvm_echo "=> Downloading nvm as script to '$INSTALL_DIR'"fi
  nvm_download -s "$NVM_SOURCE_LOCAL" -o "$INSTALL_DIR/nvm.sh"||{
    nvm_echo >&2"Failed to download '$NVM_SOURCE_LOCAL'"return1}&
  nvm_download -s "$NVM_EXEC_SOURCE" -o "$INSTALL_DIR/nvm-exec"||{
    nvm_echo >&2"Failed to download '$NVM_EXEC_SOURCE'"return2}&
  nvm_download -s "$NVM_BASH_COMPLETION_SOURCE" -o "$INSTALL_DIR/bash_completion"||{
    nvm_echo >&2"Failed to download '$NVM_BASH_COMPLETION_SOURCE'"return2}&forjobin$(jobs -p |commandsort)dowait"$job"||return$?donechmod a+x "$INSTALL_DIR/nvm-exec"||{
    nvm_echo >&2"Failed to mark '$INSTALL_DIR/nvm-exec' as executable"return3}}nvm_try_profile(){if[ -z "${1-}"]||[! -f "${1}"];thenreturn1fi
  nvm_echo "${1}"}## Detect profile file if not specified as environment variable# (eg: PROFILE=~/.myprofile)# The echo'ed path is guaranteed to be an existing file# Otherwise, an empty string is returned#nvm_detect_profile(){if["${PROFILE-}"='/dev/null'];then# the user has specifically requested NOT to have nvm touch their profilereturnfiif[ -n "${PROFILE}"]&&[ -f "${PROFILE}"];then
    nvm_echo "${PROFILE}"returnfilocal DETECTED_PROFILE
  DETECTED_PROFILE=''if[ -n "${BASH_VERSION-}"];thenif[ -f "$HOME/.bashrc"];thenDETECTED_PROFILE="$HOME/.bashrc"elif[ -f "$HOME/.bash_profile"];thenDETECTED_PROFILE="$HOME/.bash_profile"fielif[ -n "${ZSH_VERSION-}"];thenDETECTED_PROFILE="$HOME/.zshrc"fiif[ -z "$DETECTED_PROFILE"];thenforEACH_PROFILEin".profile"".bashrc"".bash_profile"".zshrc"doifDETECTED_PROFILE="$(nvm_try_profile "${HOME}/${EACH_PROFILE}")";thenbreakfidonefiif[ -n "$DETECTED_PROFILE"];then
    nvm_echo "$DETECTED_PROFILE"fi}## Check whether the user has any globally-installed npm modules in their system# Node, and warn them if so.#nvm_check_global_modules(){local NPM_COMMAND
  NPM_COMMAND="$(command -v npm2>/dev/null)"||return0[ -n "${NVM_DIR}"]&&[ -z "${NPM_COMMAND%%$NVM_DIR/*}"]&&return0local NPM_VERSION
  NPM_VERSION="$(npm --version)"NPM_VERSION="${NPM_VERSION:--1}"["${NPM_VERSION%%[!-0-9]*}" -gt 0]||return0local NPM_GLOBAL_MODULES
  NPM_GLOBAL_MODULES="$(npm list -g --depth=0|commandsed -e '/ npm@/d' -e '/ (empty)$/d')"local MODULE_COUNT
  MODULE_COUNT="$(commandprintf %s\\n "$NPM_GLOBAL_MODULES"|commandsed -ne '1!p'|# Remove the first linewc -l |commandtr -d ' '# Count entries)"if["${MODULE_COUNT}"!='0'];then# shellcheck disable=SC2016
    nvm_echo '=> You currently have modules installed globally with `npm`. These will no'# shellcheck disable=SC2016
    nvm_echo '=> longer be linked to the active version of Node when you install a new node'# shellcheck disable=SC2016
    nvm_echo '=> with `nvm`; and they may (depending on how you construct your `$PATH`)'# shellcheck disable=SC2016
    nvm_echo '=> override the binaries of modules installed with `nvm`:'
    nvm_echo

    commandprintf %s\\n "$NPM_GLOBAL_MODULES"
    nvm_echo '=> If you wish to uninstall them at a later point (or re-install them under your'# shellcheck disable=SC2016
    nvm_echo '=> `nvm` Nodes), you can remove them from the system Node as follows:'
    nvm_echo
    nvm_echo '     $ nvm use system'
    nvm_echo '     $ npm uninstall -g a_module'
    nvm_echo
  fi}nvm_do_install(){if[ -n "${NVM_DIR-}"]&&![ -d "${NVM_DIR}"];thenif[ -e "${NVM_DIR}"];then
      nvm_echo >&2"File \"${NVM_DIR}\" has the same name as installation directory."exit1fiif["${NVM_DIR}"="$(nvm_default_install_dir)"];thenmkdir"${NVM_DIR}"else
      nvm_echo >&2"You have \$NVM_DIR set to \"${NVM_DIR}\", but that directory does not exist. Check your profile files and environment."exit1fifiif[ -z "${METHOD}"];then# Autodetect install methodif nvm_has git;then
      install_nvm_from_git
    elif nvm_has nvm_download;then
      install_nvm_as_script
    else
      nvm_echo >&2'You need git, curl, or wget to install nvm'exit1fielif["${METHOD}"='git'];thenif! nvm_has git;then
      nvm_echo >&2"You need git to install nvm"exit1fi
    install_nvm_from_git
  elif["${METHOD}"='script'];thenif! nvm_has nvm_download;then
      nvm_echo >&2"You need curl or wget to install nvm"exit1fi
    install_nvm_as_script
  else
    nvm_echo >&2"The environment variable \$METHOD is set to \"${METHOD}\", which is not recognized as a valid installation method."exit1fi

  nvm_echo

  local NVM_PROFILE
  NVM_PROFILE="$(nvm_detect_profile)"local PROFILE_INSTALL_DIR
  PROFILE_INSTALL_DIR="$(nvm_install_dir |commandsed"s:^$HOME:\$HOME:")"SOURCE_STR="\\nexport NVM_DIR=\"${PROFILE_INSTALL_DIR}\"\\n[ -s \"\$NVM_DIR/nvm.sh\" ] && \\. \"\$NVM_DIR/nvm.sh\"  # This loads nvm\\n"# shellcheck disable=SC2016COMPLETION_STR='[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"  # This loads nvm bash_completion\n'BASH_OR_ZSH=false

  if[ -z "${NVM_PROFILE-}"];thenlocal TRIED_PROFILE
    if[ -n "${PROFILE}"];thenTRIED_PROFILE="${NVM_PROFILE} (as defined in \$PROFILE), "fi
    nvm_echo "=> Profile not found. Tried ${TRIED_PROFILE-}~/.bashrc, ~/.bash_profile, ~/.zshrc, and ~/.profile."
    nvm_echo "=> Create one of them and run this script again"
    nvm_echo "   OR"
    nvm_echo "=> Append the following lines to the correct file yourself:"commandprintf"${SOURCE_STR}"
    nvm_echo
  elseif nvm_profile_is_bash_or_zsh "${NVM_PROFILE-}";thenBASH_OR_ZSH=true
    fiif!commandgrep -qc '/nvm.sh'"$NVM_PROFILE";then
      nvm_echo "=> Appending nvm source string to $NVM_PROFILE"commandprintf"${SOURCE_STR}">>"$NVM_PROFILE"else
      nvm_echo "=> nvm source string already in ${NVM_PROFILE}"fi# shellcheck disable=SC2016if${BASH_OR_ZSH}&&!commandgrep -qc '$NVM_DIR/bash_completion'"$NVM_PROFILE";then
      nvm_echo "=> Appending bash_completion source string to $NVM_PROFILE"commandprintf"$COMPLETION_STR">>"$NVM_PROFILE"else
      nvm_echo "=> bash_completion source string already in ${NVM_PROFILE}"fifiif${BASH_OR_ZSH}&&[ -z "${NVM_PROFILE-}"];then
    nvm_echo "=> Please also append the following lines to the if you are using bash/zsh shell:"commandprintf"${COMPLETION_STR}"fi# Source nvm# shellcheck source=/dev/null\. "$(nvm_install_dir)/nvm.sh"

  nvm_check_global_modules

  nvm_install_node

  nvm_reset

  nvm_echo "=> Close and reopen your terminal to start using nvm or run the following to use it now:"commandprintf"${SOURCE_STR}"if${BASH_OR_ZSH};thencommandprintf"${COMPLETION_STR}"fi}## Unsets the various functions defined# during the execution of the install script#nvm_reset(){unset -f nvm_has nvm_install_dir nvm_latest_version nvm_profile_is_bash_or_zsh \
    nvm_source nvm_node_version nvm_download install_nvm_from_git nvm_install_node \
    install_nvm_as_script nvm_try_profile nvm_detect_profile nvm_check_global_modules \
    nvm_do_install nvm_reset nvm_default_install_dir nvm_grep
}["_$NVM_ENV"="_testing"]|| nvm_do_install

}# this ensures the entire script is downloaded #

2.添加执行权限

chmod +x install.sh

3.执行脚本

./install.sh

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gestTK7z-1682134540628)(assets/image-20230422113422-0byeija.png)]

4.查询脚本

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dfSnVbpj-1682134540629)(assets/image-20230422113449-qesq9h7.png)]

安装安装后,可能需要重置一下bash

source ~/.bashrc

查询nvm是否安装成功

nvm --version

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rOyCux1o-1682134540629)(assets/image-20230422113526-kiym7z1.png)]

5.查询当前可用的node版本

nvm ls-remote

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Q708ehE2-1682134813105)(assets/image-20230422113756-n6mm5o7.png)]

6.安装版本

选择你需要安装的版本

nvm install<version>

在这里插入图片描述

7.查询node是否安装成功

node --version

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BiVPFOCZ-1682134813106)(assets/image-20230422113948-kie90rx.png)]

标签: centos git linux

本文转载自: https://blog.csdn.net/qq_22841387/article/details/130302631
版权归原作者 修炼室 所有, 如有侵权,请联系我们删除。

“Centos7 安装NVM【安装node、安装教程】”的评论:

还没有评论