Поставил dhcp-static, а etcnet заявляет мне, что такого нет. Что с ними случилось?
В версии 0.9.10 эта ошибка исправлялась. У вас какая версия?
[user@plc-182207 ~]$ rpm -qa | grep etcnet etcnet-defaults-desktop-0.9.10-alt1 etcnet-0.9.10-alt1
Тогда мне нужен точный способ воспроизвести это.
Какой такой точный способ? Всё стандартно. Имеем eth0/options: TYPE=eth BOOTPROTO=dhcp-static И eth0/ipv4address: 192.168.1.1/24 Перезапускаю сеть и получаю: unknown BOOTPROTO 'dhcp-static'
Воспроизводится. Починить могу, а объяснить --- нет. В блоке case есть следующий вариант с pathname expansion: dhcp[\ -,]static) На первый взгляд диапазон состоит из всех символов от пробела до запятой. На практике же до некоторых пор диапазон включал только пробел, минус и запятую. Так вот у меня (Sisyphus, bash-3.2.48-alt3) из командной строки на значении "dhcp-static" он срабатывает, а из файла /etc/net/scripts/config-ipv4 --- не срабатывает. Списать несрабатывание на то, что по неведомым причинам минус между пробелом и запятой раскрылся в символы от пробела до запятой, нельзя. На значении "dhcp%static" имеющееся выражение тоже не реагирует, если оно используется в config-ipv4. Если исправить на следующий вариант, то он работает и из командной строки, и из файла config-ipv4: dhcp[-,\ ]static)
(В ответ на комментарий №5) > Воспроизводится. Починить могу, а объяснить --- нет. Влияет локаль, но каков именно принцип, я не знаю: [imz@etik ~]$ bash -c 'case dhcp-static in dhcp[\ -,]static) echo Matched; ;; esac; locale' Matched LANG=ru_RU.UTF-8 LC_CTYPE="ru_RU.UTF-8" LC_NUMERIC="ru_RU.UTF-8" LC_TIME="ru_RU.UTF-8" LC_COLLATE="ru_RU.UTF-8" LC_MONETARY="ru_RU.UTF-8" LC_MESSAGES="ru_RU.UTF-8" LC_PAPER="ru_RU.UTF-8" LC_NAME="ru_RU.UTF-8" LC_ADDRESS="ru_RU.UTF-8" LC_TELEPHONE="ru_RU.UTF-8" LC_MEASUREMENT="ru_RU.UTF-8" LC_IDENTIFICATION="ru_RU.UTF-8" LC_ALL= [imz@etik ~]$ LC_ALL=C bash -c 'case dhcp-static in dhcp[\ -,]static) echo Matched; ;; esac; locale' LANG=ru_RU.UTF-8 LC_CTYPE="C" LC_NUMERIC="C" LC_TIME="C" LC_COLLATE="C" LC_MONETARY="C" LC_MESSAGES="C" LC_PAPER="C" LC_NAME="C" LC_ADDRESS="C" LC_TELEPHONE="C" LC_MEASUREMENT="C" LC_IDENTIFICATION="C" LC_ALL=C [imz@etik ~]$ rpm -q bash bash-3.1.17-alt3 [imz@etik ~]$
(В ответ на комментарий №5) > срабатывает. Списать несрабатывание на то, что по неведомым причинам минус > между пробелом и запятой раскрылся в символы от пробела до запятой, нельзя. На > значении "dhcp%static" имеющееся выражение тоже не реагирует, если оно > используется в config-ipv4. Хм, в моём тесте реагирует: [imz@etik ~]$ bash -c 'case dhcp%static in dhcp[\ -,]static) echo Matched; ;; esac; locale' LANG=ru_RU.UTF-8 LC_CTYPE="ru_RU.UTF-8" LC_NUMERIC="ru_RU.UTF-8" LC_TIME="ru_RU.UTF-8" LC_COLLATE="ru_RU.UTF-8" LC_MONETARY="ru_RU.UTF-8" LC_MESSAGES="ru_RU.UTF-8" LC_PAPER="ru_RU.UTF-8" LC_NAME="ru_RU.UTF-8" LC_ADDRESS="ru_RU.UTF-8" LC_TELEPHONE="ru_RU.UTF-8" LC_MEASUREMENT="ru_RU.UTF-8" LC_IDENTIFICATION="ru_RU.UTF-8" LC_ALL= [imz@etik ~]$ LC_ALL=C bash -c 'case dhcp%static in dhcp[\ -,]static) echo Matched; ;; esac; locale' Matched LANG=ru_RU.UTF-8 LC_CTYPE="C" LC_NUMERIC="C" LC_TIME="C" LC_COLLATE="C" LC_MONETARY="C" LC_MESSAGES="C" LC_PAPER="C" LC_NAME="C" LC_ADDRESS="C" LC_TELEPHONE="C" LC_MEASUREMENT="C" LC_IDENTIFICATION="C" LC_ALL=C [imz@etik ~]$
рабочий пример: # cat /etc/net/ifaces/ktl0/ipv4route default via 192.168.131.1 table ktl realm ktl 192.168.120.2 via 192.168.131.1 realm ktl 95.128.136.130 via 192.168.131.1 realm ktl 62.182.30.146 via 192.168.131.1 realm ktl add throw 10.0.0.0/8 table ktl add throw 192.168.0.0/16 table ktl add throw 172.16.0.0/13 table ktl как я помню, в докунметации отмечено, что если есть желание добавить маршрут as-is, то надо добавлять add. рекомендую закрыть как WORKSFORME.
ой!!! виноват, это рядом должно было быть :)
fixed in 0.9.10-alt2