LINUX.ORG.RU

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

 


0

0

Nix – это пакетный менеджер для unix-систем, обладающий существенно иным подходом к сборке пакетов, учету зависимостей между ними и способу доставки на целевые системы.

Nix может работать совместно с обычным пакетным менеджером на том дистрибутиве, который у вас уже установлен (Ubuntu, Arch и т. п.). В статье будут рассмотрены процедура установки, операции управления пакетами и некоторые механизмы работы Nix.

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

★★★

Проверено: maxcom ()
Ответ на: комментарий от daemonpnz

Nix не Portage.

переизобрели portage?

Не-не-не, Nix совсем не Portage. К сожалению Nix нарушает FHS, так что переход на него, полагаю, будет сопровождаться ломкой традиций и разрывом шаблонов.

Camel ★★★★★
()

А вот как выглядит ихний ebuild nixpkg для firefox stable (в их понимании):

NIXPKG1
http://nixos.org/releases/nixpkgs/nixpkgs-0.12/MANIFEST
firefox-3.0.8
x86_64-linux
/nix/store/0p91pn7jq3pnz20kxcbxmpfsdyfyvd0p-firefox-3.0.8.drv
/nix/store/j0dq0axq29jvy3n9zk39z5ra5i0g190m-firefox-3.0.8

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

> P.S. И зачем он под Windows?

+1 Особенно под Cygwin

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

Не нужен (portage).

Функциональный подход заключается в том, что пакет собирается функцией, не имеющей побочных эффектов, т. е. операции в Nix не являются деструктивными. Таким образом, операции установки и обновления как пакетов, так и целиком системы безопасны и позволяют осуществлять откат не только к предыдущему, но и к более ранним состояниям.

Интересно

northerner ★★★
()
Ответ на: Nix не Portage. от Camel

> К сожалению Nix нарушает FHS

Nix нарушает FHS? Тогда срочно делать клон на основе stow!

kim-roader ★★
()
Ответ на: комментарий от northerner

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

И? Portage это всегда умел.

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

>>и позволяют осуществлять откат не только к предыдущему, но и к более ранним состояниям.

И? Portage это всегда умел.


А можно отсюда поподробнее...?

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

Nix из NixOS.

это случаем не тот, что из NixOS?

Тот самый.

Там же мало пакетов, не более 2500.

С чего-то надо начинать.

Camel ★★★★★
()

А у кого-нибудь история успеха? У меня так и не получилось его развернуть и что-нибудь собрать, а целиком nixos ставить неохота. Но штука очень интересная и, по-моему, перспективная.

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

> Такое ощущение, что Вы никогда не работали с portage.

Удобно. Надо полагать, Вы имели в виду создание снапшотов (demerge --record / --restore), говоря о множественных откатах. В Nix не то же самое.

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

>Такое ощущение, что Вы никогда не работали с portage.

Возможно. По-этому просьба остаётся в силе.

TOHbl4
()

Всё равно 0install круче.

˯

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

Nix не Portage.

Ну, до portage ему очень далеко.

Nix'у до Portage по определению далеко, равно Portage'у до Nix'а. Они сильно по-разному устроены.

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

Как вариант, да.

Хотя честно говоря, я вообще не помню случая, что бы мне приходилось откатывать больше одного-двух пакетов.

P.S. Даже при переходе, в свое время, со stable на testing, при внимательном прочтении всех рекомендаций portage, не пришлось ничего откатывать ;)

pitach
()

вы ничего не понимаете в X. эта штука сделана впервую очередь ради концепта - полностью *функциональный* менеджер пакетов (да-да, в смысле функционального программирования). Почитайте на сайте, там все написано

annulen ★★★★★
()

В раздел 2.1 было бы неплохо добавить ссылку на исходники его.

Xandry
()

Я джва года ждал такой менеджер!

anonymous
()

Идеологически он не вписывается в структуру современных дистрибутивов.

А вообще было бы разумно прикрутить локальную установку к существующим системам управления пакетами (то бишь в ~/ создать файловую систему для пакетов, и для пользователей в profile прописать в ней места подключения библотек и поиска бинарников).

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

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

Интересно

это не просто интересно, это реальная киллер-фича. только консервативизм может препятствовать внедрению такой новинки. чем скорее она станет стандартом, тем лучше.

Voviandr
()

Я вот не понимаю, оно нужнее, чем большая кнопка в убунте?

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

