Что, если я хочу, чтобы /etc назывался как-то иначе?

Они отсортированы численно, но joinтребует лексикографической сортировки :24968, затем 479; и 24965, 24968, 88, затем 96.

1
14.10.2020, 00:23
2 ответа

Does the kernel assume it's existence?

Нет; ядро очень мало предполагает о содержимом файловых систем, с которыми оно используется. Ядро будет искать /etc/initпри некоторых обстоятельствах (вместе с /sbin/initи т. д. ), а некоторые промежуточные драйверы используют помощники в etc, но ядро ​​будет нормально работать и без /etc.

GLibc certainly has "/etc/hosts" hard-coded in the source.

Да, да .

How many of these paths are there in glibc? Is there a list somewhere? How hard would if be to change them?

В моей копии репозитория grep -r '"/etc'находит 86 экземпляров. Я нигде не знаю поддерживаемого списка. Изменить пути в исходном коде не так уж сложно.

How much of the software on a bare bones embedded linux image is looking in there?

Это сложнее определить. Программы, ожидающие своей конфигурации в /etc, обязательно заглянут туда; многие другие будут косвенно, через библиотеки, хотя бы библиотеку C. Первый потребует изменений для использования другого пути; последний подхватит любые изменения, внесенные в рассматриваемые библиотеки.

How would we find out?

grep... См. также соответствующий поиск исходного кода в Debian .

Could we change it without recompiling?

Нет. Связанный с этим вопрос заключается в том, сколько изменений потребуется перед повторной компиляцией. Созданные Autoconf -скрипты configureчасто поддерживают параметр sysconfdir, который по умолчанию равен /etcили /usr/local/etc, но он не подходит для всех ситуаций — во многих случаях он определяет, где программа устанавливает и ищет свои собственные файлы конфигурации, но это не изменит того, где программа ищет другие файлы, которые она ожидает в/etc(см. библиотеку GNU C ).

And then, how much more is there in, for example, Ubuntu, that would have to be changed?

Я подозреваю, что все меньше и меньше по мере продвижения «вверх по стеку». Все, что настраивается пользователем -, в большинстве случаев будет иметь значения по умолчанию в /etc, и многие программы в настоящее время вообще не имеют никакой конфигурации в /etc, а если и делают, то это обеспечивается с помощью какого-либо механизма, отличного от непосредственного просмотра /etc..

But if the Linux ecosystem were set up to make such a thing feasible, what might that look like?

Это может выглядеть как одна из спецификаций freedesktop.org , которые определяют, как программы находят файлы (XDG и т. д. ).

3
18.03.2021, 22:57

Вы спрашиваете о Gnu/Linux. (Linux — это ядро, которое также часто ошибочно используется для описания всей ОС. Поскольку ОС — это ядро, оболочка, командные инструменты, библиотеки и компилятор, я думаю, что это мог сказать Деннис Ричи. У вас может быть Linux без GNU :android и Gnu без Linux :cygwin, подсистема Windows для Linux 1, Gnu/Hurd, Gnu на BSD, Gnu на Solaris, …)

Назад к вашему вопросу

Просто перекомпилируйте каждую программу, чтобы найти конфигурацию в другом месте.

Любая программа, использующая auto -conf, может быть легко скомпилирована с использованием различных местоположений. Для этого могут быть веские причины. Но зачем менять значение по умолчанию.

Альтернативно все символические ссылки от /confдо /etc.(cd /; ln -s -T /etc /conf )

0
18.03.2021, 22:57

Теги

Похожие вопросы