LINUX.ORG.RU

Функциональный менеджер пакетов Nix: Часть 4. Дистрибутив NixOS

 ,


0

2

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

>>> Подробности

это уже красноглазие побольше арча.

uju ★★ ()

в чём киллер-фича?

anonymous ()
Ответ на: комментарий от anonymous

> в чём киллер-фича?

Таким образом, NixOS абстрагирует детали реализации системы и разнородный синтаксис конфигурационных файлов под однородным синтаксисом Nix-выражений.

Теперь у нас есть скрипты для управления скриптами скриптов. Ура!

wstorm ★★ ()

> Для примера, поискав настройки для утилиты sudo, находим атрибут security.sudo.configFile, который принимает содержимое sudoers файла. Добавляем его в configuration.nix...

Я правильно понимаю, что sendmail.cf, exim.conf или httpd.conf тоже теперь лежат в configurations.nix?!

monk ★★★★★ ()

ой блин, еще одно мертворожденное создание:

Функциональный менеджер пакетов Nix: Часть 1.Базовое использование

Функциональный подход заключается в том, что пакет собирается функцией, не имеющей побочных эффектов, т. е. операции в Nix не являются деструктивными. Таким образом, операции установки и обновления как пакетов, так и целиком системы безопасны (sic!!) и позволяют осуществлять откат не только к предыдущему, но и к более ранним состояниям.
Для описания зависимостей пакета и процесса сборки используется специализированный язык. Также помощью этого языка можно точно описать и воссоздать на целевой системе то окружение, в котором пакет собирался разработчиком (ха-ха-xа .). Под окружением понимается набор установленных библиотек, их версий, версия компилятора, набор служебных утилит, значения переменных окружения и т. п. (ну все ...)

elipse ★★★ ()

Mother Fucker, я не понимаю, какая религия не позволяет использовать положительный опыт Mac OS X и просто рассовывать каждую программу в свой каталог?
/Application/current -> <Версия>

Концепция настолько элементарная, что и придумывать больше нечего. Гениально и просто. Но каждый м-к так и норовит свои м-кие концепции протащить, на пустом месте какую-то ... городить! Таких ексхербистов нужно по заявленному месту бить до полного прояснения их замутнённых недо(сыпом) мозгов.

DRVTiny ★★★★★ ()
Ответ на: комментарий от DRVTiny

Nix(OS) почти так и делает. Кроме того, можно одновременно держать несколько версий одного пакета и пользоваться той версией, которая нужна. Список активных пакетов/версий называеся профилем и их можно быстро переключать.

При обновлении пакетов старые версии автоматически не затираются(это делается при сборке мусора после удаления старых профилей по команде пользователя). Это позволяет мновенно(за несколько секунд) откатиться на страрые версии пакетов если новые не работают и ждать исправлений пользуясь работающей системой.

Это же позволяет сначала скачать/собрать все обновления, а потом мгновенно переключиться на них, в отличие от ситуации в других дистрах при большом обновлении(например QT+KDE+зависимоси): Gentoo может собирать это например сутки(если все соберется!), Ubuntu на медленном канале может тоже весь день обновляться. Пока идет постепенная замена пакетов полноценно пользоваться DE довольно сложно т.к. начинают отваливаться плагины итд, а если пропадет электричество или перегреется комп, то окончания обновления возможно прийдется ждать в консоли.

NixOS позволяет делать аналогичные вещи еще и с конфигурацией системы(/etc) т.е. при переключении профилей подобным образом переключаются конфиги. Помимо этого, включение определенных опций может автоматически устанавливать и настраивать опциональные зависимости. Например, если в настройках XServer выбрать kdm как display manager, то он будет скачан и установлен.

Это не полный список достоинств, описания очень сильно упрощены, чтобы была понятна суть.

Одним из доказательств того, что это эти преимущества реально полезны в жизни является то, что немало серверов успешно работают на trunk NixOS'а. TRUNK! Не stable и даже не testing. Все благодаря возможности «сидеть» на работающем профиле, и легко тестировать обновления не боясь развалить систему.

Еще в разработке находится disNix, которые позволяет подобным образом работать уже не одной машиной, а с сетью, настраивая и связывая серверы между собой, отслеживая все зависимости, и позволяя всегда быстро вернуться на работающую конфигурацию.

anonymous ()
Ответ на: комментарий от DRVTiny

Преимущества Nix*

Nix(OS) почти так и делает. Кроме того, можно одновременно держать несколько версий одного пакета и пользоваться той версией, которая нужна. Список активных пакетов/версий называеся профилем и их можно быстро переключать.

