osinfoid
Identifica la distribución de Linux, su versión, su familia y si el sistema tiene cPanel/WHM o CloudLinux. Sin dependencias: sólo biblioteca estándar.
Pensado para scripts de administración de servidores, donde hace falta ramificar por distribución y versión antes de instalar paquetes o tocar configuración.
Instalación
pip install osinfoid
Uso
import osinfoid
info = osinfoid.detect()
info.distro # 'alma'
info.family # 'rhel'
info.name # 'seafoam_ocelot' (nombre en clave)
info.full_version # '9.4'
info.short_version # '9'
info.version # '9' (alias de short_version)
info.cpanel # True
info.cloudlinux # False
info.recognized # True
info.as_dict()
info.version_tuple() # (9, 4)
Atajos, si sólo hace falta un dato:
from osinfoid import distro, family, version, has_cpanel, is_cloudlinux
if family() == 'rhel' and version() == '7':
...
if is_cloudlinux() and has_cpanel():
...
Qué detecta
| Campo | Valor |
|---|---|
distro |
debian, ubuntu, centos, rocky, alma, cloudlinux, rhel, oracle, amazon, opensuse-leap, arch, alpine, ... |
family |
rhel, debian, suse, arch, alpine, gentoo, slackware, void, nixos, mandriva, unknown |
name |
nombre en clave en minúsculas, con _ por espacios: trixie, jammy_jellyfish, resolute_raccoon |
full_version |
dos componentes como máximo: 7.9, 9.4, 22.04; rolling en rolling releases |
short_version |
versión mayor: 6, 7, 8, 9, 22 |
cpanel |
True si hay cPanel/WHM instalado |
cloudlinux |
True si el sistema es (o fue convertido a) CloudLinux |
Cubre cualquier distribución: el identificador sale del ID de
/etc/os-release, así que una distro que no esté en la tabla interna se sigue
reportando por su nombre, con la familia deducida de ID_LIKE. La tabla sólo
normaliza alias (almalinux → alma, ol → oracle, amzn → amazon) y
asigna familia cuando ID_LIKE no está.
Para sistemas sin os-release (CentOS 6, Debian y Slackware antiguos, Alpine,
Gentoo) hay respaldo por /etc/*-release, /etc/lsb-release,
/etc/debian_version y un barrido genérico de /etc/<distro>-release.
Detalles de CloudLinux y cPanel
- CloudLinux gana sobre la distro base: en un servidor convertido cuyo
os-releasesigue diciendocentos,distrodevuelvecloudlinuxy la versión sale del fichero de CloudLinux, no la obsoleta deos-release. - cPanel se comprueba siempre, no sólo en derivados de RHEL: cPanel soporta Ubuntu LTS desde la versión 102.
Compatibilidad
Linux, Python 2.7 y 3.x. El código evita f-strings y dataclasses a propósito,
para poder usarse tal cual en el Python de un CentOS 6 o 7 antiguo. En sistemas
que no son Linux, todos los campos valen unknown y recognized es False.
os-release nunca se ejecuta ni se importa como código: se parsea a mano.
Los ficheros se leen en binario y se decodifican como UTF-8, para no depender
de la codificación del locale.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file osinfoid-0.0.1.tar.gz.
File metadata
- Download URL: osinfoid-0.0.1.tar.gz
- Upload date:
- Size: 9.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
26408130326616e0460b53b67d8ee178880a4c3319bdde04239aa0397f637200
|
|
| MD5 |
0bcf3aa4c204689c34d1b6bf897d903e
|
|
| BLAKE2b-256 |
cb45b6f1de11702c3511308086f52de2a6449193f0b74b011320f1e6a2079c2b
|
File details
Details for the file osinfoid-0.0.1-py3-none-any.whl.
File metadata
- Download URL: osinfoid-0.0.1-py3-none-any.whl
- Upload date:
- Size: 9.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c5a922c4e654811d3964cf38eaafa8b55442c5a343a2f77bfd06078b6edec14e
|
|
| MD5 |
c0fcfcac122f7617009b51f2cadbfe39
|
|
| BLAKE2b-256 |
82077766ab95dd7d6d5c837bcd5a4e1e87c8dd59743fd7eb3a785d818822fdfa
|