> это не просто интересно, это реальная киллер-фича

Именно. Каждый раз, смотришь на старый сервер с Debian и думаешь какая будет развлекуха, если apt-get upgrade что-то поломает. Отката назад-то нету. Снапшоты lvm2 и прочее - это, конечно, да, но не в счет.

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

Хотя честно говоря, я вообще не помню случая, что бы мне приходилось откатывать больше одного-двух пакетов.

P.S. Даже при переходе, в свое время, со stable на testing, при внимательном прочтении всех рекомендаций portage, не пришлось ничего откатывать ;)

Сдается мне, что это слив... или таки будет пруф?

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

dev-db/mysql
Available versions: [M]*3.23.58-r1 [M]4.0.27-r1 [M]4.1.22-r1 [M]5.0.54 5.0.70-r1 (~)5.0.72 (~)5.0.72-r1 (~)5.0.76 (~)5.0.76-r1 (~)5.0.83 (~)5.0.84 5.0.84-r1 (~)5.0.87 (~)5.0.88 (~)5.0.90 (~)5.0.90-r1 (~)5.0.90-r2 (~)5.1.39-r1 (~)5.1.44 (~)5.1.44-r1 (~)5.1.44-r2 (~)5.1.44-r3 (~)5.1.45 (~)5.1.45-r1 [M](~)5.4.3_beta [M](~)5.5.1_alpha_pre2
{berkdb big-tables cluster +community debug embedded extraengine innodb latin1 max-idx-128 minimal pbxt (+)perl profiling raid readline selinux ssl static tcpd test xtradb}
Installed versions: 5.1.45-r1(09:33:17 25.03.2010)(community embedded perl ssl -big-tables -cluster -debug -extraengine -latin1 -max-idx-128 -minimal -pbxt -profiling -selinux -static -test)

Откатывайся на любую версию, какая тебе нравится.

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

[quote]Откатывайся на любую версию, какая тебе нравится[/quote]

ну да, щаз... , ты уже кучу софта пересобрал с поддержой новой версии.

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

... ты уже кучу софта пересобрал с поддержой новой версии ... а если при этом из этой кучи что нибудь обновилось и ты сделал emerge @preserved-rebuild и/или revdep-rebuild, то...???

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

Сделаешь тоже самое обратно.

P.S. Куча софта понятие относительное.

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

P.P.P.S. «Кучу софта пеесобрал ... при этом из кучи что-нибудь обновилось» и т.д. и т.п. - это уже разные состояния системы, ты уверен, что ты помнишь на каком из них у тебя точно все работало и на какое состояние тебе надо откатываться? А если ты уже перенастроил что-то в последнем состоянии, то откат на предыдущие может все и поломать.

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

> Не нужен (portage).

Предлагай лучше. С более-менее сопоставимыми фичами есть только Sorcery из Source Mage, для которого кошмар писать пакеты.

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

>> и позволяют осуществлять откат не только к предыдущему, но и к более ранним состояниям.

И? Portage это всегда умел.


Не припомню вообще понятие состояния в portage. Напомните, как, после выполнения «emerge -DNu world», одной командой вернуть все пакеты до состояния до обновления.

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

Таки понятия «состояния» в portage действительно нет, я это писал с оглядкой на nix.

Напомните, как, после выполнения «emerge -DNu world», одной командой вернуть все пакеты до состояния до обновления.

Можно использовать demerge http://www.calculate-linux.org/packages/app-portage/demerge

Ну и честно говоря, я в своей практике не помню случая, что бы нужно было возвращать все пакеты до состояния до обновления. Один-два может быть.

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

>Идеологически он не вписывается в структуру современных дистрибутивов.

в слаку наверное все, что угодно впишется )

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

> А если ты уже перенастроил что-то в последнем состоянии, то откат на предыдущие может все и поломать.

В NixOS конфигурация создаётся из декларативного описания. Так что когда ты откатишся на предыдущее состояние, откатится и твоя конфигурация. Это система. А то что дома - как обычно.

astsmtl
()

Глючный какой-то. В stable репозитории двевнее ПО как в lenny, а из unstable нифига не ставится, nix-env вылетает с матюками.

Идея хорошая, но еще пилить и пилить.

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

> Коммент notherner'а от этого высером быть не перестаёт.

Само собой :) я его и не оправдывал, просто предложил лучшее :)

И вообще будущее за exherbo ;)

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