При обновлении пакетов старые версии автоматически не затираются(это делается при сборке мусора после удаления старых профилей по команде пользователя). Это позволяет мновенно(за несколько секунд) откатиться на страрые версии пакетов если новые не работают и ждать исправлений пользуясь работающей системой.

Это же позволяет сначала скачать/собрать все обновления, а потом мгновенно переключиться на них, в отличие от ситуации в других дистрах при большом обновлении(например QT+KDE+зависимоси): Gentoo может собирать это например сутки(если все соберется!), Ubuntu на медленном канале может тоже весь день обновляться. Пока идет постепенная замена пакетов полноценно пользоваться DE довольно сложно т.к. начинают отваливаться плагины итд, а если пропадет электричество или перегреется комп, то окончания обновления возможно прийдется ждать в консоли.

NixOS позволяет делать аналогичные вещи еще и с конфигурацией системы(/etc) т.е. при переключении профилей подобным образом переключаются конфиги. Помимо этого, включение определенных опций может автоматически устанавливать и настраивать опциональные зависимости. Например, если в настройках XServer выбрать kdm как display manager, то он будет скачан и установлен.

Это не полный список достоинств, описания очень сильно упрощены, чтобы была понятна суть.

Одним из доказательств того, что это эти преимущества реально полезны в жизни является то, что немало серверов успешно работают на trunk NixOS'а. TRUNK! Не stable и даже не testing. Все благодаря возможности «сидеть» на работающем профиле, и легко тестировать обновления не боясь развалить систему.

Еще в разработке находится disNix, которые позволяет подобным образом работать уже не одной машиной, а с сетью, настраивая и связывая серверы между собой, отслеживая все зависимости, и позволяя всегда быстро вернуться на работающую конфигурацию.

anonymous ()
Ответ на: комментарий от DRVTiny

Преимущества Nix

Nix(OS) почти так и делает. Кроме того, можно одновременно держать несколько версий одного пакета и пользоваться той версией, которая нужна. Список активных пакетов/версий называеся профилем и их можно быстро переключать.

При обновлении пакетов старые версии автоматически не затираются(это делается при сборке мусора после удаления старых профилей по команде пользователя). Это позволяет мновенно(за несколько секунд) откатиться на страрые версии пакетов если новые не работают и ждать исправлений пользуясь работающей системой.

Это же позволяет сначала скачать/собрать все обновления, а потом мгновенно переключиться на них, в отличие от ситуации в других дистрах при большом обновлении(например QT+KDE+зависимоси): Gentoo может собирать это например сутки(если все соберется!), Ubuntu на медленном канале может тоже весь день обновляться. Пока идет постепенная замена пакетов полноценно пользоваться DE довольно сложно т.к. начинают отваливаться плагины итд, а если пропадет электричество или перегреется комп, то окончания обновления возможно прийдется ждать в консоли.

NixOS позволяет делать аналогичные вещи еще и с конфигурацией системы(/etc) т.е. при переключении профилей подобным образом переключаются конфиги. Помимо этого, включение определенных опций может автоматически устанавливать и настраивать опциональные зависимости. Например, если в настройках XServer выбрать kdm как display manager, то он будет скачан и установлен.

Это не полный список достоинств, описания очень сильно упрощены, чтобы была понятна суть.

Одним из доказательств того, что это эти преимущества реально полезны в жизни является то, что немало серверов успешно работают на trunk NixOS'а. TRUNK! Не stable и даже не testing. Все благодаря возможности «сидеть» на работающем профиле, и легко тестировать обновления не боясь развалить систему.

Еще в разработке находится disNix, которые позволяет подобным образом работать уже не одной машиной, а с сетью, настраивая и связывая серверы между собой, отслеживая все зависимости, и позволяя всегда быстро вернуться на работающую конфигурацию.

anonymous ()
Ответ на: Преимущества Nix от anonymous

Пусть построят дистрибутив на этом менеджере пакетов, тогда я его потыкаю и поставлю.

vurdalak ★★★★★ ()
Ответ на: комментарий от vurdalak

Время ответа за слова наступило раньше их произнесения - дистрибутив у меня стоит 2 года как, ждём отчёта об установке.

anonymous ()

Заманчивая вещь, с ней можно не бояться питона.

Napilnik ★★★★★ ()
Ответ на: Преимущества Nix от anonymous

>Это не полный список достоинств, описания очень сильно упрощены, чтобы была понятна суть.
chroot, бекап отменили?
только у меня осоциация с реестром вин98, только написанным не индусами, а наркоманами?

