AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / unix / Perguntas / 787053
Accepted
Z0q
Z0q
Asked: 2024-11-23 00:00:04 +0800 CST2024-11-23 00:00:04 +0800 CST 2024-11-23 00:00:04 +0800 CST

Como executar o node v20.x no CentOs 7.9?

  • 772

Estou preso nessa questão há muito tempo. Basicamente, tenho um aplicativo node v20.x que gostaria de executar em um servidor CentOS 7.9. Por motivos, não queremos atualizar o SO agora, mas tenho certeza de que deve haver uma maneira de executar o node v20?

Criei e instalei o GCC 10.3 a partir do código-fonte, que li ser necessário para o nó 20, mas ainda está apresentando erros.

Estes são os erros que tenho atualmente ao executarnode .

node .
node: /lib64/libm.so.6: version `GLIBC_2.27' not found (required by node)
node: /lib64/libc.so.6: version `GLIBC_2.28' not found (required by node)
node: /lib64/libc.so.6: version `GLIBC_2.25' not found (required by node)

node: /lib64/libstdc++.so.6: version GLIBCXX_3.4.20 not found (required by node) node: /lib64/libstdc++.so.6: version CXXABI_1.3.9 not found (required by node) node: /lib64/libstdc++.so.6: version GLIBCXX_3.4.21 not found (required by node)

Isso seria possível? E como devo proceder?

Além disso, tomo cuidado para não interromper o servidor apache/mysql em execução nesse meio tempo.

Li que atualizar o glibc no CentOS 7 pode ser extremamente perigoso, tornando o sistema impossível de inicializar?

Não existe realmente uma maneira segura de contornar isso?

centos
  • 2 2 respostas
  • 80 Views

2 respostas

  • Voted
  1. Best Answer
    Z0q
    2024-11-24T10:18:41+08:002024-11-24T10:18:41+08:00

    Decidi contornar esse problema usando o Docker.

    Na verdade, serve muito bem no meu caso!

    • 0
  2. n0099
    2024-12-24T23:05:51+08:002024-12-24T23:05:51+08:00

    Tomando a versão LTS atual do node@^22que requer [email protected]como node@^18exemplo:

    # https://gist.github.com/mohanpedala/1e2ff5661761d3abd0385e8223e16425
    # https://mywiki.wooledge.org/BashFAQ/105
    set -euxo pipefail
    
    wget https://github.com/NixOS/patchelf/releases/download/0.18.0/patchelf-0.18.0-x86_64.tar.gz
    tar xzvf patchelf-0.18.0-x86_64.tar.gz
    
    wget https://ftp.gnu.org/gnu/glibc/glibc-2.28.tar.xz
    tar xvf glibc-2.28.tar.xz
    
    yum install centos-release-scl
    yum install devtoolset-8-{gcc,make}
    scl enable devtoolset-8 bash # enter subshell
        which gcc
        gcc --version
    
        cd glibc-2.28
        mkdir build
        cd build
    
        ../configure --prefix=/opt/glibc-2.28
        make -j"$(nproc)"
        make install
    exit # exit subshell
    
    wget https://nodejs.org/download/release/v22.12.0/node-v22.12.0-linux-x64.tar.xz
    tar xvf node-v22.12.0-linux-x64.tar.xz
    cd node-v22.12.0-linux-x64/bin
    
    # https://serverfault.com/questions/894625/safely-upgrade-glibc-on-centos-7/894689#894689
    ~/patchelf/bin/patchelf --set-interpreter /opt/glibc-2.28/lib/ld-linux-x86-64.so.2 node
    ~/patchelf/bin/patchelf --set-rpath /opt/glibc-2.28/lib:/usr/lib64 node
    
    # https://unix.stackexchange.com/questions/440039/install-libstdc-4-9-x-from-source-but-compiled-with-glibc-2-14
    # https://stackoverflow.com/questions/47175706/how-to-install-gcc-4-9-2-on-rhel-7-4/47189915#47189915
    # https://drive.google.com/file/d/1t4WrgvpEP-6_NN3qMJhz9MS3CJhHrHKc/view
    # extract the path `gcc63-c++-6.3.0-1.el7.x86_64.cpio\.\usr\local\gcc63\lib64\libstdc++.so.6.0.22` from `gcc63-c++-6.3.0-1.el7.x86_64.rpm` and store it under `/opt/glibc-2.28/lib/libstdc++.so.6.0.22`
    ln -s /opt/glibc-2.28/lib/libstdc++.so.6{.0.22,}
    
    ./node
    

    Esta abordagem é semelhante a https://stackoverflow.com/questions/72921215/getting-glibc-2-28-not-found/77247394#77247394 mas paraCentOS@^7

    • 0

relate perguntas

  • smartmontools - O teste automático é o mesmo que executar um teste curto?

  • comando systemctl não funciona no RHEL 6

  • Por que meu switch não está obtendo um endereço do pool especificado

  • Criando menus personalizados na guia do menu Aplicativos no CentOS7 GNOME

  • Roteador estranho funciona com centos 6 [fechado]

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Possível firmware ausente /lib/firmware/i915/* para o módulo i915

    • 3 respostas
  • Marko Smith

    Falha ao buscar o repositório de backports jessie

    • 4 respostas
  • Marko Smith

    Como exportar uma chave privada GPG e uma chave pública para um arquivo

    • 4 respostas
  • Marko Smith

    Como podemos executar um comando armazenado em uma variável?

    • 5 respostas
  • Marko Smith

    Como configurar o systemd-resolved e o systemd-networkd para usar o servidor DNS local para resolver domínios locais e o servidor DNS remoto para domínios remotos?

    • 3 respostas
  • Marko Smith

    apt-get update error no Kali Linux após a atualização do dist [duplicado]

    • 2 respostas
  • Marko Smith

    Como ver as últimas linhas x do log de serviço systemctl

    • 5 respostas
  • Marko Smith

    Nano - pule para o final do arquivo

    • 8 respostas
  • Marko Smith

    erro grub: você precisa carregar o kernel primeiro

    • 4 respostas
  • Marko Smith

    Como baixar o pacote não instalá-lo com o comando apt-get?

    • 7 respostas
  • Martin Hope
    user12345 Falha ao buscar o repositório de backports jessie 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl Por que a maioria dos exemplos do systemd contém WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky Como exportar uma chave privada GPG e uma chave pública para um arquivo 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll status systemctl mostra: "Estado: degradado" 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim Como podemos executar um comando armazenado em uma variável? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S Por que /dev/null é um arquivo? Por que sua função não é implementada como um programa simples? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 Como ver as últimas linhas x do log de serviço systemctl 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - pule para o final do arquivo 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla Por que verdadeiro e falso são tão grandes? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis Substitua a string em um arquivo de texto enorme (70 GB), uma linha 2017-12-30 06:58:33 +0800 CST

Hot tag

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve