LINUX.ORG.RU
ФорумTalks

и снова о NixOS

 , ,


1

2

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

Intro

Прежде всего, что я хочу получать от ОС:

  • стабильность и правильность работы на моём железе (ноутбук с UEFI, Intel Core i5 [Haswell], Nvidia Optimus [Intel HD4600 + GTX760M], 6 Гб оперативы, HDD);
  • простота, логичность настройки системы и её компонентов;
  • обновления, которые не ломают, а также возможность обновляться с частотой раз в 1-2 месяца без последующих поломок;
  • наличие основного популярного софта в репозиториях (в т.ч. проприетарного);
  • возможность без лишнего геморроя пересобирать со своими настройками софт и опакечивать его;
  • возможность быстро поставить необходимый софт и начать с ним работать;
  • возможность быстро подключать всякую электронику (телефоны, планшеты, гаджеты, принтеры, сканеры, МФУ, etc) как с наличием интернета, так и без него;

Вроде бы требования не такие огромные, но дистра, который бы полностью соответствовал, я не нашёл.

Пробовал Ubuntu, но там постоянно были какие-нибудь мелкие, но раздражающие проблемы. Через некоторое время обычного хомячкового пользования что-нибудь переставало работать и приходило время переустанавливать Ubuntu (не исключено, что я чего-то неправильно наковыривал своими ручонками, но если система может работать стабильно только в исходном состоянии (как его выпустили мейнтейнеры), то такой Linux нахрен не нужен).

Пробовал OpenSUSE, впечатление оставил приятное, но почему-то я с него перекатился. Не мог поставиться с флешки на моё железо, пришлось на DVD болванку записывать установщик.

Долго сидел на Slackware. Устраивало всё, кроме необходимости самому искать зависимости для пакетов, что увеличивало время на установку и ввод в строй нужного прямо сейчас софта. Slackware — дистр, максимально удовлетворяющий хотелкам, озвученным выше.

NixOS

Но заинтересовался благодаря тов. slon и его треду NixOS'ом. Этот дистрибутив Reliable; Reproducible; Multi-user, multi-version; Portable [согласно сайту].

Плюсы:

1) очень интересный подход к управлению системой — всё в одном файле и список пакетов для окружения, железо, шрифты, дисковая подсистема и т.д. Лёгким движением руки можно получить настроенную систему;

2) безопасность обновлений: ставил unstable версию, затем откатил пакеты до 16.09, а затем обратно и ничего не сломалось;

3) много софта опакечено и тянется с зависимостями;

4) есть опции для configure.nix, позволяющие без лишних телодвижений настроить Optimus, выключить дискретную видеокарту насовсем и т.д.;

5) нет проблем с проприетарным софтом (Opera, flash, мультимедиа).

Минусы:

0) не работают привычные методы управления системой, пользователями; пакеты ставятся в каталоги, в начале имени которых стоят хеш-суммы (или что-то ещё), приходится искать по имени программы в каталоге;

1) документация есть, но разрозненная и для понимания «с ходу» не приспособленная, надо сидеть, гуглить, что-то описано в одном месте, что-то в другом, короче времени на освоение и первичную настройку уходит много (за пару дней я до сих пор не всё настроил: мини-сабвуфер от ноута; опции монтирования ntfs-раздела (почему-то Steam скачивает игру на этот раздел, затем говорит, что файлы повреждены, а там ничего и не скачалось));

2) неинтуитивность работы и настройки: неработающий Bumblebee в unstable должен быть уже починен, но у меня он каким-то чудом то ли не обновился, то ли что-то ещё там сломано, потому дискретка не выключается;

3) не кеширует списки пакетов, в результате nix-env оочень долго синхронизирует списки, а если ещё и название пакета неправильно написал... (названия пакетов тоже не все привычны, даже то, как пакет называется приходится гуглить!)

4) странно собран texlive, а точнее порезан на тысячи маленьких пакетов;

5) что-то странное с kde5, а точнее, подвисания на ровном месте, на Slackware я такого не наблюдал;

6) невозможность редактирования файлов в /nix/store, а следовательно, не поправить некоторые файлы (например, пофиксить «фичу» с \No в babel-russian посредством редактирования russianb.ldf)

И вот теперь непонятно, стоит ли осваивать этот дистрибутив, будет ли он развиваться и жить долго или загнётся. Умения, которые будут приобретены в процессе освоения годятся только для этого дистра.

