Compartilhamento de tecnologia

Instale o Linux CENTOS 07 em uma máquina virtual e implante o NET8.

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Primeiro baixe a imagem centos07. Recomenda-se usar o endereço recomendado pelo Alibaba Cloud:

https://mirrors.aliyun.com/centos/7.9.2009/isos/x86_64/?spm=a2c6h.25603864.0.0.59b5f5ad5Nfr0X

Na verdade, o primeiro poço já apareceu aqui.

O libstdc++.so do centos 07 /usr/lib64/ suporta apenas a versão 19;

GLIBCXX estará faltando em todas as versões após 3.4.20

Um erro será relatado quando o net 8 for executado, pois requer GLIBCXX_3.4.20 e GLIBCXX_3.4.21 (na verdade, NET8 não suporta CENTOS 07, insistimos nisso)

  1. dotnet: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by dotnet)
  2. dotnet: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by dotnet)

Agora que encontramos e resolvemos o problema, se usarmos uma versão superior do centos desde o início, esses problemas podem ser evitados diretamente? Claro, isso é uma história para mais tarde. o pit.

A propósito, o processo de download e instalação é omitido, o seguinte código de ativação VM17 é fornecido;

激活码:JU090-6039P-08409-8J0QH-2YR7F

Configure a rede primeiro

No editor, clique em Preferências, selecione sua máquina virtual na tabela e restaure as configurações padrão

Explique que você precisa baixar o pacote de ambiente por meio do comando WGET posteriormente, e então a linha de comando irá avisar que a rede não é permitida, finalmente, o Baidu fez algumas pesquisas e esta operação é suficiente;

Crie uma nova pasta dotnet em /home e baixe o SDK do NET 8 e o tempo de execução (na verdade, basta instalar um deles. Vi que outros instalaram o tempo de execução, então optei por instalar o SDK. O SDK net8 inclui o tempo de execução)

  1. 虚拟机拖拽命令
  2. systemctl enable run-vmblock\x2dfuse.mount # 开机自启
  3. systemctl start run-vmblock\x2dfuse.mount # 启动服务
  4. sdk 下载地址
  5. wget https://download.visualstudio.microsoft.com/download/pr/dd6ee0c0-6287-4fca-85d0-1023fc52444b/874148c23613c594fc8f711fc0330298/dotnet-sdk-8.0.302-linux-x64.tar.gz
  6. runtime 下载地址
  7. wget https://download.visualstudio.microsoft.com/download/pr/ce31d92b-b514-4f9c-843b-29c466871369/b332eba5641cbc6eed1e3a98480972d2/aspnetcore-runtime-8.0.6-linux-x64.tar.gz

  1. 解压路径
  2. mkdir dotnet
  3. mkdir -p $HOME/dotnet && tar zxf dotnet-sdk-8.0.302-linux-x64.tar.gz -C $HOME/dotnet
  4. export DOTNET_ROOT=$HOME/dotnet
  5. export PATH=$PATH:$HOME/dotnet
  6. 保存到环境变量
  7. echo 'export PATH=$PATH:$HOME/dotnet' >> ~/.bashrc
  8. echo 'export DOTNET_ROOT=$HOME/dotnet' >> ~/.bashrc
  9. source ~/.bashrc
  10. dotnet --version
  11. dotnet --info

Neste momento, você deverá receber um erro ao executar dotnet --version.

Foi quando comecei a ter problemas

Postagens online dizem para usar o yum para atualizar o libstdc.so. O que mais pode ser feito para compilar uma nova versão do GCC? ? ? ? ? ? ? ? ? ? ? ? ? ?

Apenas segui as instruções por muito tempo e falhei muitas vezes, desconfiei da minha vida muitas vezes quase tentei baixar a versão centos 07+, ou tentei fazer o downgrade do NET8, baguncei o sistema e reinstalei várias vezes; . (Felizmente, é uma máquina virtual, então é muito rápida)

Talvez seja porque as versões dos antigos são diferentes das minhas, então não funcionou! ! ! ! !

  1. 其实就是下载一个libstdc++.so.6.0.26 放到 usr/lib64下,
  2. 然后做一个软连接所有访问libstdc++.so.6指向libstdc++.so.6.0.26

Apenas segui as instruções por muito tempo e falhei muitas vezes, desconfiei da minha vida muitas vezes quase tentei baixar a versão centos 07+, ou tentei fazer o downgrade do NET8, baguncei o sistema e reinstalei várias vezes; . (Felizmente, é uma máquina virtual, então é muito rápida)

Talvez seja porque as versões dos antigos são diferentes das minhas, então não funcionou! ! ! ! !

其实就是下载一个libstdc++.so.6.0.26 放到 usr/lib64下,

然后做一个软连接所有访问libstdc++.so.6指向libstdc++.so.6.0.26

Você pode implantar o net8 com sucesso e executar o net core no centos 07. Um caso simples

Pulei os processos de download, upload e descompactação

Os seguintes comandos de conexão suave são fornecidos

  1. 下载链接: libstdc.so.6.0.26 将压缩包放置/usr/lib64目录下
  2. cd /usr/lib64
  3. unzip libstdc.so_.6.0.26.zip
  4. rm libstdc++.so.6
  5. ln -s libstdc++.so.6.0.26 libstdc++.so.6

Neste momento, execute o comando dotnet para verificar o ambiente.

  1. dotnet --version
  2. dotnet --info

Deveria ficar assim

Eu imaginei que o SDK net8 contém tempo de execução (porque meu win10 net8 tem apenas um SDK, mas antes o SDK net5 também dependia do net core 2.1 rutime)

Em seguida, basta criar uma API de descanso simples e executá-la no Windows após publicá-la.

Copie o arquivo para Linux e digite o caminho no arquivo

dotnet WebApplication1.dll

Neste momento devemos configurar a porta de rede para comunicação com a máquina virtual, e então acessar a máquina virtual na máquina física

resultado,,,,

Como resultado, fui estúpido e cliquei em locslhost:5000 na linha de comando do Linux (porque isso indicava que poderia ser clicado)

Acontece que as VMs de versões superiores já possuem operações visuais integradas e uma versão Firefox LINUX integrada.

Para implantar o net8 no ambiente LINUX centos, a Microsoft também fornece suporte mais simples e instalação de scripts.

  1. 以下是脚本自动安装NET 8
  2. wget https://dot.net/v1/dotnet-install.sh -O dotnet-install.sh
  3. chmod +x ./dotnet-install.sh
  4. ./dotnet-install.sh --version latest
  5. 若要安装 .NET 运行时而非 SDK,请使用 --runtime 参数。
  6. ./dotnet-install.sh --version latest --runtime aspnetcore

Ele irá baixar tal coisa e depois instalá-lo. Por padrão, ele será instalado de acordo com a versão mais recente do SDK. Se você quiser instalar outras versões, ou o rintime também pode alterar a linha de comando acima para alcançá-lo.

Esta instalação é relativamente simples, basta executá-la linha por linha, mas você também encontrará os problemas ambientais que mencionei (ainda terá que resolvê-los);

Os recursos e documentos relacionados necessários para este artigo podem ser baixados no compartilhamento do grupo. Qualquer problema técnico pode ser comunicado no grupo. Observação: a publicidade é proibida neste grupo. A publicidade é proibida neste grupo! A publicidade é proibida neste grupo! Diga coisas importantes três vezes, obrigado!