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 / Ubuntu | AlmaLinux / CentOS Stream |
|---|---|
apt update && apt upgrade | dnf upgrade |
apt install package | dnf install package |
apt remove package | dnf remove package |
apt search string | dnf search string |
apt list --installed | dnf list installed |
ufw | firewall-cmd |
grupo sudo | grupo 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-availablenisites-enabled: las configuraciones van en/etc/nginx/conf.d/*.conf. - El usuario del servidor web es
nginxoapache, nowww-data. Esto importa conchown.
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.