Хотелось бы прочитать ваше мнение по поводу нужности. С аргументами.

А также, если кто-то в курсе, что делать с проблемами, что я описал, то прошу посоветовать, как их исправить.

Deleted

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

На текущем компе 11.10->12.04->14.04->16.04 штатными обновами.

Ygor ★★★★★ ()

(названия пакетов тоже не все привычны, даже то, как пакет называется приходится гуглить!)

Например?

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

texlive: texlive-combined-full-2016

wine-staging: wineStaging

cm-unicode: cm_unicode

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

About

Manjaro is a user-friendly Linux distribution based on the independently developed Arch operating system. Developed in Austria, France, and Germany, Manjaro provides all the benefits of the Arch operating system combined with a focus on user-friendliness and accessibility. Available in both 32 and 64 bit versions, Manjaro is suitable for newcomers as well as experienced Linux users.

Что-то как-то не внушает доверия. Много говорят о нестабильности Arch'a и о том, что после нескольких месяцев без обновлений всё ломается.

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

что после нескольких месяцев без обновлений всё ломается.

В ОП было про 1-2 месяца. Manjaro вполне можно обновлять именно с такой частотой.

sudopacman ★★★★★ ()
Последнее исправление: sudopacman (всего исправлений: 1)
Ответ на: комментарий от Deleted

Вот человек сейчас юзает Void Linux, насколько мне известно, она сможет прояснить некотооые моменты по использованию данного дистра. Iron_Bug

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

В стабильной ветке обновления с такой частотой и прилетают.

Deleted ()

Прочитал твои требования, не хватает «наличие кнопки 'сделать збс'»

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

Void

Использую на втором ноутбуке пару лет, серьёзных проблем не было. Технологически — это Арч без systemd и на другом пакетном менеджере. Идеология та же: свежий ванильный софт, минимум «умных» решений за пользователя, полная свобода действий.

Если вам не подходит Арч, то Void тоже вряд ли подойдёт.

Deleted ()

Простите за офтоп, но как там с гибридами от невидии, всё ещё надо переключать руками или сделали возможность автоматического переключения?

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

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

По стабильности - Manjaro вполне неплох, 2 месяца был мой основной и единственный дистрибутив, благо на старом ноуте что-то ещё гонять было сложно.

Есть утилита для управления драйверами - можно легко поставить блоб и также легко его снести. Ничего не ломается.

Так что Manjaro очень советую попробовать.

ekzotech ★★★★ ()

Начни с Генты, т.е. с установки с помощью Handbook.
И потом все вопросы на любых других дистрах будут решаться «в лет».

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

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

вкратце - сижу на Void в качестве рабочей (и домашней) машины. точнее, не просто на Void, а на Void с musl, юзаю i3wm. неудобств не испытываю. но дистр не совсем готов для конечного юзера в том плане, что не все-все-все пакеты там есть. основные есть. если чего-то нет, можно собрать из сорцов. пакетирование очень простое. иногда попадаются мелкие баги типа забытых зависимостей между пакетами. но в целом ничего существенного, что бы мешало работе.

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

Начни с Генты, т.е. с установки с помощью Handbook.

И потом все вопросы на любых других дистрах будут решаться «в лет».

Не надоело эту фигню продвигать? Давай, покажи как мне опыт генты поможет опакечивать программы под убунту? Или как мне опыт работы с portage поможет работать с dpkg?

aiive ()

Вот ещё неудобство. Чтобы завести под моим ноутом сабвуфер, необходимо поковыряться с hdajackretask, но он валится с сегфолтом.

** (hdajackretask:20816): WARNING **: Error retrieving accessibility bus address: org.freedesktop.DBus.Error.ServiceUnknown: The name org.a11y.Bus was not provided by any .service files                                                                                                                                                               
Segmentation fault  
Deleted ()
Ответ на: комментарий от Deleted

свежий ванильный софт, минимум «умных» решений за пользователя, полная свобода действий.

В общем-то то же самое, что и в Slackware, кроме упора на свежесть. Возможно, стоит попробовать, если он не ломается как пишут Arch.

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

После установки Bumblebee (если он завёлся и работает) дискретная видеокарта по-умолчанию отключена. Для запуска программы (игры) с Nvidia надо вручную запускать с optirun.

Читал, что появилась утилита switcheroo для переключения видеокарт автоматически, но я ей ни разу не пользовался.

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

