Cómo cambiar permanentemente el nombre de host en Fedora 21

35

He oído que cambiar el nombre de host en las nuevas versiones de fedora se realiza con el hostnamectlcomando. Además, recientemente (y con éxito) cambié mi nombre de host en Arch Linux con este método. Sin embargo, cuando se ejecuta:

[root@localhost ~]# hostnamectl set-hostname --static paragon.localdomain
[root@localhost ~]# hostnamectl set-hostname --transient paragon.localdomain
[root@localhost ~]# hostnamectl set-hostname --pretty paragon.localdomain

Los cambios no se conservan después de un reinicio (al contrario de lo que afirman muchas personas). ¿Qué está mal?

  • Yo realmente no quiero editar /etc/hostnamemanualmente.

También debo tener en cuenta que este es un fedora completamente stock. Ni siquiera he llegado a instalar mis aplicaciones principales todavía.

PythonNut
fuente
Esto también tenía información similar sobre el problema: ask.fedoraproject.org/en/question/37413/… y esto: dbaora.com/install-fedora-20
slm
De hecho, esta es una de mis fuentes. Sin embargo, ninguna de las soluciones que pude extraer de esa página funcionó ...
PythonNut
¿Qué tan recientemente instaló / configuró este sistema? ¿Ha estado presente el problema desde la instalación? ¿También hay algún error con esos hostnamectlcomandos? El enlace al bugzilla que algo publicado parece ser su mejor pista.
slm
Lo instalé el 1/10/14, y desde entonces los hostnamectlcomandos no funcionaron, pero ahora sí.
PythonNut
El error vinculado a la solución aceptada fue solo un momento desafortunado para usted. Lo arreglaron en sentido ascendente y debería estar funcionando para futuros usuarios.
slm

Respuestas:

39

El comando para establecer el nombre de host es, sin duda, hostnamectl.

root ~ # hostnamectl set-hostname --static "YOUR-HOSTNAME-HERE"

Aquí hay una fuente adicional que describe esta funcionalidad un poco más, titulada: Configuración correcta del nombre de host: Fedora 20 en Amazon EC2 .

Además, la página del manual para hostnamectl:

HOSTNAMECTL(1)                    hostnamectl                   HOSTNAMECTL(1)

NAME
       hostnamectl - Control the system hostname

SYNOPSIS
       hostnamectl [OPTIONS...] {COMMAND}

DESCRIPTION
       hostnamectl may be used to query and change the system hostname and
       related settings.

       This tool distinguishes three different hostnames: the high-level
       "pretty" hostname which might include all kinds of special characters
       (e.g. "Lennart's Laptop"), the static hostname which is used to
       initialize the kernel hostname at boot (e.g. "lennarts-laptop"), and
       the transient hostname which is a default received from network
       configuration. If a static hostname is set, and is valid (something
       other than localhost), then the transient hostname is not used.

       Note that the pretty hostname has little restrictions on the characters
       used, while the static and transient hostnames are limited to the
       usually accepted characters of Internet domain names.

       The static hostname is stored in /etc/hostname, see hostname(5) for
       more information. The pretty hostname, chassis type, and icon name are
       stored in /etc/machine-info, see machine-info(5).

       Use systemd-firstboot(1) to initialize the system host name for mounted
       (but not booted) system images.

Hay un error en Fedora 21 en el que SELinux impide el acceso hostnamectl, que se encuentra aquí, titulado: Error 1133368 - SELinux impide que systemd-hostnam 'desvincula' los accesos en el nombre de host del archivo .

Este error parece estar relacionado. Hay un problema con los contextos SELinux que no se aplican correctamente al archivo /etc/hostnamedespués de la instalación. Esto se manifiesta en que la herramienta hostnamectlno puede manipular el archivo /etc/hostname. Ese mismo hilo ofreció esta solución:

$sudo restorecon -v /etc/hostname

NOTA: Los parches se aplicaron a Anaconda (la herramienta de instalación) para que este problema desaparezca en el futuro para los nuevos usuarios.

algo algo
fuente
3

La causa probable de esto es su cliente dhcp. Si está utilizando dhcpcd, que es común, la solución es agregar la siguiente línea a /etc/dhcpcd.conf:

nohook hostname

Esto evita que dhcpcd llame al script que cambia el nombre de host del sistema.

Por defecto, dhcpcd ejecuta todos los ganchos presentes /lib/dhcpcd/dhcpcd-run-hooks(la ruta puede diferir en su sistema). El uso nohookdesactiva los específicos.

Patricio
fuente
1
Para mis instalaciones de 21 y rawhide, /etc/dhcpd.confno existe. Además, systemctl status dhcpcdregresanot-found (Reason: No such file or directory)
PythonNut