Skip to main content

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 (almalinuxalma, oloracle, amznamazon) 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-release sigue diciendo centos, distro devuelve cloudlinux y la versión sale del fichero de CloudLinux, no la obsoleta de os-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

osinfoid-0.0.1.tar.gz (9.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

osinfoid-0.0.1-py3-none-any.whl (9.1 kB view details)

Uploaded Python 3

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

Hashes for osinfoid-0.0.1.tar.gz
Algorithm Hash digest
SHA256 26408130326616e0460b53b67d8ee178880a4c3319bdde04239aa0397f637200
MD5 0bcf3aa4c204689c34d1b6bf897d903e
BLAKE2b-256 cb45b6f1de11702c3511308086f52de2a6449193f0b74b011320f1e6a2079c2b

See more details on using hashes here.

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

Hashes for osinfoid-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 c5a922c4e654811d3964cf38eaafa8b55442c5a343a2f77bfd06078b6edec14e
MD5 c0fcfcac122f7617009b51f2cadbfe39
BLAKE2b-256 82077766ab95dd7d6d5c837bcd5a4e1e87c8dd59743fd7eb3a785d818822fdfa

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.0.1 This release

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page