system-root ★★★ ()
Ответ на: комментарий от anonymous

Debian-based не устанавливают по ходу скачивания. Учите матчасть.

Deleted ()
Ответ на: Преимущества Nix от anonymous

>Это же позволяет сначала скачать/собрать все обновления,

Неужели такое уже стало возможно ? Чудеса ...

а потом мгновенно переключиться на них,


Согласен, реклама - честной не бывает.

в отличие от ситуации в других дистрах при большом обновлении(например QT+KDE+зависимоси): Gentoo может собирать это например сутки(если все соберется!), Ubuntu на медленном канале может тоже весь день обновляться.


Они неудачники - у вас 100 мегабит канал и шестиголовый проц на 10 ГГц,
а сорцы сам Господь на HDD переносит. Все в пролете.

Пока идет постепенная замена пакетов полноценно пользоваться DE довольно сложно т.к. начинают отваливаться плагины итд, а если пропадет электричество или перегреется комп, то окончания обновления возможно прийдется ждать в консоли.


Можно подумать , что у вас есть какие-то особые гарантии беспроблемной жизни с софтом от just for fun.

Например, если в настройках XServer выбрать kdm как display manager, то он будет скачан и установлен.


А если сеть недоступна ?

Одним из доказательств того, что это эти преимущества реально полезны в жизни является то, что немало серверов успешно работают на trunk NixOS'а. TRUNK!


А работающие УЖЕ серверы, на существующих УЖЕ системах, НИЧЕГО не доказывают, естественно.))

Не stable и даже не testing. Все благодаря возможности «сидеть» на работающем профиле, и легко тестировать обновления не боясь развалить систему.


«не боясь» - это пока вас не лишили «невиннности» за простой и угробленные данные.





elipse ★★★ ()

Хотел написать «Все, императивные пакетные менеджеры можно закапывать!». Прочитал статью и понял что это не смешно.

vertexua ★★★☆☆ ()
Ответ на: комментарий от system-root

вещества

Бекап решает малую часть того, что я описал + как минимум nix накатывает/откатывает профили на порядки быстрее и проще в использовании

anonymous ()
Ответ на: комментарий от elipse

>Это же позволяет сначала скачать/собрать все обновления, Неужели такое уже стало возможно ? Чудеса ... > а потом мгновенно переключиться на них, Согласен, реклама - честной не бывает.

Медленные и поломанные обновления - не новое явление даже в популярных дистрах...

> в отличие от ситуации в других дистрах при большом обновлении(например QT+KDE+зависимоси): Gentoo может собирать это например сутки(если все соберется!), Ubuntu на медленном канале может тоже весь день обновляться. Они неудачники - у вас 100 мегабит канал и шестиголовый проц на 10 ГГц, а сорцы сам Господь на HDD переносит. Все в пролете.

а по сути сказать-то нечего...

> Пока идет постепенная замена пакетов полноценно пользоваться DE довольно сложно т.к. начинают отваливаться плагины итд, а если пропадет электричество или перегреется комп, то окончания обновления возможно прийдется ждать в консоли. Можно подумать , что у вас есть какие-то особые гарантии беспроблемной жизни с софтом от just for fun.

Конечно, как только в команде появляется платный быдлокодер, все баги иссчезают! А жалкий for fun NixOS может только гарантировать, что если у человека когда-то был рабочий конфиг, то на него можно всегда переключиться за несколько секунд и спокойно работать дальше...

Кстати, надо попробовать для стабильности в NixOS запаковать энтерпрайзные обои от Ubuntu.. может и правда меньше багов будет?

> Например, если в настройках XServer выбрать kdm как display manager, то он будет скачан и установлен. А если сеть недоступна ?

Обновление конфигурации не соберется, останется работать старая

> Одним из доказательств того, что это эти преимущества реально полезны в жизни является то, что немало серверов успешно работают на trunk NixOS'а. TRUNK! А работающие УЖЕ серверы, на существующих УЖЕ системах, НИЧЕГО не доказывают, естественно.))

trunk против stable? А прочитать что я написал НИКАК?

> Не stable и даже не testing. Все благодаря возможности «сидеть» на работающем профиле, и легко тестировать обновления не боясь развалить систему. «не боясь» - это пока вас не лишили «невиннности» за простой и угробленные данные.

От катастрофических ситуаций спасает бекап на котором кроме данных есть еще и стабильный профиль NixOS

anonymous ()
Ответ на: комментарий от anonymous

