627 lines
20 KiB
TypeScript
627 lines
20 KiB
TypeScript
export interface ProblemSolution {
|
|
id: string;
|
|
problem: string; // Texto exato ou padrão para matching
|
|
os: 'windows' | 'linux' | 'macos' | 'all';
|
|
links: Array<{
|
|
title: string;
|
|
url: string;
|
|
}>;
|
|
commands?: {
|
|
title: string;
|
|
code: string;
|
|
description?: string;
|
|
}[];
|
|
description?: string;
|
|
}
|
|
|
|
export const PROBLEM_SOLUTIONS: ProblemSolution[] = [
|
|
// ========== WINDOWS ==========
|
|
{
|
|
id: 'windows-build-old',
|
|
problem: 'Windows build',
|
|
os: 'windows',
|
|
description: 'Versão do Windows muito antiga. É necessário Windows 10 20H1 (build 19041) ou superior, ou Windows 11.',
|
|
links: [
|
|
{
|
|
title: 'Instalar Atualizações do Windows',
|
|
url: 'https://support.microsoft.com/windows/install-windows-updates-3c5ae7fc-9fb6-9af1-1984-b5e0412c556a'
|
|
},
|
|
{
|
|
title: 'Baixar Windows 10',
|
|
url: 'https://www.microsoft.com/software-download/windows10'
|
|
},
|
|
{
|
|
title: 'Baixar Windows 11',
|
|
url: 'https://www.microsoft.com/software-download/windows11'
|
|
}
|
|
],
|
|
commands: [
|
|
{
|
|
title: 'Verificar build atual',
|
|
code: '[System.Environment]::OSVersion.Version',
|
|
description: 'Execute no PowerShell para verificar a versão atual do Windows'
|
|
}
|
|
]
|
|
},
|
|
{
|
|
id: 'windows-vm-platform',
|
|
problem: 'VirtualMachinePlatform não habilitado',
|
|
os: 'windows',
|
|
description: 'A plataforma de máquina virtual precisa estar habilitada para suportar WSL 2.',
|
|
links: [
|
|
{
|
|
title: 'Microsoft Learn - WSL Manual Install',
|
|
url: 'https://learn.microsoft.com/windows/wsl/install-manual'
|
|
}
|
|
],
|
|
commands: [
|
|
{
|
|
title: 'Habilitar VirtualMachinePlatform (PowerShell como Administrador)',
|
|
code: 'dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart',
|
|
description: 'Execute no PowerShell como Administrador. Reinicie o sistema após a execução.'
|
|
}
|
|
]
|
|
},
|
|
{
|
|
id: 'windows-wsl-not-enabled',
|
|
problem: 'WSL não habilitado',
|
|
os: 'windows',
|
|
description: 'Windows Subsystem for Linux precisa estar habilitado para executar Docker no Windows.',
|
|
links: [
|
|
{
|
|
title: 'Microsoft Learn - Instalar WSL',
|
|
url: 'https://learn.microsoft.com/windows/wsl/install'
|
|
},
|
|
{
|
|
title: 'Microsoft Learn - WSL Manual',
|
|
url: 'https://learn.microsoft.com/windows/wsl/install-manual'
|
|
}
|
|
],
|
|
commands: [
|
|
{
|
|
title: 'Habilitar WSL (PowerShell como Administrador)',
|
|
code: 'dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart',
|
|
description: 'Execute no PowerShell como Administrador. Reinicie o sistema após a execução.'
|
|
}
|
|
]
|
|
},
|
|
{
|
|
id: 'windows-wsl2-not-configured',
|
|
problem: 'WSL 2 não configurado',
|
|
os: 'windows',
|
|
description: 'WSL 2 precisa ser configurado como versão padrão do WSL.',
|
|
links: [
|
|
{
|
|
title: 'Microsoft Learn - Instalar WSL',
|
|
url: 'https://learn.microsoft.com/windows/wsl/install'
|
|
},
|
|
{
|
|
title: 'Microsoft Learn - WSL Manual',
|
|
url: 'https://learn.microsoft.com/windows/wsl/install-manual'
|
|
}
|
|
],
|
|
commands: [
|
|
{
|
|
title: 'Configurar WSL 2 como padrão',
|
|
code: 'wsl --set-default-version 2',
|
|
description: 'Execute após habilitar WSL e VirtualMachinePlatform e reiniciar o sistema.'
|
|
},
|
|
{
|
|
title: 'Comandos completos (PowerShell como Administrador)',
|
|
code: `# Habilitar WSL
|
|
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
|
|
|
|
# Habilitar Virtual Machine Platform
|
|
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
|
|
|
|
# Reiniciar e depois definir WSL 2 como padrão
|
|
wsl --set-default-version 2`,
|
|
description: 'Execute todos os comandos em sequência. Reinicie após os dois primeiros comandos.'
|
|
}
|
|
]
|
|
},
|
|
{
|
|
id: 'windows-ram-insufficient',
|
|
problem: 'RAM insuficiente',
|
|
os: 'windows',
|
|
description: 'Sistema requer no mínimo 4GB de RAM para executar Docker no Windows.',
|
|
links: [
|
|
{
|
|
title: 'Adicionar mais memória ao computador',
|
|
url: 'https://support.microsoft.com/windows/add-more-memory-to-your-computer-0f7e2d8a-d2c9-c858-5dca-8d3b3759a0ff'
|
|
}
|
|
],
|
|
commands: [
|
|
{
|
|
title: 'Verificar processos consumindo mais memória',
|
|
code: 'Get-Process | Sort-Object -Property WS -Descending | Select-Object -First 10',
|
|
description: 'Lista os 10 processos que mais consomem memória. Feche aplicativos desnecessários.'
|
|
}
|
|
]
|
|
},
|
|
{
|
|
id: 'windows-disk-insufficient',
|
|
problem: 'Espaço em disco insuficiente',
|
|
os: 'windows',
|
|
description: 'É necessário pelo menos 10GB de espaço livre em disco para instalar e executar Docker.',
|
|
links: [
|
|
{
|
|
title: 'Liberar espaço em disco no Windows',
|
|
url: 'https://support.microsoft.com/windows/free-up-drive-space-in-windows-85529ccb-c365-490d-b548-831022bc9b32'
|
|
}
|
|
],
|
|
commands: [
|
|
{
|
|
title: 'Abrir Limpeza de Disco',
|
|
code: 'cleanmgr.exe',
|
|
description: 'Abre a ferramenta de limpeza de disco do Windows.'
|
|
}
|
|
]
|
|
},
|
|
{
|
|
id: 'windows-cpu-cores',
|
|
problem: 'CPU cores insuficientes',
|
|
os: 'windows',
|
|
description: 'Recomenda-se pelo menos 2 cores de CPU para melhor desempenho.',
|
|
commands: [
|
|
{
|
|
title: 'Verificar número de cores lógicos',
|
|
code: '(Get-WmiObject Win32_Processor).NumberOfLogicalProcessors',
|
|
description: 'Mostra o número de processadores lógicos disponíveis.'
|
|
}
|
|
]
|
|
},
|
|
|
|
// ========== LINUX ==========
|
|
{
|
|
id: 'linux-kernel-old',
|
|
problem: 'Kernel',
|
|
os: 'linux',
|
|
description: 'Kernel Linux muito antigo. É necessário kernel 3.10 ou superior para executar Docker.',
|
|
links: [
|
|
{
|
|
title: 'Ubuntu/Debian - Gerenciamento de Pacotes',
|
|
url: 'https://ubuntu.com/server/docs/package-management'
|
|
},
|
|
{
|
|
title: 'Arch/Manjaro - Kernel',
|
|
url: 'https://wiki.archlinux.org/title/Kernel'
|
|
},
|
|
{
|
|
title: 'Fedora/RHEL - Kernel',
|
|
url: 'https://docs.fedoraproject.org/en-US/quick-docs/kernel/'
|
|
}
|
|
],
|
|
commands: [
|
|
{
|
|
title: 'Ubuntu/Debian - Atualizar sistema e kernel',
|
|
code: `sudo apt update && sudo apt upgrade -y
|
|
sudo apt install linux-generic`,
|
|
description: 'Atualiza todos os pacotes e instala o kernel genérico mais recente.'
|
|
},
|
|
{
|
|
title: 'Arch/Manjaro - Atualizar kernel',
|
|
code: 'sudo pacman -Syu linux',
|
|
description: 'Atualiza o sistema e o kernel.'
|
|
},
|
|
{
|
|
title: 'Fedora - Atualizar kernel',
|
|
code: 'sudo dnf upgrade kernel',
|
|
description: 'Atualiza o kernel para a versão mais recente.'
|
|
}
|
|
]
|
|
},
|
|
{
|
|
id: 'linux-curl-missing',
|
|
problem: 'Pacote curl não instalado',
|
|
os: 'linux',
|
|
description: 'O pacote curl é necessário para baixar arquivos e chaves GPG durante a instalação do Docker.',
|
|
links: [
|
|
{
|
|
title: 'curl.se - Download oficial',
|
|
url: 'https://curl.se/download.html'
|
|
},
|
|
{
|
|
title: 'Ubuntu packages - curl',
|
|
url: 'https://packages.ubuntu.com/search?keywords=curl'
|
|
}
|
|
],
|
|
commands: [
|
|
{
|
|
title: 'Ubuntu/Debian',
|
|
code: 'sudo apt update && sudo apt install curl',
|
|
description: 'Instala curl no Ubuntu ou Debian.'
|
|
},
|
|
{
|
|
title: 'Arch/Manjaro',
|
|
code: 'sudo pacman -S curl',
|
|
description: 'Instala curl no Arch Linux ou Manjaro.'
|
|
},
|
|
{
|
|
title: 'Fedora/RHEL',
|
|
code: 'sudo dnf install curl',
|
|
description: 'Instala curl no Fedora ou RHEL.'
|
|
},
|
|
{
|
|
title: 'openSUSE',
|
|
code: 'sudo zypper install curl',
|
|
description: 'Instala curl no openSUSE.'
|
|
}
|
|
]
|
|
},
|
|
{
|
|
id: 'linux-ca-certificates-missing',
|
|
problem: 'Pacote ca-certificates não instalado',
|
|
os: 'linux',
|
|
description: 'Certificados CA são necessários para verificar conexões HTTPS seguras.',
|
|
links: [
|
|
{
|
|
title: 'Ubuntu packages - ca-certificates',
|
|
url: 'https://packages.ubuntu.com/search?keywords=ca-certificates'
|
|
},
|
|
{
|
|
title: 'Debian wiki - ca-certificates',
|
|
url: 'https://wiki.debian.org/ca-certificates'
|
|
}
|
|
],
|
|
commands: [
|
|
{
|
|
title: 'Ubuntu/Debian',
|
|
code: 'sudo apt update && sudo apt install ca-certificates',
|
|
description: 'Instala certificados CA no Ubuntu ou Debian.'
|
|
},
|
|
{
|
|
title: 'Arch/Manjaro',
|
|
code: 'sudo pacman -S ca-certificates',
|
|
description: 'Instala certificados CA no Arch Linux ou Manjaro.'
|
|
},
|
|
{
|
|
title: 'Fedora/RHEL',
|
|
code: 'sudo dnf install ca-certificates',
|
|
description: 'Instala certificados CA no Fedora ou RHEL.'
|
|
},
|
|
{
|
|
title: 'openSUSE',
|
|
code: 'sudo zypper install ca-certificates',
|
|
description: 'Instala certificados CA no openSUSE.'
|
|
}
|
|
]
|
|
},
|
|
{
|
|
id: 'linux-gnupg-missing',
|
|
problem: 'Pacote gnupg não instalado',
|
|
os: 'linux',
|
|
description: 'GnuPG é necessário para verificar chaves GPG durante a instalação do Docker.',
|
|
links: [
|
|
{
|
|
title: 'GnuPG oficial - Download',
|
|
url: 'https://gnupg.org/download/'
|
|
},
|
|
{
|
|
title: 'Ubuntu packages - gnupg',
|
|
url: 'https://packages.ubuntu.com/search?keywords=gnupg'
|
|
}
|
|
],
|
|
commands: [
|
|
{
|
|
title: 'Ubuntu/Debian',
|
|
code: 'sudo apt update && sudo apt install gnupg',
|
|
description: 'Instala GnuPG no Ubuntu ou Debian.'
|
|
},
|
|
{
|
|
title: 'Arch/Manjaro',
|
|
code: 'sudo pacman -S gnupg',
|
|
description: 'Instala GnuPG no Arch Linux ou Manjaro.'
|
|
},
|
|
{
|
|
title: 'Fedora/RHEL',
|
|
code: 'sudo dnf install gnupg',
|
|
description: 'Instala GnuPG no Fedora ou RHEL.'
|
|
},
|
|
{
|
|
title: 'openSUSE',
|
|
code: 'sudo zypper install gpg2',
|
|
description: 'Instala GnuPG no openSUSE.'
|
|
}
|
|
]
|
|
},
|
|
{
|
|
id: 'linux-sudo-missing',
|
|
problem: 'Privilégios sudo necessários',
|
|
os: 'linux',
|
|
description: 'Privilégios de administrador são necessários para instalar pacotes e configurar o sistema.',
|
|
links: [
|
|
{
|
|
title: 'Ubuntu - RootSudo',
|
|
url: 'https://help.ubuntu.com/community/RootSudo'
|
|
},
|
|
{
|
|
title: 'Arch Linux - Sudo',
|
|
url: 'https://wiki.archlinux.org/title/Sudo'
|
|
}
|
|
],
|
|
commands: [
|
|
{
|
|
title: 'Adicionar usuário ao grupo sudo (Ubuntu/Debian)',
|
|
code: 'sudo usermod -aG sudo $USER',
|
|
description: 'Adiciona o usuário atual ao grupo sudo. Faça logout e login novamente para aplicar.'
|
|
},
|
|
{
|
|
title: 'Adicionar ao grupo wheel (Arch/Fedora)',
|
|
code: 'sudo usermod -aG wheel $USER',
|
|
description: 'Adiciona o usuário atual ao grupo wheel. Faça logout e login novamente para aplicar.'
|
|
}
|
|
]
|
|
},
|
|
{
|
|
id: 'linux-ram-insufficient',
|
|
problem: 'RAM insuficiente',
|
|
os: 'linux',
|
|
description: 'Sistema requer no mínimo 2GB de RAM para executar Docker.',
|
|
commands: [
|
|
{
|
|
title: 'Verificar processos consumindo mais memória',
|
|
code: 'top',
|
|
description: 'Mostra processos em tempo real. Pressione "q" para sair.'
|
|
},
|
|
{
|
|
title: 'Verificar processos (htop - se instalado)',
|
|
code: 'htop',
|
|
description: 'Interface mais amigável. Instale com: sudo apt install htop (Ubuntu/Debian)'
|
|
},
|
|
{
|
|
title: 'Verificar uso de memória',
|
|
code: 'free -h',
|
|
description: 'Mostra uso de memória em formato legível.'
|
|
}
|
|
]
|
|
},
|
|
{
|
|
id: 'linux-disk-insufficient',
|
|
problem: 'Espaço em disco insuficiente',
|
|
os: 'linux',
|
|
description: 'É necessário pelo menos 10GB de espaço livre em disco.',
|
|
commands: [
|
|
{
|
|
title: 'Verificar espaço em disco',
|
|
code: 'df -h',
|
|
description: 'Mostra espaço usado e disponível em todos os sistemas de arquivos.'
|
|
},
|
|
{
|
|
title: 'Verificar diretórios ocupando mais espaço',
|
|
code: 'du -h --max-depth=1 / | sort -hr | head -10',
|
|
description: 'Lista os 10 diretórios que mais ocupam espaço (execute com sudo para resultados completos).'
|
|
},
|
|
{
|
|
title: 'Limpar cache de pacotes (Ubuntu/Debian)',
|
|
code: 'sudo apt clean && sudo apt autoremove',
|
|
description: 'Remove pacotes antigos e cache para liberar espaço.'
|
|
}
|
|
]
|
|
},
|
|
{
|
|
id: 'linux-cpu-cores',
|
|
problem: 'CPU cores insuficientes',
|
|
os: 'linux',
|
|
description: 'Recomenda-se pelo menos 2 cores de CPU para melhor desempenho.',
|
|
commands: [
|
|
{
|
|
title: 'Verificar número de cores',
|
|
code: 'nproc',
|
|
description: 'Mostra o número de processadores disponíveis.'
|
|
},
|
|
{
|
|
title: 'Informações detalhadas da CPU',
|
|
code: 'lscpu | grep "^CPU(s):"',
|
|
description: 'Mostra informações detalhadas sobre a CPU.'
|
|
}
|
|
]
|
|
},
|
|
|
|
// ========== macOS ==========
|
|
{
|
|
id: 'macos-version-old',
|
|
problem: 'macOS',
|
|
os: 'macos',
|
|
description: 'Versão do macOS muito antiga. Recomenda-se macOS 11 (Big Sur) ou superior.',
|
|
links: [
|
|
{
|
|
title: 'Apple - Atualizar macOS',
|
|
url: 'https://support.apple.com/HT201541'
|
|
},
|
|
{
|
|
title: 'Apple - Como atualizar',
|
|
url: 'https://support.apple.com/guide/mac-help/update-macos-mchlpx1065'
|
|
}
|
|
]
|
|
},
|
|
{
|
|
id: 'macos-homebrew-missing',
|
|
problem: 'Homebrew não instalado',
|
|
os: 'macos',
|
|
description: 'Homebrew é recomendado para facilitar a instalação do Docker no macOS.',
|
|
links: [
|
|
{
|
|
title: 'Homebrew oficial',
|
|
url: 'https://brew.sh/'
|
|
}
|
|
],
|
|
commands: [
|
|
{
|
|
title: 'Instalar Homebrew (Intel e Apple Silicon)',
|
|
code: '/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"',
|
|
description: 'Instala Homebrew. Siga as instruções na tela.'
|
|
},
|
|
{
|
|
title: 'Configurar PATH para Apple Silicon (após instalação)',
|
|
code: `echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zprofile
|
|
eval "$(/opt/homebrew/bin/brew shellenv)"`,
|
|
description: 'Adiciona Homebrew ao PATH em Macs com Apple Silicon (M1/M2/M3).'
|
|
}
|
|
]
|
|
},
|
|
{
|
|
id: 'macos-rosetta-missing',
|
|
problem: 'Rosetta 2 não instalado',
|
|
os: 'macos',
|
|
description: 'Rosetta 2 é necessário para executar aplicativos x86_64 em Macs com Apple Silicon.',
|
|
links: [
|
|
{
|
|
title: 'Apple - Rosetta 2',
|
|
url: 'https://support.apple.com/HT211861'
|
|
},
|
|
{
|
|
title: 'Apple Developer - Rosetta',
|
|
url: 'https://developer.apple.com/documentation/apple-silicon/about-the-rosetta-translation-environment'
|
|
}
|
|
],
|
|
commands: [
|
|
{
|
|
title: 'Instalar Rosetta 2',
|
|
code: 'softwareupdate --install-rosetta --agree-to-license',
|
|
description: 'Instala Rosetta 2. Pode solicitar confirmação.'
|
|
},
|
|
{
|
|
title: 'Verificar se Rosetta está instalado',
|
|
code: 'ls /Library/Apple/usr/share/rosetta',
|
|
description: 'Verifica se Rosetta 2 está instalado. Se o diretório existir, está instalado.'
|
|
},
|
|
{
|
|
title: 'Testar execução x86_64',
|
|
code: 'arch -x86_64 uname -m',
|
|
description: 'Deve retornar "x86_64" se Rosetta estiver funcionando.'
|
|
}
|
|
]
|
|
},
|
|
{
|
|
id: 'macos-ram-insufficient',
|
|
problem: 'RAM insuficiente',
|
|
os: 'macos',
|
|
description: 'Sistema requer no mínimo 4GB de RAM para executar Docker no macOS.',
|
|
links: [
|
|
{
|
|
title: 'Apple - Memória Mac',
|
|
url: 'https://support.apple.com/mac/memory'
|
|
}
|
|
],
|
|
commands: [
|
|
{
|
|
title: 'Verificar processos consumindo mais memória',
|
|
code: 'top -o MEM',
|
|
description: 'Mostra processos ordenados por uso de memória. Pressione "q" para sair.'
|
|
},
|
|
{
|
|
title: 'Abrir Monitor de Atividade',
|
|
code: 'open -a "Activity Monitor"',
|
|
description: 'Abre o Monitor de Atividade do macOS.'
|
|
}
|
|
]
|
|
},
|
|
{
|
|
id: 'macos-disk-insufficient',
|
|
problem: 'Espaço em disco insuficiente',
|
|
os: 'macos',
|
|
description: 'É necessário pelo menos 4GB de espaço livre em disco.',
|
|
links: [
|
|
{
|
|
title: 'Apple - Liberar espaço de armazenamento',
|
|
url: 'https://support.apple.com/guide/mac-help/free-up-storage-space-mh31934'
|
|
}
|
|
],
|
|
commands: [
|
|
{
|
|
title: 'Abrir Gerenciamento de Armazenamento',
|
|
code: 'open "x-apple.systempreferences:com.apple.preference.storage"',
|
|
description: 'Abre as preferências de armazenamento do macOS.'
|
|
}
|
|
]
|
|
},
|
|
{
|
|
id: 'macos-cpu-cores',
|
|
problem: 'CPU cores insuficientes',
|
|
os: 'macos',
|
|
description: 'Recomenda-se pelo menos 2 cores de CPU para melhor desempenho.',
|
|
commands: [
|
|
{
|
|
title: 'Verificar número de cores',
|
|
code: 'sysctl -n hw.ncpu',
|
|
description: 'Mostra o número de cores de CPU disponíveis.'
|
|
}
|
|
]
|
|
},
|
|
|
|
// ========== GERAL ==========
|
|
{
|
|
id: 'os-not-supported',
|
|
problem: 'Sistema operacional não suportado',
|
|
os: 'all',
|
|
description: 'Este sistema operacional não é suportado. Docker requer Windows, Linux ou macOS.',
|
|
links: [
|
|
{
|
|
title: 'Docker - Requisitos do Sistema',
|
|
url: 'https://docs.docker.com/desktop/supported-platforms/'
|
|
}
|
|
]
|
|
}
|
|
];
|
|
|
|
/**
|
|
* Encontra a solução correspondente para um problema
|
|
* @param problemText Texto do problema retornado pela verificação
|
|
* @param os Sistema operacional atual
|
|
* @returns Solução correspondente ou null se não encontrada
|
|
*/
|
|
export function findProblemSolution(problemText: string, os: string): ProblemSolution | null {
|
|
const normalizedProblem = problemText.toLowerCase();
|
|
const normalizedOs = os.toLowerCase();
|
|
|
|
// Buscar por matching exato primeiro
|
|
let solution = PROBLEM_SOLUTIONS.find(s => {
|
|
const matchesOs = s.os === 'all' || s.os === normalizedOs ||
|
|
(normalizedOs === 'mac' && s.os === 'macos') ||
|
|
(normalizedOs === 'windows' && s.os === 'windows') ||
|
|
(normalizedOs === 'linux' && s.os === 'linux');
|
|
|
|
if (!matchesOs) return false;
|
|
|
|
const problemLower = s.problem.toLowerCase();
|
|
return normalizedProblem.includes(problemLower) || problemLower.includes(normalizedProblem);
|
|
});
|
|
|
|
// Se não encontrou, tentar matching parcial por palavras-chave
|
|
if (!solution) {
|
|
const keywords: { [key: string]: string } = {
|
|
'windows build': 'windows-build-old',
|
|
'virtualmachineplatform': 'windows-vm-platform',
|
|
'wsl não habilitado': 'windows-wsl-not-enabled',
|
|
'wsl 2 não configurado': 'windows-wsl2-not-configured',
|
|
'ram insuficiente': normalizedOs === 'windows' ? 'windows-ram-insufficient' :
|
|
normalizedOs === 'mac' || normalizedOs === 'macos' ? 'macos-ram-insufficient' :
|
|
'linux-ram-insufficient',
|
|
'espaço em disco': normalizedOs === 'windows' ? 'windows-disk-insufficient' :
|
|
normalizedOs === 'mac' || normalizedOs === 'macos' ? 'macos-disk-insufficient' :
|
|
'linux-disk-insufficient',
|
|
'cpu cores': normalizedOs === 'windows' ? 'windows-cpu-cores' :
|
|
normalizedOs === 'mac' || normalizedOs === 'macos' ? 'macos-cpu-cores' :
|
|
'linux-cpu-cores',
|
|
'kernel': 'linux-kernel-old',
|
|
'pacote curl': 'linux-curl-missing',
|
|
'pacote ca-certificates': 'linux-ca-certificates-missing',
|
|
'pacote gnupg': 'linux-gnupg-missing',
|
|
'privilégios sudo': 'linux-sudo-missing',
|
|
'homebrew': 'macos-homebrew-missing',
|
|
'rosetta': 'macos-rosetta-missing',
|
|
'sistema operacional não suportado': 'os-not-supported'
|
|
};
|
|
|
|
for (const [keyword, id] of Object.entries(keywords)) {
|
|
if (normalizedProblem.includes(keyword)) {
|
|
solution = PROBLEM_SOLUTIONS.find(s => s.id === id);
|
|
if (solution) break;
|
|
}
|
|
}
|
|
}
|
|
|
|
return solution || null;
|
|
}
|