Estou começando a trabalhar com uma caixa que possui um Linux (pequeno) personalizado. Como posso saber se esta é uma compilação baseada no Debian ou Red Hat?
Isto é o que eu sei até agora:
$ cat /proc/version
Linux version 2.6.31-2.5 (build@build-desktop) (gcc version 4.4.3 (Broadcom stbgcc-4.4.3-1.2) ) #7
$ apt-get
-sh: apt-get: command not found
$ yum
-sh: yum: command not found
lsb_release -i 2> /dev/null | sed 's/:\t/:/' | cut -d ':' -f 2-
?? Basta executarlsb_release -si
Respostas:
A execução
uname -a
deve fornecer algumas informações gerais sobre o sistema. Além disso, você pode executarapropos "package manager"
ou com palavras-chave semelhantes para descobrir mais sobre o gerenciador de pacotes. Procure/etc
um arquivo chamadoxyz-release
ondexyz
deve estar qualquer distro que esteja sendo executada.fonte
Para testar sistemas Debian, você pode verificar se
/etc/debian_version
existe:Deve ser incluído o Debian e sistemas baseados nele (incluindo o Ubuntu e seus derivados), embora alguns não o possuam - neste caso, você pode verificar os
/etc/*release
arquivos:Onde
debian|buntu|mint
está uma lista de nomes de distribuições para procurar (sem distinção entre maiúsculas e minúsculas) - você pode ter uma idéia de alguns derivados comuns a partir daqui , embora os derivados do Debian como o Ubuntu tenham seus próprios derivados .Para sistemas baseados em RedHat, os derivados usam uma variedade maior de arquivos e podem não ter o lsb-release instalado - para que você possa aplicar os seguintes métodos:
obtenha o nome do release
Verifique o ID do DISTRIB no
lsb-release
arquivo - um 'método de fallback que provavelmente não é necessário nos sistemas modernos', também o arquivo aparentemente está ausente no Fedora e não contém DISTRIB_ID no OpenSUSEverifique a existência de algumas das seguintes
/etc/fedora-release
e / ou/etc/redhat-release
para RedHat ou Fedora/etc/SuSE-release
para SuSe/etc/mandriva-release
para mandriva / mageiause um método semelhante ao último debian:
Os três primeiros pontos que obtive da atualização cron do Google Chrome, para que você possa examinar isso para descobrir mais (ele também determina os gerenciadores de pacotes)
Para uma gama mais ampla de sistemas operacionais, a leitura desta postagem no SO deve ajudar.
fonte
Verifique a saída de:
e:
Você também pode procurar por mais comandos de pacote de baixa alavanca
rpm
para RedHat edpkg
Debian.fonte
apt-get install lsb-release
se não estiver instalado.Se for um dispositivo incorporado (por exemplo, um roteador SoHo), provavelmente não será uma das distros "desktop / servidor". Eu tentaria examinar o manual do dispositivo, o site do fabricante (deveria ter origem no código licenciado pela GPL) e a Web em geral.
fonte
uname -a
ecat /proc/version
( somente leitura para superusuários ), na minha opinião sincera, são as únicas respostas corretas para esta pergunta, já que o restante - comolsb_release
,/etc/issue
oucat /proc/sys/kernel/version
- não está disponível / não pode ser usado em todos os sistemas (nem mesmo nas distribuições oficiais do Debian). Também não se incomode em usar/etc/*releases
,/etc/*version
pois eles podem ser alterados. Este último não está disponível em todas as distribuições Debian.Outras opções podem ser (não é minha recomendação):
dash
ou verifique sesh
está vinculadodash
(deve ser o padrão para a execução de scripts)>/dev/null 2>&1 dpkg --version && { ... }
fonte