Як назавжди змінити ім'я хоста у Fedora 21


35

Я чув, що зміна імені хоста в нових версіях fedora здійснюється за допомогою hostnamectlкоманди. Крім того, я нещодавно (і успішно) змінив своє ім’я хоста в Arch Linux цим методом. Однак при запуску:

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

Зміни не зберігаються після перезавантаження (всупереч твердженням багатьох людей про це). Що не так?

  • Я дійсно не хочу , щоб редагувати /etc/hostnameвручну.

Я також повинен зазначити, що це повністю запасна федера. Я навіть не збирався ще встановити свої основні програми.


Це стосувалося також подібної інформації щодо проблеми: ask.fedoraproject.org/en/question/37413/… & this: dbaora.com/install-fedora-20
slm

Дійсно, це одне з моїх джерел. Однак жодне з рішень, які я міг витягти з цієї сторінки, не спрацював ...
PythonNut

Як недавно ви встановили / налаштували цю систему? Чи існує проблема після встановлення? Чи є помилки з тими hostnamectlкомандами? Посилання на помилку баггілла, яку щось розміщується, здається вашим найкращим результатом.
slm

Я встановив 10/1/14, і з того часу hostnamectlкоманди не працювали, але зараз вони роблять.
PythonNut

Помилка, на яку посилається прийняте рішення, була для вас просто невдалим часом. Вони виправили це вгору за течією, і це повинно працювати з майбутніми користувачами.
slm

Відповіді:


39

Команда встановити ім'я хоста, безумовно, hostnamectl.

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

Ось додаткове джерело, яке трохи більше описує цю функціональність, під назвою: Правильне встановлення імені хоста - Fedora 20 на Amazon EC2 .

Додатково довідкова сторінка для 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.

У Fedora 21 є помилка, де SELinux забороняє доступ до hostnamectl, знайдений тут, під назвою: Bug 1133368 - SELinux заважає systemd-hostnam не "від’єднувати" доступ до імені файлу .

Ця помилка, здається, пов’язана. Існує проблема з тим, що контексти SELinux не застосовуються належним чином до файлу /etc/hostnameпри встановленні. Це виявляється в тому, що інструмент hostnamectlне може маніпулювати файлом /etc/hostname. Ця ж нитка запропонувала цей спосіб вирішення:

$sudo restorecon -v /etc/hostname

ПРИМІТКА. Патчі були застосовані до Anaconda (інструменту інсталяції), щоб ця проблема в майбутньому перейшла для нових користувачів.


3

Ймовірна причина цього - ваш клієнт dhcp. Якщо ви використовуєте dhcpcd, який є загальним, рішення полягає в тому, щоб додати такий рядок до /etc/dhcpcd.conf:

nohook hostname

Це запобігає виклику dhcpcd до сценарію, який змінює ім'я хоста вашої системи.

За замовчуванням dhcpcd запускає всі присутні гачки /lib/dhcpcd/dhcpcd-run-hooks(шлях може відрізнятися у вашій системі). Використання nohookвідключає конкретні.


1
Як для моїх 21, так і для rawhide встановлень /etc/dhcpd.confне існує. Крім того, systemctl status dhcpcdповертаєтьсяnot-found (Reason: No such file or directory)
PythonNut
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.