Skip to content
VDS · Sistemas operativos

AlmaLinux y CentOS Stream: dnf en lugar de apt

Cómo adaptar las instrucciones de Debian para la familia RHEL: equivalencias de comandos y paquetes, firewalld en lugar de ufw, SELinux y el repositorio EPEL.

Actualizado 23 de agosto de 2026

AlmaLinux 9 y 10 y CentOS Stream 9 funcionan de forma distinta a Debian y Ubuntu. Vamos a repasar los puntos con los que la gente tropieza más a menudo.

Equivalencias de comandos

Debian / UbuntuAlmaLinux / CentOS Stream
apt update && apt upgradednf upgrade
apt install packagednf install package
apt remove packagednf remove package
apt search stringdnf search string
apt list --installeddnf list installed
ufwfirewall-cmd
grupo sudogrupo wheel
/etc/apt/sources.list/etc/yum.repos.d/

Los nombres de los paquetes también cambian: apache2 aquí es httpd, nginx es igual, mysql-server es mariadb-server, python3-pip es python3-pip, pero dnsutils se llama bind-utils.

Primeros pasos

dnf upgrade -y
dnf install -y curl nano git htop tar policycoreutils-python-utils
timedatectl set-timezone Europe/Moscow
hostnamectl set-hostname my-vds

Un usuario con derechos de administrador:

adduser artem
passwd artem
usermod -aG wheel artem

El repositorio EPEL

Muchos paquetes conocidos no están en los repositorios base: están en EPEL:

dnf install -y epel-release
dnf upgrade -y
dnf install -y btop fail2ban

Cortafuegos

En lugar de ufw, aquí se usa firewalld:

systemctl enable --now firewalld
firewall-cmd --permanent --add-service=ssh
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --permanent --add-port=8080/tcp
firewall-cmd --reload
firewall-cmd --list-all

Sin --permanent, la regla desaparecerá tras un reinicio, y sin --reload, no se aplicará ahora mismo. Necesitas ambas partes.

SELinux

La principal fuente de fallos misteriosos: los permisos de archivos son correctos, el servicio está en marcha, pero no hay acceso. Para comprobar el modo:

getenforce

Casos habituales y soluciones:

setsebool -P httpd_can_network_connect 1
semanage port -a -t http_port_t -p tcp 8080
restorecon -Rv /var/www

El primero permite que el servidor web haga conexiones salientes (necesario al hacer proxy hacia una aplicación), el segundo permite escuchar en un puerto no estándar, y el tercero corrige las etiquetas de archivos después de copiar desde el directorio de otra persona.

Puedes ver qué está pasando realmente aquí:

ausearch -m avc -ts recent

No necesitas desactivar SELinux por completo: casi siempre basta con una de las tres técnicas anteriores.

Qué más es diferente

  • El servidor web Apache se llama httpd, y sus configuraciones viven en /etc/httpd/, no en /etc/apache2/.
  • nginx no tiene directorios sites-available ni sites-enabled: las configuraciones van en /etc/nginx/conf.d/*.conf.
  • El usuario del servidor web es nginx o apache, no www-data. Esto importa con chown.

Agente invitado

dnf install -y qemu-guest-agent
systemctl enable --now qemu-guest-agent

Si no tienes claro si elegir esta familia, consulta qué SO elegir. Puedes cambiar el SO con una reinstalación, pero con pérdida total de datos.