web-dev-qa-db-ja.com

Fedora 21でホスト名を永久に変更する方法

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手動で。

これは完全にストックのFedoraであることにも注意してください。コアアプリのインストールにまだ慣れていません。

35
PythonNut

ホスト名を設定するコマンドは間違いなくhostnamectlです。

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

ホスト名を正しく設定する-Amazon EC2上のFedora 20

さらに、hostnamectlのmanページ:

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.

Bug 1133368-SELinuxは、systemd-hostnamがファイルhostname へのアクセスを「リンク解除」するのを妨げています。

このバグは関連しているようです。 SELinuxコンテキストがファイルに正しく適用されていないという問題があります/etc/hostnameインストール時に。これは、ツールhostnamectlがファイルを操作できない/etc/hostname。同じスレッドがこの回避策を提供しました:

$Sudo restorecon -v /etc/hostname

注:そのパッチはAnaconda(インストールツール)に適用されたため、この問題は新しいユーザーが将来的に解決するはずです。

39

この原因として考えられるのは、dhcpクライアントです。一般的なdhcpcdを使用している場合の解決策は、/etc/dhcpcd.confに次の行を追加することです。

nohook hostname

これにより、dhcpcdがシステムのホスト名を変更するスクリプトを呼び出せなくなります。

デフォルトでは、dhcpcdは存在するすべてのフック/lib/dhcpcd/dhcpcd-run-hooksを実行します(パスはシステムによって異なる場合があります)。 nohookを使用すると、特定のものは無効になります。

4
Patrick