• Install nodejs 18.x to Linux mint 20.3


    下载文件nodesource.gpg.key,内容如下。

    -----BEGIN PGP PUBLIC KEY BLOCK-----
    Version: GnuPG v1
    Comment: GPGTools - https://gpgtools.org
    
    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
    =CLGF
    -----END PGP PUBLIC KEY BLOCK-----
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52

    安装

    cat nodesource.gpg.key | sudo gpg --dearmor | sudo tee /usr/share/keyrings/nodesource.gpg  >/dev/null
    
    • 1

    修改setup_18.x.sh内容为

    #!/bin/bash
    
    # Discussion, issues and change requests at:
    #   https://github.com/nodesource/distributions
    #
    # Script to install the NodeSource Node.js 18.x repo onto a
    # Debian or Ubuntu system.
    #
    # Run as root or insert `sudo -E` before `bash`:
    #
    # curl -sL https://deb.nodesource.com/setup_18.x | bash -
    #   or
    # wget -qO- https://deb.nodesource.com/setup_18.x | bash -
    #
    # CONTRIBUTIONS TO THIS SCRIPT
    #
    # This script is built from a template in
    # https://github.com/nodesource/distributions/tree/master/deb/src
    # please don't submit pull requests against the built scripts.
    #
    
    
    export DEBIAN_FRONTEND=noninteractive
    SCRSUFFIX="_18.x"
    NODENAME="Node.js 18.x"
    NODEREPO="node_18.x"
    NODEPKG="nodejs"
    
    print_status() {
        echo
        echo "## $1"
        echo
    }
    
    if test -t 1; then # if terminal
        ncolors=$(which tput > /dev/null && tput colors) # supports color
        if test -n "$ncolors" && test $ncolors -ge 8; then
            termcols=$(tput cols)
            bold="$(tput bold)"
            underline="$(tput smul)"
            standout="$(tput smso)"
            normal="$(tput sgr0)"
            black="$(tput setaf 0)"
            red="$(tput setaf 1)"
            green="$(tput setaf 2)"
            yellow="$(tput setaf 3)"
            blue="$(tput setaf 4)"
            magenta="$(tput setaf 5)"
            cyan="$(tput setaf 6)"
            white="$(tput setaf 7)"
        fi
    fi
    
    print_bold() {
        title="$1"
        text="$2"
    
        echo
        echo "${red}================================================================================${normal}"
        echo "${red}================================================================================${normal}"
        echo
        echo -e "  ${bold}${yellow}${title}${normal}"
        echo
        echo -en "  ${text}"
        echo
        echo "${red}================================================================================${normal}"
        echo "${red}================================================================================${normal}"
    }
    
    bail() {
        echo 'Error executing command, exiting'
        exit 1
    }
    
    exec_cmd_nobail() {
        echo "+ $1"
        bash -c "$1"
    }
    
    exec_cmd() {
        exec_cmd_nobail "$1" || bail
    }
    
    node_deprecation_warning() {
        if [[ "X${NODENAME}" == "Xio.js 1.x" ||
              "X${NODENAME}" == "Xio.js 2.x" ||
              "X${NODENAME}" == "Xio.js 3.x" ||
              "X${NODENAME}" == "XNode.js 0.10" ||
              "X${NODENAME}" == "XNode.js 0.12" ||
              "X${NODENAME}" == "XNode.js 4.x LTS Argon" ||
              "X${NODENAME}" == "XNode.js 5.x" ||
              "X${NODENAME}" == "XNode.js 6.x LTS Boron" ||
              "X${NODENAME}" == "XNode.js 7.x" ||
              "X${NODENAME}" == "XNode.js 8.x LTS Carbon" ||
              "X${NODENAME}" == "XNode.js 9.x" ||
              "X${NODENAME}" == "XNode.js 10.x" ||
              "X${NODENAME}" == "XNode.js 11.x" || 
              "X${NODENAME}" == "XNode.js 12.x" ||
              "X${NODENAME}" == "XNode.js 13.x" ||
              "X${NODENAME}" == "XNode.js 15.x" ||
              "X${NODENAME}" == "XNode.js 17.x" ]]; then
    
            print_bold \
    "                            DEPRECATION WARNING                            " "\
    ${bold}${NODENAME} is no longer actively supported!${normal}
    
      ${bold}You will not receive security or critical stability updates${normal} for this version.
    
      You should migrate to a supported version of Node.js as soon as possible.
      Use the installation script that corresponds to the version of Node.js you
      wish to install. e.g.
    
       * ${green}https://deb.nodesource.com/setup_14.x — Node.js 14 LTS \"Fermium\"${normal} (recommended)
       * ${green}https://deb.nodesource.com/setup_16.x — Node.js 16 \"Gallium\"${normal}
       * ${green}https://deb.nodesource.com/setup_18.x — Node.js 18 \"Eighteen\"${normal} (current)
    
      Please see ${bold}https://github.com/nodejs/Release${normal} for details about which
      version may be appropriate for you.
    
      The ${bold}NodeSource${normal} Node.js distributions repository contains
      information both about supported versions of Node.js and supported Linux
      distributions. To learn more about usage, see the repository:
        ${bold}https://github.com/nodesource/distributions${normal}
    "
            echo
            echo "Continuing in 20 seconds ..."
            echo
            sleep 20
        fi
    }
    
    script_deprecation_warning() {
        if [ "X${SCRSUFFIX}" == "X" ]; then
            print_bold \
    "                         SCRIPT DEPRECATION WARNING                         " "\
    This script, located at ${bold}https://deb.nodesource.com/setup${normal}, used to
      install Node.js 0.10, is deprecated and will eventually be made inactive.
    
      You should use the script that corresponds to the version of Node.js you
      wish to install. e.g.
    
       * ${green}https://deb.nodesource.com/setup_14.x — Node.js 14 LTS \"Fermium\"${normal} (recommended)
       * ${green}https://deb.nodesource.com/setup_16.x — Node.js 16 \"Gallium\"${normal}
       * ${green}https://deb.nodesource.com/setup_18.x — Node.js 18 \"Eighteen\"${normal} (current)
    
      Please see ${bold}https://github.com/nodejs/Release${normal} for details about which
      version may be appropriate for you.
    
      The ${bold}NodeSource${normal} Node.js Linux distributions GitHub repository contains
      information about which versions of Node.js and which Linux distributions
      are supported and how to use the install scripts.
        ${bold}https://github.com/nodesource/distributions${normal}
    "
    
            echo
            echo "Continuing in 20 seconds (press Ctrl-C to abort) ..."
            echo
            sleep 20
        fi
    }
    
    setup() {
    
    script_deprecation_warning
    node_deprecation_warning
    
    print_status "Installing the NodeSource ${NODENAME} repo..."
    
    if $(uname -m | grep -Eq ^armv6); then
        print_status "You appear to be running on ARMv6 hardware. Unfortunately this is not currently supported by the NodeSource Linux distributions. Please use the 'linux-armv6l' binary tarballs available directly from nodejs.org for Node.js 4 and later."
        exit 1
    fi
    
    PRE_INSTALL_PKGS=""
    
    # Check that HTTPS transport is available to APT
    # (Check snaked from: https://get.docker.io/ubuntu/)
    
    if [ ! -e /usr/lib/apt/methods/https ]; then
        PRE_INSTALL_PKGS="${PRE_INSTALL_PKGS} apt-transport-https"
    fi
    
    if [ ! -x /usr/bin/lsb_release ]; then
        PRE_INSTALL_PKGS="${PRE_INSTALL_PKGS} lsb-release"
    fi
    
    if [ ! -x /usr/bin/curl ] && [ ! -x /usr/bin/wget ]; then
        PRE_INSTALL_PKGS="${PRE_INSTALL_PKGS} curl"
    fi
    
    # Used by apt-key to add new keys
    
    if [ ! -x /usr/bin/gpg ]; then
        PRE_INSTALL_PKGS="${PRE_INSTALL_PKGS} gnupg"
    fi
    
    # Populating Cache
    print_status "Populating apt-get cache..."
    exec_cmd 'apt-get update'
    
    if [ "X${PRE_INSTALL_PKGS}" != "X" ]; then
        print_status "Installing packages required for setup:${PRE_INSTALL_PKGS}..."
        # This next command needs to be redirected to /dev/null or the script will bork
        # in some environments
        exec_cmd "apt-get install -y${PRE_INSTALL_PKGS} > /dev/null 2>&1"
    fi
    
    IS_PRERELEASE=$(lsb_release -d | grep 'Ubuntu .*development' >& /dev/null; echo $?)
    if [[ $IS_PRERELEASE -eq 0 ]]; then
        print_status "Your distribution, identified as \"$(lsb_release -d -s)\", is a pre-release version of Ubuntu. NodeSource does not maintain official support for Ubuntu versions until they are formally released. You can try using the manual installation instructions available at https://github.com/nodesource/distributions and use the latest supported Ubuntu version name as the distribution identifier, although this is not guaranteed to work."
        exit 1
    fi
    
    DISTRO=$(lsb_release -c -s)
    
    check_alt() {
        if [ "X${DISTRO}" == "X${2}" ]; then
            echo
            echo "## You seem to be using ${1} version ${DISTRO}."
            echo "## This maps to ${3} \"${4}\"... Adjusting for you..."
            DISTRO="${4}"
        fi
    }
    
    check_alt "SolydXK"       "solydxk-9" "Debian" "stretch"
    check_alt "Kali"          "sana"     "Debian" "jessie"
    check_alt "Kali"          "kali-rolling" "Debian" "bullseye"
    check_alt "Sparky Linux"  "Tyche"    "Debian" "stretch"
    check_alt "Sparky Linux"  "Nibiru"   "Debian" "buster"
    check_alt "Sparky Linux"  "Po-Tolo"   "Debian" "bullseye"
    check_alt "MX Linux 17"   "Horizon"  "Debian" "stretch"
    check_alt "MX Linux 18"   "Continuum" "Debian" "stretch"
    check_alt "MX Linux 19"   "patito feo" "Debian" "buster"
    check_alt "MX Linux 21"   "wildflower" "Debian" "bullseye"
    check_alt "Linux Mint"    "maya"     "Ubuntu" "precise"
    check_alt "Linux Mint"    "qiana"    "Ubuntu" "trusty"
    check_alt "Linux Mint"    "rafaela"  "Ubuntu" "trusty"
    check_alt "Linux Mint"    "rebecca"  "Ubuntu" "trusty"
    check_alt "Linux Mint"    "rosa"     "Ubuntu" "trusty"
    check_alt "Linux Mint"    "sarah"    "Ubuntu" "xenial"
    check_alt "Linux Mint"    "serena"   "Ubuntu" "xenial"
    check_alt "Linux Mint"    "sonya"    "Ubuntu" "xenial"
    check_alt "Linux Mint"    "sylvia"   "Ubuntu" "xenial"
    check_alt "Linux Mint"    "tara"     "Ubuntu" "bionic"
    check_alt "Linux Mint"    "tessa"    "Ubuntu" "bionic"
    check_alt "Linux Mint"    "tina"     "Ubuntu" "bionic"
    check_alt "Linux Mint"    "tricia"   "Ubuntu" "bionic"
    check_alt "Linux Mint"    "ulyana"   "Ubuntu" "focal"
    check_alt "Linux Mint"    "ulyssa"   "Ubuntu" "focal"
    check_alt "Linux Mint"    "uma"      "Ubuntu" "focal"
    check_alt "Linux Mint"    "una"      "Ubuntu" "focal"
    check_alt "Linux Mint"    "vanessa"  "Ubuntu" "jammy"
    check_alt "LMDE"          "betsy"    "Debian" "jessie"
    check_alt "LMDE"          "cindy"    "Debian" "stretch"
    check_alt "LMDE"          "debbie"   "Debian" "buster"
    check_alt "LMDE"          "elsie"    "Debian" "bullseye"
    check_alt "elementaryOS"  "luna"     "Ubuntu" "precise"
    check_alt "elementaryOS"  "freya"    "Ubuntu" "trusty"
    check_alt "elementaryOS"  "loki"     "Ubuntu" "xenial"
    check_alt "elementaryOS"  "juno"     "Ubuntu" "bionic"
    check_alt "elementaryOS"  "hera"     "Ubuntu" "bionic"
    check_alt "elementaryOS"  "odin"     "Ubuntu" "focal"
    check_alt "elementaryOS"  "jolnir"   "Ubuntu" "focal"
    check_alt "Trisquel"      "toutatis" "Ubuntu" "precise"
    check_alt "Trisquel"      "belenos"  "Ubuntu" "trusty"
    check_alt "Trisquel"      "flidas"   "Ubuntu" "xenial"
    check_alt "Trisquel"      "etiona"   "Ubuntu" "bionic"
    check_alt "Uruk GNU/Linux" "lugalbanda" "Ubuntu" "xenial"
    check_alt "BOSS"          "anokha"   "Debian" "wheezy"
    check_alt "BOSS"          "anoop"    "Debian" "jessie"
    check_alt "BOSS"          "drishti"  "Debian" "stretch"
    check_alt "BOSS"          "unnati"   "Debian" "buster"
    check_alt "bunsenlabs"    "bunsen-hydrogen" "Debian" "jessie"
    check_alt "bunsenlabs"    "helium"   "Debian" "stretch"
    check_alt "bunsenlabs"    "lithium"  "Debian" "buster"
    check_alt "Tanglu"        "chromodoris" "Debian" "jessie"
    check_alt "PureOS"        "green"    "Debian" "sid"
    check_alt "PureOS"        "amber"    "Debian" "buster"
    check_alt "PureOS"        "byzantium" "Debian" "bullseye"
    check_alt "Devuan"        "jessie"   "Debian" "jessie"
    check_alt "Devuan"        "ascii"    "Debian" "stretch"
    check_alt "Devuan"        "beowulf"  "Debian" "buster"
    check_alt "Devuan"        "chimaera"  "Debian" "bullseye"
    check_alt "Devuan"        "ceres"    "Debian" "sid"
    check_alt "Deepin"        "panda"    "Debian" "sid"
    check_alt "Deepin"        "unstable" "Debian" "sid"
    check_alt "Deepin"        "stable"   "Debian" "buster"
    check_alt "Pardus"        "onyedi"   "Debian" "stretch"
    check_alt "Liquid Lemur"  "lemur-3"  "Debian" "stretch"
    check_alt "Astra Linux"   "orel"     "Debian" "stretch"
    check_alt "Ubilinux"      "dolcetto" "Debian" "stretch"
    
    if [ "X${DISTRO}" == "Xdebian" ]; then
      print_status "Unknown Debian-based distribution, checking /etc/debian_version..."
      NEWDISTRO=$([ -e /etc/debian_version ] && cut -d/ -f1 < /etc/debian_version)
      if [ "X${NEWDISTRO}" == "X" ]; then
        print_status "Could not determine distribution from /etc/debian_version..."
      else
        DISTRO=$NEWDISTRO
        print_status "Found \"${DISTRO}\" in /etc/debian_version..."
      fi
    fi
    
    print_status "Confirming \"${DISTRO}\" is supported..."
    
    if [ -x /usr/bin/curl ]; then
        exec_cmd_nobail "curl -sLf -o /dev/null 'https://deb.nodesource.com/${NODEREPO}/dists/${DISTRO}/Release'"
        RC=$?
    else
        exec_cmd_nobail "wget -qO /dev/null -o /dev/null 'https://deb.nodesource.com/${NODEREPO}/dists/${DISTRO}/Release'"
        RC=$?
    fi
    
    if [[ $RC != 0 ]]; then
        print_status "Your distribution, identified as \"${DISTRO}\", is not currently supported, please contact NodeSource at https://github.com/nodesource/distributions/issues if you think this is incorrect or would like your distribution to be considered for support"
        exit 1
    fi
    
    if [ -f "/etc/apt/sources.list.d/chris-lea-node_js-$DISTRO.list" ]; then
        print_status 'Removing Launchpad PPA Repository for NodeJS...'
    
        exec_cmd_nobail 'add-apt-repository -y -r ppa:chris-lea/node.js'
        exec_cmd "rm -f /etc/apt/sources.list.d/chris-lea-node_js-${DISTRO}.list"
    fi
    
    print_status 'Adding the NodeSource signing key to your keyring...'
    keyring='/usr/share/keyrings'
    node_key_url="https://deb.nodesource.com/gpgkey/nodesource.gpg.key"
    local_node_key="$keyring/nodesource.gpg"
    
    if [ -x /usr/bin/curl ]; then
        exec_cmd "curl -s $node_key_url | gpg --dearmor | tee $local_node_key >/dev/null"
    else
        exec_cmd "wget -q -O - $node_key_url | gpg --dearmor | tee $local_node_key >/dev/null"
    fi
    
    print_status "Creating apt sources list file for the NodeSource ${NODENAME} repo..."
    
    exec_cmd "echo 'deb [signed-by=$local_node_key] https://deb.nodesource.com/${NODEREPO} ${DISTRO} main' > /etc/apt/sources.list.d/nodesource.list"
    exec_cmd "echo 'deb-src [signed-by=$local_node_key] https://deb.nodesource.com/${NODEREPO} ${DISTRO} main' >> /etc/apt/sources.list.d/nodesource.list"
    
    print_status 'Running `apt-get update` for you...'
    
    exec_cmd 'apt-get update'
    
    yarn_site='https://dl.yarnpkg.com/debian'
    yarn_key_url="$yarn_site/pubkey.gpg"
    local_yarn_key="$keyring/yarnkey.gpg"
    
    print_status """Run \`${bold}sudo apt-get install -y ${NODEPKG}${normal}\` to install ${NODENAME} and npm
    ## You may also need development tools to build native addons:
         sudo apt-get install gcc g++ make
    ## To install the Yarn package manager, run:
         curl -sL $yarn_key_url | gpg --dearmor | sudo tee $local_yarn_key >/dev/null
         echo \"deb [signed-by=$local_yarn_key] $yarn_site stable main\" | sudo tee /etc/apt/sources.list.d/yarn.list
         sudo apt-get update && sudo apt-get install yarn
    """
    
    }
    
    ## Defer setup until we have the complete script
    setup
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88
    • 89
    • 90
    • 91
    • 92
    • 93
    • 94
    • 95
    • 96
    • 97
    • 98
    • 99
    • 100
    • 101
    • 102
    • 103
    • 104
    • 105
    • 106
    • 107
    • 108
    • 109
    • 110
    • 111
    • 112
    • 113
    • 114
    • 115
    • 116
    • 117
    • 118
    • 119
    • 120
    • 121
    • 122
    • 123
    • 124
    • 125
    • 126
    • 127
    • 128
    • 129
    • 130
    • 131
    • 132
    • 133
    • 134
    • 135
    • 136
    • 137
    • 138
    • 139
    • 140
    • 141
    • 142
    • 143
    • 144
    • 145
    • 146
    • 147
    • 148
    • 149
    • 150
    • 151
    • 152
    • 153
    • 154
    • 155
    • 156
    • 157
    • 158
    • 159
    • 160
    • 161
    • 162
    • 163
    • 164
    • 165
    • 166
    • 167
    • 168
    • 169
    • 170
    • 171
    • 172
    • 173
    • 174
    • 175
    • 176
    • 177
    • 178
    • 179
    • 180
    • 181
    • 182
    • 183
    • 184
    • 185
    • 186
    • 187
    • 188
    • 189
    • 190
    • 191
    • 192
    • 193
    • 194
    • 195
    • 196
    • 197
    • 198
    • 199
    • 200
    • 201
    • 202
    • 203
    • 204
    • 205
    • 206
    • 207
    • 208
    • 209
    • 210
    • 211
    • 212
    • 213
    • 214
    • 215
    • 216
    • 217
    • 218
    • 219
    • 220
    • 221
    • 222
    • 223
    • 224
    • 225
    • 226
    • 227
    • 228
    • 229
    • 230
    • 231
    • 232
    • 233
    • 234
    • 235
    • 236
    • 237
    • 238
    • 239
    • 240
    • 241
    • 242
    • 243
    • 244
    • 245
    • 246
    • 247
    • 248
    • 249
    • 250
    • 251
    • 252
    • 253
    • 254
    • 255
    • 256
    • 257
    • 258
    • 259
    • 260
    • 261
    • 262
    • 263
    • 264
    • 265
    • 266
    • 267
    • 268
    • 269
    • 270
    • 271
    • 272
    • 273
    • 274
    • 275
    • 276
    • 277
    • 278
    • 279
    • 280
    • 281
    • 282
    • 283
    • 284
    • 285
    • 286
    • 287
    • 288
    • 289
    • 290
    • 291
    • 292
    • 293
    • 294
    • 295
    • 296
    • 297
    • 298
    • 299
    • 300
    • 301
    • 302
    • 303
    • 304
    • 305
    • 306
    • 307
    • 308
    • 309
    • 310
    • 311
    • 312
    • 313
    • 314
    • 315
    • 316
    • 317
    • 318
    • 319
    • 320
    • 321
    • 322
    • 323
    • 324
    • 325
    • 326
    • 327
    • 328
    • 329
    • 330
    • 331
    • 332
    • 333
    • 334
    • 335
    • 336
    • 337
    • 338
    • 339
    • 340
    • 341
    • 342
    • 343
    • 344
    • 345
    • 346
    • 347
    • 348
    • 349
    • 350
    • 351
    • 352
    • 353
    • 354
    • 355
    • 356
    • 357
    • 358
    • 359
    • 360
    • 361
    • 362

    安装

    cat setup_18.x | sudo -E bash -
    
    • 1

    更新

    apt update
    
    • 1

    安装

    apt install nodejs
    
    • 1
  • 相关阅读:
    经典算法之希尔排序
    jvm07
    【项目总结】C++ 云盘
    Vue3鼠标悬浮个人头像时出现修改头像,点击出现弹框,上传头像使用cropperjs可裁剪预览
    使用springboot2.1版本之后数据库连接需要注意的事项
    Vault-敏感信息保护的一种大胆尝试
    整数除法不用除号
    2022最新版Redis入门到精通(云课堂视频学习笔记)
    集成Activiti-Modeler流程设计器
    负载重组人骨形态发生蛋白2rhBMP-2/富血小板纤维蛋白PRF壳聚糖/丝胶蛋白复合水凝胶的制备方法
  • 原文地址:https://blog.csdn.net/qwfys200/article/details/126266684