Нужно дополнительно уговаривать apache работать с documentRoot, принадлежащим другому юзеру.
Что вы подразумеваете под дополнительной? Включаете mpm и прописываем дополнительные настройки. Всё равно будет один файл, в котором будут указаны настройки.
У вас есть конфиг. В одной части описываются пользователи, в другой, хосты. То есть вы отталкиваетесь не от пользователя, а от какого-то параметра системы — пользователи должны быть такими(имя, домашняя папка, uid...), сервисы такими: ssh, httpd(virtualhost номер1(настройки апача, настройки php), virtualhost номер 2(тут что-то своё).
Скорее всего, у вас нет этих потребностей, вот и всё. Например, файл hosts может быть нужен либо при специфической настройке сети, либо при разработке, а необходимость синхронизировать изменения, при одновременном использовании и ноутбука и стационарного.
Аналогичным образом может возникнуть вопрос с пакетами — кому-то достаточно небольшого количества стандартных пакетов в его дистрибутиве, а кому-то нужны либо более свежие версии, либо собранные с другими параметрами.
Если какое-то условие не исполняется, то вы не сможете оценить данные преимущества.
Бывает, например, редактировался /etc/fstab. Впрочем, если речь идёт о рядовом пользователе, то скорее всего он так глубоко не лазит.
При чем, надо писать конфиг для вещей, которые люди целеноправленно годами выносили в UI.
Большая часть тонких настроек, более сложных чем поворот экрана, или отключение заставки, делается через конфигурационные файлы, например взаимодействие с systemd, редактирование файла hosts и так далее. Возможно, в каких-то дистрибутивах это и делается через графические утилиты, но я с этим не сталкивался. Если вы этим не занимаетесь и просто читаете интернет, пишите тексты и смотрите фильмы, то пожалуй единственное, что может предложить Nix — это лёгкий откат к предыдущему состоянию, например, после обновления.
Например, нужно развернуть тестовый сайт или новый сайт.
Перенести mysql — достаточно плохо. Часть настроек — в файлах, часть — внутри БД.
В Nix можно включать фрагменты кода на других языках.
Если я правильно понял, все скрипты для этих действий (включая принятие решения, что именно нужно копировать, и каким образом переносить и куда)
Копирования данных нужно делать самостоятельно(хотя возможна некоторая автоматизация). Но, например, создание отдельного пользователя, в домашней папке которого будет корень сайта — автоматизировано.
Все равно придется разбираться, что и как изменилось и тд.
Если в обычном дистрибутиве вы не смогли загрузится, то вам нужен живой носитель, иначе в систему вы не попадёте, или работать она не будет. В случае nix в меню загрузки вы выбираете предыдущую систему и уже в ней смотрите. Сломать систему окончательно, чтобы она развалилась становится гораздо сложнее.
Вот надо мне чтобы в XFCE было две панели шириной Х, расположенные так-то с таким-то набором апплетов. Мне это всё надо на языке Nix написать?
Если хотите. Можно в конфиге просто указать, что вы хотите себе XFCE, а настраивать его руками, как в обычном дистрибутиве, а можно добавить его настройки к общим настройкам системы. Аналогично можно редактировать сеть через обычный NetworkManager(или что вы там себе поставите), в этом случае, подключение к сети будет точно так же как и в условной убунте. Так же это означает, что если вы перенесёте свой конфиг на другое устройство, а настраивали вы что-то руками, то этих настроек у вас не будет.
И как вы себе это представляете? Как вы будете редактировать файл в слепую? Сколько это времени у вас займёт?
Nix конфиг же тоже не сам пишется кнопкой «сделай мне збс».
Смысл как раз в том, что установленная система это не чёрный ящик, в которой что-то изменено, а система с конкретными настройками. Для того, чтобы получить нечто подобное на не nix, нужно скачивать пакет, распаковывать из него конфиг, делать diff для него и системного конфига.
Большая часть конифгов задаётся на языке nix, и как следствие проверяется перед началом сборки. Небольшой объём задаётся в виде простых строк, но он локализован, и соответственно затронет только данный пакет.
Вопрос в количестве действий. Для дебианоподобных, это 1) получить спиоск пакетов 2) и репозиториев, 3) импортировать репозитории, 4) обновление репозиториев, 5) установка пакетов. У убунты всё больше пакетов идёт через snap, соответственно тут тоже 6) получение 7) установка. Соответственно, каждый этот шаг нужно сделать руками.
Хорошо, усложним задачу — у вас есть старая система, например ubuntu 18.04 и новая система, например 20.04. Здесь уже просто так не скопировать конфиги, желательно ещё и обновить старую систему.
Тут смысл в том, apt install просто установит программы с настройками по умолчанию, так что как минимум /etc в примере выше тоже нужно будет копировать.
Пишешь конфигурационный скрипт и всё. Просто на баше а не на никсе.
Вы писали такой код сами или просто предполагаете? Даже для простого переноса десяти конфигов уже нужно постараться, например, запаковать их в архив и распаковать на второй системе, после этого перезапустить соответствующие приложения. Если хочется отслеживать изменения между версиями, то уже нужно делать какую-то систему сборки. Если нужна возможность отката, то это нужно либо какой-то дополнительный инструмент подключать, либо ещё раз писать скрипты. Какой объём всего этого у вас получиться?
У вас есть конфиг. В одной части описываются пользователи, в другой, хосты. То есть вы отталкиваетесь не от пользователя, а от какого-то параметра системы — пользователи должны быть такими(имя, домашняя папка, uid...), сервисы такими: ssh, httpd(virtualhost номер1(настройки апача, настройки php), virtualhost номер 2(тут что-то своё).
В данном случае из коробки.
Аналогичным образом может возникнуть вопрос с пакетами — кому-то достаточно небольшого количества стандартных пакетов в его дистрибутиве, а кому-то нужны либо более свежие версии, либо собранные с другими параметрами.
Если какое-то условие не исполняется, то вы не сможете оценить данные преимущества.
Большая часть тонких настроек, более сложных чем поворот экрана, или отключение заставки, делается через конфигурационные файлы, например взаимодействие с systemd, редактирование файла hosts и так далее. Возможно, в каких-то дистрибутивах это и делается через графические утилиты, но я с этим не сталкивался. Если вы этим не занимаетесь и просто читаете интернет, пишите тексты и смотрите фильмы, то пожалуй единственное, что может предложить Nix — это лёгкий откат к предыдущему состоянию, например, после обновления.
В Nix можно включать фрагменты кода на других языках.
Копирования данных нужно делать самостоятельно(хотя возможна некоторая автоматизация). Но, например, создание отдельного пользователя, в домашней папке которого будет корень сайта — автоматизировано.
Если хотите. Можно в конфиге просто указать, что вы хотите себе XFCE, а настраивать его руками, как в обычном дистрибутиве, а можно добавить его настройки к общим настройкам системы. Аналогично можно редактировать сеть через обычный NetworkManager(или что вы там себе поставите), в этом случае, подключение к сети будет точно так же как и в условной убунте. Так же это означает, что если вы перенесёте свой конфиг на другое устройство, а настраивали вы что-то руками, то этих настроек у вас не будет.
Смысл как раз в том, что установленная система это не чёрный ящик, в которой что-то изменено, а система с конкретными настройками. Для того, чтобы получить нечто подобное на не nix, нужно скачивать пакет, распаковывать из него конфиг, делать diff для него и системного конфига.
Хорошо, усложним задачу — у вас есть старая система, например ubuntu 18.04 и новая система, например 20.04. Здесь уже просто так не скопировать конфиги, желательно ещё и обновить старую систему.