Jeg har hørt, at ændring af værtsnavnet i nye versioner af fedora sker med hostnamectl
kommando. Derudover har jeg for nylig (og med succes) ændret mit værtsnavn på Arch Linux med denne metode. Når jeg kører:
[root@localhost ~]# hostnamectl set-hostname --static paragon.localdomain [root@localhost ~]# hostnamectl set-hostname --transient paragon.localdomain [root@localhost ~]# hostnamectl set-hostname --pretty paragon.localdomain
Ændringerne bevares ikke efter en genstart (i modsætning til hvad mange mennesker hævder, at den gør). Hvad er der galt?
- Jeg virkelig vil ikke redigere
/etc/hostname
manuelt.
Jeg skal også bemærke, at dette er en fuldstændig stock fedora. Jeg er ikke engang kommet rundt med at installere mine kerne-apps endnu.
Kommentarer
Svar
Kommandoen til at indstille værtsnavnet er bestemt, hostnamectl
.
root ~ # hostnamectl set-hostname --static "YOUR-HOSTNAME-HERE"
Her er en ekstra kilde, der beskriver denne funktionalitet lidt mere med titlen: Korrekt indstilling af værtsnavnet – Fedora 20 på Amazon EC2 .
Derudover mandsiden til 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.
Der er en fejl i Fedora 21, hvor SELinux forhindrer hostnamectl-adgang , fundet her, med titlen: Fejl 1133368 – SELinux forhindrer systemd-hostnam i at “fjerne link” til filens værtsnavn .
Denne fejl synes at være relateret. Der er et problem med, at SELinux-sammenhænge ikke anvendes korrekt på filen /etc/hostname
efter installationen. Dette manifesterer sig i, at værktøjet hostnamectl
ikke er i stand til at manipulere filen /etc/hostname
. Den samme tråd tilbød denne løsning:
$sudo restorecon -v /etc/hostname
BEMÆRK: At patches blev anvendt på Anaconda (installationsværktøjet), så dette problem skulle forsvinde i fremtiden for nye brugere.
Svar
Den sandsynlige årsag til dette er din dhcp-klient. Hvis du “bruger dhcpcd, hvilket er almindeligt, er løsningen at tilføje følgende linje til /etc/dhcpcd.conf
:
nohook hostname
Dette forhindrer dhcpcd i at kalde på scriptet, der ændrer dit systemværtsnavn.
Som standard kører dhcpcd alle de nuværende kroge /lib/dhcpcd/dhcpcd-run-hooks
(stien kan variere på dit system). Brug af nohook
deaktiverer specifikke.
Kommentarer
- For både mine 21 og rawhide-installationer,
/etc/dhcpd.conf
findes ikke. Derudover returnerersystemctl status dhcpcd
not-found (Reason: No such file or directory)
hostnamectl
kommandoer? Linket til bugzilla-bugten, som noget sendte noget, ser ud som din bedste kundeemne.hostnamectl
kommandoerne ikke arbejde, men nu gør de det.