Хм, интересный вариант. Если решу, что с NixOS совсем уж непродуктивно возиться, то попробую его.

Deleted ()

Ещё наблюдение.

Выделил под корень 30 Гб. Сейчас свободно 3,2 Гб и этого недостаточно для того, чтобы обновиться или даже установить ncdu. (!)

Deleted ()

приходится искать по имени программы в каталоге

А зачем? Чего ты пытаешься добиться?

документация есть, но разрозненная и для понимания «с ходу» не приспособленная

Плюсую. Советую их ирк-канал как полумеру.

неработающий Bumblebee в unstable должен быть уже починен, но у меня он каким-то чудом то ли не обновился, то ли что-то ещё там сломано, потому дискретка не выключается

Пакеж выхлоп systemctl status bumblebeed

не кеширует списки пакетов, в результате nix-env оочень долго синхронизирует списки, а если ещё и название пакета неправильно написал... (названия пакетов тоже не все привычны, даже то, как пакет называется приходится гуглить!)

А что именно ты делаешь? Когда это проявляется? Сходу добавлю лишь, что быстрые только аттрибуты, а не названия пакетов

что-то странное с kde5, а точнее, подвисания на ровном месте, на Slackware я такого не наблюдал

Не встречал, но сижу на stable причем несвежем

невозможность редактирования файлов в /nix/store, а следовательно, не поправить некоторые файлы (например, пофиксить «фичу» с \No в babel-russian посредством редактирования russianb.ldf)

Да это фича. Шерсти соответствующую опцию, если опции нет, то пиши сам и открывай PR (:

И вот теперь непонятно, стоит ли осваивать этот дистрибутив, будет ли он развиваться и жить долго или загнётся.

Мы тут не ванги. Ну вродь давно уже живет.

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

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

P.S.: Трушное местное пакетирование emacs освоил? https://nixos.org/nixos/manual/index.html#idm140737315713376

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

А зачем? Чего ты пытаешься добиться?

Хотел править конфиги, но оказалось, что там всё read-only.

Пакеж выхлоп systemctl status bumblebeed

Я в итоге просто вырубил дискретку. Если вдруг она понадобится, буду снова пробовать.

А что именно ты делаешь? Когда это проявляется? Сходу добавлю лишь, что быстрые только аттрибуты, а не названия пакетов

$ nix-env -i [i]packagename[/i]

Да это фича. Шерсти соответствующую опцию, если опции нет, то пиши сам и открывай PR (:

Как писать опции? Быстрый гуглинг не дал понятного мне ответа. (Если что, прогать «умею» только на бейсике, так что, вполне возможно, что я просто не понял чего-то из того, что нагуглил)

P.S.: Трушное местное пакетирование emacs освоил? https://nixos.org/nixos/manual/index.html#idm140737315713376

Не стал заморачиваться. Прописал emacs в configuration.nix, а .emacs.d и .emacs скопировал из Slackware, где всё уже было настроено.

http://nixos.org/nix/manual/#sec-garbage-collection Рекомендую почитывать мануал :)

Да, почистил. За несколько дней уже под 20 поколений накопилось.

Deleted ()
Ответ на: комментарий от Deleted
$ nix-env -i [i]packagename[/i]

nixpkgs это по-сути большой набор атрибутов:

// условное содержимое pkgs/top-level/all-packages.nix
{
  ...
  my_package = stdenv.mkDerrivation {
    name = "my_cool_package-1.0.0";
    ...
  };
  another_package = ...;
  ...
}
Обычный "-i" делает выборку по названию из поля name. Для этого нужно исполнить все доступные выражения, поэтому работает медленно.

Опция "-A" (nix-env -iA ...) позволяет делать выборку по пути («my_package» в примере выше). Это более современный и быстрый вариант. Поле name нужно только чтобы пути /nix/store/<hash>-my_cool_package-1.0.0 были отчасти human-readable.

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

Как писать опции? Быстрый гуглинг не дал понятного мне ответа. (Если что, прогать «умею» только на бейсике, так что, вполне возможно, что я просто не понял чего-то из того, что нагуглил)

В случае texlive всё несколько сложнее чем обычно там пока ещё не появилась возможность удобно переопределять пакеты. Если у тебя уже есть готовый патч который можно применить к содержимому http://lipa.ms.mff.cuni.cz/~cunav5am/nix/texlive-2016/babel-russian.source.ta... , то проще послать issue на https://github.com/NixOS/nixpkgs/issues , и позвать @vcunat (патч приложи), он должен знать как лучше его интегрировать.

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

Как писать опции?

Сначала чекаешь действительно ли опции, которая тебе нужна нет http://nixos.org/nixos/options.html плюс в гугле. Я пока с таким не сталкивался, все пакеты с конфигами за пределами $HOME были с опциями конфигурирования

Мануал по написаню модулей и опций https://nixos.org/nixos/manual/index.html#sec-writing-modules

Если нужно чисто для себя, то можно поступить проще:

1. В configuration.nix переопределяешь нужный пакет https://nixos.org/nixpkgs/manual/#sec-pkg-overrideDerivation

2. Добавляешь в overrideDerivation фазу например postInstall https://nixos.org/nixpkgs/manual/#ssec-controlling-phases так:

postInstall = ''
rm $out/etc/путь-до-конфига
cat > $out/etc/путь-до-конфига << EOF
содержимое конфига
EOF
'';
Можно и красивей, но пока сойдет и так

3. Делаешь nixos-rebuild switch

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

Да, почистил. За несколько дней уже под 20 поколений накопилось

Это совершенно нормально, это как не чистить корзину месяцами ;-) У меня под 400 поколений скапливается, пока винт не забивается (не только из-за этого). Только тогда запускаю сборщик мусора, и то не всегда дожидаюсь конца (достаточное мне место освободилось). Сам прыгаю в загрузчике максимум между 5 поколениями, это когда раз в год экспериментальную ерунду на ядро накатить надо

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

Вот это полезная информация, спасибо. =)

