Ho sentito che la modifica del nome host nelle nuove versioni di fedora viene eseguita con hostnamectl
. Inoltre, di recente (e con successo) ho cambiato il mio nome host su Arch Linux con questo metodo. Tuttavia, durante lesecuzione:
[root@localhost ~]# hostnamectl set-hostname --static paragon.localdomain [root@localhost ~]# hostnamectl set-hostname --transient paragon.localdomain [root@localhost ~]# hostnamectl set-hostname --pretty paragon.localdomain
Le modifiche non vengono conservate dopo un riavvio (contrariamente a quanto affermato da molte persone). Cosa cè che non va?
- Veramente non voglio modificare
/etc/hostname
manualmente.
Dovrei anche notare che questo è un fedora completamente di serie. Non sono ancora riuscito a installare le mie app principali.
Commenti
Risposta
Il comando per impostare il nome host è sicuramente hostnamectl
.
root ~ # hostnamectl set-hostname --static "YOUR-HOSTNAME-HERE"
Ecco una fonte aggiuntiva che descrive questa funzionalità un po di più, intitolata: Impostazione corretta del nome host – Fedora 20 su Amazon EC2 .
Inoltre la pagina man per 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.
Cè un bug in Fedora 21 dove SELinux impedisce laccesso a hostnamectl , trovato qui, intitolato: Bug 1133368 – SELinux sta impedendo a systemd-hostnam di “unlink” accessi sul file hostname .
Questo bug sembra essere correlato. Cè un problema con i contesti SELinux non applicati correttamente al file /etc/hostname
al momento dellinstallazione. Ciò si manifesta nel fatto che lo strumento hostnamectl
non è in grado di manipolare il file /etc/hostname
. Lo stesso thread ha offerto questa soluzione alternativa:
$sudo restorecon -v /etc/hostname
NOTA: Quelle patch sono state applicate ad Anaconda (lo strumento di installazione) in modo che il problema scomparisse in futuro per i nuovi utenti.
Risposta
La probabile causa di ciò è il tuo client dhcp. Se stai utilizzando dhcpcd, che è comune, la soluzione è aggiungere la seguente riga a /etc/dhcpcd.conf
:
nohook hostname
Questo impedisce a dhcpcd di chiamare lo script che cambia il nome host del tuo sistema.
Per impostazione predefinita, dhcpcd esegue tutti gli hook presenti /lib/dhcpcd/dhcpcd-run-hooks
(il percorso potrebbe differire sul tuo sistema). Luso di nohook
disabilita quelli specifici.
Commenti
- Sia per il mio 21 che per rawhide installs,
/etc/dhcpd.conf
non esiste. Inoltre,systemctl status dhcpcd
restituiscenot-found (Reason: No such file or directory)
hostnamectl
? Il collegamento al bug bugzilla che qualcosa ha pubblicato sembra il tuo miglior vantaggio.hostnamectl
non lo hanno fatto funzionano, ma ora lo fanno.