Bug 48641 - сломалось предложение полезного имени хоста
Summary: сломалось предложение полезного имени хоста
Status: NEW
Alias: None
Product: Альт Сервер
Classification: Distributions
Component: Установка (show other bugs)
Version: 10.1
Hardware: e2k Linux
: P5 normal
Assignee: Michael Shigorin
QA Contact: qa-p8@altlinux.org
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2023-11-30 17:01 MSK by Michael Shigorin
Modified: 2023-11-30 20:46 MSK (History)
3 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Michael Shigorin 2023-11-30 17:01:19 MSK
В какой-то до конца не ясный момент произошло изменение поведения инсталятора: если до этого при доступности сетевого интерфейса с DHCP на стадии конфигурирования сети по возможности предлагалось имя из DNS, то теперь стали лезть безликие "host-${последний_октет_адреса}".

Заметил, что в консоли инсталятора "resolve адрес" моментально возвращает "localhost.localdomain" -- при том, что в /etc/resolv.conf правильно указаны DNS-серверы, полученные по DHCP.

В итоге выяснилось, что гадит попавшая в инсталятор libnss-myhostname;
если из /etc/nsswitch.conf убрать "myhostname" в строке hosts:, начинают нормально работать и resolve в консоли, и alterator-net-eth на своём шаге.

Собираюсь исправить в installer.
Comment 1 Michael Shigorin 2023-11-30 19:27:56 MSK
Там же рядом замечен /etc/nsswitch.conf.rpmorig _без_ myhostname для hosts:,
но с systemd для passwd:/group: (в отличие от /etc/nsswitch.conf).

Кто это делает?
Comment 2 Andrew Vasilyev 2023-11-30 20:46:01 MSK
  См., например, systemd.spec:

%post -n libnss-myhostname
if [ -f /etc/nsswitch.conf ] ; then
        grep -E -q '^hosts:.* myhostname' /etc/nsswitch.conf ||
        sed -i.rpmorig -r -e '
                s/^(hosts):(.*) files(.*) dns/\1:\2 files myhostname\3 dns/
                ' /etc/nsswitch.conf >/dev/null 2>&1 || :
    # Fix: move myhostname after files
    if grep -E -q '^hosts:.* dns myhostname' /etc/nsswitch.conf ; then
        sed -i.rpmorig -r -e '
                s/^(hosts):(.*) files(.*) dns myhostname/\1:\2 files myhostname\3 dns/
                ' /etc/nsswitch.conf >/dev/null 2>&1 || :
    fi
    if grep -E -q '^hosts:.* myhostname.*files' /etc/nsswitch.conf ; then
        sed -i.rpmorig -r -e '
                s/^(hosts):(.*) myhostname(.*) files(.*)/\1:\2 files myhostname\3\4/
                ' /etc/nsswitch.conf >/dev/null 2>&1 || :
    fi
fi