Deleted ()

Странный дистрибутив... Такого еще не видел, но имхо, слишком много «оригинальности», из-за которой система будет иногда падать, ведь пилят её не очень-то много разрботчиков.

5) что-то странное с kde5, а точнее, подвисания на ровном месте, на Slackware я такого не наблюдал;

Могут быть устаревшие пакеты и/или зависимости.

6) невозможность редактирования файлов в /nix/store, а следовательно, не поправить некоторые файлы (например, пофиксить «фичу» с \No в babel-russian посредством редактирования russianb.ldf)

Чо, из-под рута тоже? Тогда не нужно.

А что с репами? Много там софта, или как? Быстро ли работает сам ПМ Nix? Или как с apt — sudo apt-get update занимает час-два?

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

Чо, из-под рута тоже? Тогда не нужно.

Тут подсказали способ с использованием configure.nix. Так, по-моему, даже ещё круче.

Могут быть устаревшие пакеты и/или зависимости.

После обновок прошло вроде.

А что с репами? Много там софта, или как? Быстро ли работает сам ПМ Nix? Или как с apt — sudo apt-get update занимает час-два?

Софта много, ставится, если есть бинари, очень быстро. Пара пакетов мелких собиралась во время установки, но всё равно быстро.

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

Но вот Opera уже протухла и пока что обновлений нет.

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

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

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

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

Чо, из-под рута тоже? Тогда не нужно.

Ну ты можешь примонтировать r/w /nix/store для особых случаев. Но чаще всего это вредно и есть риск что-то сломать. Применительно к задаче ТС вообще бесполезно, т.к. в более позднем поколении этот конфиг опять перепишется.

В общем, тут свой подход и надо ему следовать. Если не нравится, то лучше вообще не пересаживаться на данный дистрибутив

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

NixOS

Нарушаются принципы люнекса, мне не понравилось. А так неплохо, еще один никому не интересный мелкодистр, только если все — просто мелкие тараканы под ногами у популярных, то этот — таракан, который орет, что он не такой, как все.

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

В репах нужного много или мало?

Насчёт много или мало не скажу, но всё, что мне нужно, там есть.

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

Нарушаются принципы люнекса, мне не понравилось

На вкус и цвет фломастеры разные. Мне лично нравится, что этот дистр исправляет типичную люнексовую помойку.

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

Я имел в виду не помойку, а полный контроль над системой, а не как в МД. А насчет помойки — согласен, хотя NixOS просто пополняет ее.

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

А не подскажешь, как ремонтировать такую вещь:

$ hdajackretask

** (hdajackretask:17591): WARNING **: Error retrieving accessibility bus address: org.freedesktop.DBus.Error.ServiceUnknown: The name org.a11y.Bus was not provided by any .service files
Segmentation fault

Ну или хотя бы куда копать. Быстрый гуглинг по ошибке не даёт ничего.

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