>> в отличие от ситуации в других дистрах при большом обновлении(например QT+KDE+зависимоси): Gentoo может собирать это например сутки(если все соберется!), Ubuntu на медленном канале может тоже весь день обновляться. Они неудачники - у вас 100 мегабит канал и шестиголовый проц на 10 ГГц, а сорцы сам Господь на HDD переносит. Все в пролете.

а по сути сказать-то нечего...


Дык, а что по сути ? Ну дохлый это у вас аргумент.
По сути сказать, что у меня нет таких ситуаций -
это как-то будет слишком банально и подозрительно.))
Хотя, это и чистая правда.

Обновление конфигурации не соберется, останется работать старая


ok

trunk против stable? А прочитать что я написал НИКАК?


Да есть там ирония. Так как много рекламы безоблачной жизни.
Обычно так дурят, возможно и неумышленно ..)

От катастрофических ситуаций спасает бекап на котором кроме данных есть еще и стабильный профиль NixOS


Возможно, это надо уже пробовать.




elipse ★★★ ()
Ответ на: комментарий от Deleted

> Debian-based не устанавливают по ходу скачивания. Учите матчасть.

Да, запамятовал. Из популярных так делает gentoo. При этом если какой-то пакет в debian не поставился(или комп вырубился в этом время), таки получается разломаная система, хотя это и не так часто бывает. А в gentoo это просто бесит.

При этом для простого пользователя гораздо легче в NixOS перезагрузиться и выбрать старый конфиг чем добираться до терминала и разбираться что дальше делать.

anonymous ()
Ответ на: комментарий от monk

> > Для примера, поискав настройки для утилиты sudo, находим атрибут security.sudo.configFile, который принимает содержимое sudoers файла. Добавляем его в configuration.nix... Я правильно понимаю, что sendmail.cf, exim.conf или httpd.conf тоже теперь лежат в configurations.nix?!

Обычно нет. Самые часто используемые настройки идут через опции NixOS. В редких случаях приходится ручками пару опций прописывать в конфиг. Насколько редко? У меня 1 домашний сервер и рабочая машина - ни одного конфига руками не прописано.

anonymous ()
Ответ на: комментарий от elipse

>> в отличие от ситуации в других дистрах при большом обновлении(например QT+KDE+зависимоси): Gentoo может собирать это например сутки(если все соберется!), Ubuntu на медленном канале может тоже весь день обновляться. Они неудачники - у вас 100 мегабит канал и шестиголовый проц на 10 ГГц, а сорцы сам Господь на HDD переносит. Все в пролете. > а по сути сказать-то нечего... Дык, а что по сути ? Ну дохлый это у вас аргумент. По сути сказать, что у меня нет таких ситуаций - это как-то будет слишком банально и подозрительно.)) Хотя, это и чистая правда.

Может быть и везет. В моем случае я не выдержал и сбежал с gentoo т.к. затянувшееся обновление - явление регулярное и очень часто происходяшее как раз когда нужна реально работающая машина.

Еще бывает, что пакеты поставились нормально, но нужно править конфигурацию, вместо того, чтобы заниматься делом.

Не скажу что NixOS идеален. Кое-что под себя пришлось запаковать, какие-то неприятные(но не приципиальные) моменты еще надо пофиксить. Главное же, что я теперь точно знаю, что в любой момент, когда мне это нужно, у меня комп будет работать. Т.е. хуже не может стать(если конечно не забить на бекап, но это не вина NixOS)

>trunk против stable? А прочитать что я написал НИКАК?

Да есть там ирония. Так как много рекламы безоблачной жизни. Обычно так дурят, возможно и неумышленно ..) Если действительно почитать о том как все устроено и подумать, то станет очевидным почему подобные заявления не беспочвенны. К сожалению, первые комменты были из серии «не читал, но осуждаю». На одной странице получилось только перечислить достоинства. Объяснить как это реализуется так не получится, да и для этого, собственно, эти статьи и публикуются.

На сегодня Nix(сам пакетный менеджер) - довольно зрелый продукт.

NixOS более сырой в том плане, что какие-то моменты могут быть не оттестированы и не запакованы.

Если повезет и совпадут ваши интересы и интересы одного из разработчиков(а их сегодня ~20 + люди которые дистр устанавливают часто несколько патчей дают из своих локальных веток), то все будет замечательно.

Если нет, то тоже неплохо. В первую очередь каких-то пакетов может не хватить на desktop.

Сервера уже не первый год крутятся и там все вылизано и неплохо задокументировано.

Паковать простенькие прожки несложно, как на gentoo или arch: копируешь похожий пакет и ручками меняешь url, hash, зависимости и метаданные.

anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.