LINUX.ORG.RU

Фичи NixOS

 


1

4

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



Последнее исправление: Larawey (всего исправлений: 1)

Ответ на: комментарий от balsoft

Что «оно» (но оно не может быть не прибито…)?

Приложение (сферическое в вакууме) к либе, конкретно к libc, ещё конкретнее — к версии.

Nix считает, что содержимое «префиксов» не будет меняться после первой сборки, и если ты их руками не будешь корежить, то и «сломаться/перенестись/whatever» сами по себе они не смогут.

А, вон как.

Тогда это какой-то монолит, в котором юзеру ковыряться не нужно. Такой подход напоминает Windows (в хорошем смысле) — в системных дирах юзеру (и админу) делать нечего.

Такое было бы хорошо, если было бы всё вылизано идеально, но так не бывает в принципе.

В рантайме приложения? Нет, однозначно не получится, по крайней мере без серьезных таких костылей.

Да и с костылями получится не везде и ненадёжно.

Как ты это себе вообще представляешь?

Никак. Просто по описанию концепции мне показалось что NixOS так может, и я хотел узнать, что за магию они придумали. ☺

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

То есть консистентность системы проверяется не только по приложениям, но и по их зависимостям рекурсивно? Это уже выглядит надёжно… но медленно. ☺

ну разве что у init версию libc поменять не получится

Если бы это был systemd, способный сам себя заменить, то в принципе можно, но и тут я сильно сомневаюсь в надёжности конструкции.

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

Тогда это какой-то монолит, в котором юзеру ковыряться не нужно. Такой подход напоминает Windows (в хорошем смысле) — в системных дирах юзеру (и админу) делать нечего.

Юзер при желании может собрать свою версию приложения/либы/чего_угодно, и прилинковать её к каким угодно версиям зависимостей, nix и nixpkgs этому вполне способствуют. Просто эти версии будут стоять под своими префиксами и не смогут заменить системные версии, но их можно установить в «профиль» пользователя (т.е. засимлинкать в специальную директорию, которая в PATH).

Админ тоже может собрать свою версию чего_угодно, но у него есть право изменять системный «профиль», таким образом переключая систему на новую версию чего_угодно.

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

Юзер при желании может собрать свою версию приложения/либы/чего_угодно, и прилинковать её к каким угодно версиям зависимостей, nix и nixpkgs этому вполне способствуют. Просто эти версии будут стоять под своими префиксами и не смогут заменить системные версии, но их можно установить в «профиль» пользователя (т.е. засимлинкать в специальную директорию, которая в PATH).

Админ тоже может собрать свою версию чего_угодно, но у него есть право изменять системный «профиль», таким образом переключая систему на новую версию чего_угодно.

Дайте два!

mord0d ★★★★★
()
Ответ на: NixOS от FaraS

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

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

А че только два, ты дальше послушай — таких профилей можно иметь не два, а сколько угодно, и область применения следующих будет ограничена шеллами. При разработке вполне типично иметь «активными» (в порядке, обратном поиску) системный профиль, потом юзерский, потом профиль чисто с зависимостями того, что колупаешь, типа виртуалэнв, но круче и средствами штатного пакетного менеджера. И можно наслаивать и дальше, я, например, сделал алиас и по w - rare-tool args у меня скачается (если надо) и запустится rare-tool, не замусорив собой никакого другого профиля. Красота. Доисторические ПМ курят в сторонке.

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

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

Мысленно представь, что тебе потребовалось бы, чтобы установить твой текущий дистр на раздел с ультраэкспериментальной bcachefs, поддержка которой есть только в одной единственной версии ядра, лежащей в отдельном от всего мира репозиторий у Kent Overstreet, и больше нигде.

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

А только потом подсмотри ответ от NixOS: https://www.reddit.com/r/NixOS/comments/79ac5f/comment/dp1mt4h

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

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

Твой восторг несколько избыточен: https://wiki.archlinux.org/index.php/Bcachefs#Installation

Хотя конечно приятно иметь готовый модуль в nixpkgs.

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

Ну отлично. Расскажи, как ты будешь ставить систему-то? Мало иметь пакет с ядром, надо быть в него загруженным.

t184256 ★★★★★
()
Ответ на: комментарий от quantum-troll

При чем тут initrd или модуль? Тебе для установки нужно загрузиться в систему с конкретным ядром. Магия, которую ты показал, подождёт.

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

1. Поставил всё (есть в AUR)
2. Настроил initrd
3. Настроил GRUB
4. ??????
5. PROFIT

Хотя, это же всё надо будет ставить и настраивать дважды, ведь аналога nixos-install не завезли.

Да, перенос существующей системы в арче это гемор, вне зависимости от целевой ФС.

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

Поставил все куда? У тебя есть комп с арчем, второй комп без нифига и флешка, давай вот отсюда помедленнее.

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

Но ты сказал раздел. То есть сунул диск со второй машины в первую, поставил систему, вернул диск на место.

Если же ещё и liveusb нужно создавать, то да, всё очень плохо.

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

Но ты сказал раздел. То есть сунул диск со второй машины в первую, поставил систему, вернул диск на место.

Ну, когда так можно, твоя правда, так проще.

Если же ещё и livecd нужно создавать, то да, всё очень плохо.

Ну вот, а в NixOS абсолютно внезапно хорошо. Причём никто не думал над этим сценарием специально, оно так хорошо получилось, потому что по уму.

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

А почему кроме ZFS?

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

Я потому и свалил с Linux, что мне было проще сменить ОС, чем смириться с постоянными проблемами ФС.

 % mount | wc -l
      38
 % mount -t zfs | wc -l
      31
mord0d ★★★★★
()
Ответ на: комментарий от mord0d

Я потому и свалил с Linux

На десктопе или на сервере? Если первое, то интересен опыт. Есть блог какой-нибудь почитать?

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

На десктопе или на сервере?

На серверах и прочих headless я уже давно предпочитаю использовать FreeBSD (почтовые сервера, например, я поднимаю исключительно на FreeBSD, другие варианты просто не рассматриваются), хотя, конечно, бывают исключения, когда Linux развернуть проще — некоторые пакеты уже давно есть в популярных дистрибутивах (особенно это касается питонотрэша, чтобы не возиться с pip и venv), некоторые решения не требуют плясок с бубном.

FreeBSD в виртуалке, headless и на десктопе — это совершенно разные операционные системы, требующие разных подходов (с этим утверждением согласились даже на #freebsd).

Если первое, то интересен опыт.

На десктопе уже больше года (и на ноуте чуть меньше года) использую FreeBSD.

Так как я уже имел опыт на headless и в виртуалках, то для меня миграция не вызвала каких-либо трудностей (я даже устанавливал её руками, а не через bsdinstall), разве что пришлось немного почитать десктопоспецифичной документации (именование пакетов, модулей; для ноута пришлось поискать на предмет возможных оптимизаций, чтобы жило от батареи подольше).

Ноутбук удалось оптимизировать так, что в работе (не под самой большой нагрузкой) он жрёт 5..8W, на ##ibmthinkpad сказали, что даже на Linux вряд ли удалось бы добиться таких показателей на моём X230.
На ноуте ради прикола даже прикрутил снятие фото при вводе неверного пароля в локере. Поигрался со сканером отпечатков пальцев, но в итоге отключил.

Есть блог какой-нибудь почитать?

Какие-то ресурсы в интернете есть, но информации там не очень много. Но она очень медленно устаревает, потому статьи 2010..2012 годов по большей части пригодны как минимум в качестве стартовой точки. А ещё FreeBSD очень хорошо документирована, в манах есть качественные примеры, в дефолтных конфигах — комментарии.

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

На виртуалке я пробовал фряху, но это виртуалка. Чувствую, что с реальным железом все намного хуже, особенно с ноутами. Я видел где-то статью, что разрабы фряхи решили покупать синкпады, чтобы запилить нормальную поддержку хотя бы на этой линейке. Что, кстати, с софтом для работы с ЭЦП? Есть что-нибудь внятное или колхозить линуксовые утилиты придется?

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

Что, кстати, с софтом для работы с ЭЦП?

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

Есть что-нибудь внятное или колхозить линуксовые утилиты придется?

Так-то очень многое давно есть. Тот же GnuPG, например, которому в принципе альтернатив нет (есть невнятный порт невнятной софтины из DOS, но оно не смогло быть полезным для меня), уже тыщу лет есть в портах/пакетах. То, что не прибито к ядру (как, например, systemd, бесполезный без cgroups, который является специфичным для Linux) или файловой системе (поддержка Ext* в FreeBSD либо через FUSE, либо никак, и мне после миграции, пока переносил данные, удалось убить Ext4 из rw), давно "портировано" — в FreeBSD больше 37000 пакетов, дифицита софта нет.

На виртуалке я пробовал фряху, но это виртуалка.

Как я уже писал, на железе и в виртуалке — это две совершенно разные операционные системы. Но я не сторонник дуалбута, потому даже не пытался завести FreeBSD параллельно с Linux, просто снёс последний и поставил на чистый диск.

Чувствую, что с реальным железом все намного хуже, особенно с ноутами.

С ноутами да, есть некоторая беда. Хотел перевести один из поддерживаемых ноутов на FreeBSD (зоопарк поддерживать сложнее, всегда хочется унификации), но Wi-Fi не взлетел — не оказалось драйвера. На моём ноуте не взлетел GSM-модуль, тоже по причине отсутствия драйвера.

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

Не знаю, я на эту тему не копал, но на моём ThinkPad X230 завелось почти всё. Не завёлся Gobi3K из-за отсутствия драйвера, микрофон, который, подозреваю, не работает по хардварным причинам и VGA (D-Sub), который я могу тестировать только на своём домашнем 2K-дисплее через переходник D-Sub←DVI-D, так как на нём просто нет D-Sub, и подозреваю, что проблема тоже не на стороне ОС.

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

Ноутбук удалось оптимизировать так, что в работе (не под самой большой нагрузкой) он жрёт 5..8W, на ##ibmthinkpad сказали, что даже на Linux вряд ли удалось бы добиться таких показателей на моём X230.

Да я тебе и тут скажу — не верю. Чтобы эта штука в простое меньше 10 жрала, надо экран отрубать.

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

Да я тебе и тут скажу — не верю. Чтобы эта штука в простое меньше 10 жрала, надо экран отрубать.

В idle оно у меня и того меньше жрёт. 2..4W без отключения Wi-Fi и USB (оба в powersave) с потушенным дисплеем. А с 50% яркости и без особых нагрузок на процессор (я на ноуте не компиляю, по крайней мере жирноту) вполне колеблется между 5 и 8 ваттами с редкими пиками в 9W, среднее значение в работе — ≈7W. Конечно, если открыть YouTube, то до 12W легко поднимется, но девайс используется не для развлечений, а потому легко живёт шесть-восемь часов от не новой 9-cell батареи (≈65..70% ресурса). В idle может прожить часов двенадцать-четырнадчать, а если отрубить USB и Wi-Fi, то может и дольше, не проверял.

Понятно, что на слово ты мне не поверишь (я бы и сам не поверил, лол), но какой смысл мне 3.14-здеть?

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

2..4W … 7W … 12W … 6-8 часов на 65-70% … 12-14 часов на 65-70%

Понятно, что на слово ты мне не поверишь (я бы и сам не поверил, лол), но какой смысл мне 3.14-здеть?

I want to believe (c).

Понятия не имею, но я потратил не один час на это и с X220, и с X230, и мой результат втрое хуже, по каждому показателю. Когда надо больше 2.5 часов, достаю листовую батарею. И самое интересное — лучшие истории успеха, что я вообще находил, были все равно в полтора-два раза хуже твоих.

В связи с чем предлагаю тебе рассказать, на каком таком дистре у тебя это достигалось и, в идеале, скинуть ссылку на Live-версию этой радости и скрин powertop или чем ты там измеряешь. А пока че-т не верится.

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

Понятия не имею, но я потратил не один час на это и с X220, и с X230, и мой результат втрое хуже, по каждому показателю.

Я потратил на это почти две недели (только вначале я прощёлкал и забыл включить поддержку cpufreq в BIOS, потому это всё не работало), сейчас только вылизываю конфигурацию, где-то оптимизирую скрипты.

достаю листовую батарею

Я хотел себе достать такую, но что-то не нашёл. eBay не доверяю, да и PayPal вечно мутит.

на каком таком дистре у тебя это достигалось

Ни на каком. Когда я взял этот X230, я уже мигрировал на FreeBSD на десктопе, и вопрос о выборе ОС для ноута уже не стоял.

powertop

Его под FreeBSD нет. Есть powermon, но для Grand Total достаточно штатного acpiconf, который может показывать общее потребление, им и обходился, но из любопытства сейчас соберу powermon и посмотрю, что ещё можно оптимизировать. ☺

скинуть ссылку на Live-версию этой радости

Ты ведь понимаешь, что сама запись скринкаста (энкод) будет жрать? ☺ А на всратую камеру снимать толку нет — всё равно ничего видно не будет.

Вот тебе лайв, но после первой секунды powermon уже с энкодом видео.

и скрин powertop или чем ты там измеряешь

                  Intel(R) Core(TM) i5-3320M CPU @ 2.60GHz
                       (Arch: Ivy Bridge, Limit: 28W)



   2.45W [=====>                                                             ]



 Package:           Uncore:             x86 Cores:          GPU:
 Current: 2.45W     Current: 2.01W      Current: 0.36W      Current: 0.08W
 Total: 2786.40J    Total: 1709.71J     Total: 780.87J      Total: 295.82J

Это не idle, просто из графического софта запущено только пять терминалов. В терминалах из активного только weechat. В фоне работают syncthing и всякое по мелочи. Композитор включен. Яркость 100%.

Запущено 105 процессов, из них 42 принадлежат пользователю (для сравнения, на десктопе запущено 154 процесса, из них 60 принадлежат пользователю).

 % uname -srm
FreeBSD 12.1-RELEASE-p6 amd64
mord0d ★★★★★
()
Последнее исправление: mord0d (всего исправлений: 5)
Ответ на: комментарий от t184256

Вот ещё немного инфы:

 % acpiconf -i0
Design capacity:	93240 mWh
Last full capacity:	64520 mWh
Technology:		secondary (rechargeable)
Design voltage:		11100 mV
Capacity (warn):	3226 mWh
Capacity (low):		200 mWh
Low/warn granularity:	1 mWh
Warn/full granularity:	1 mWh
Model number:		45N1027
Serial number:		 5714
Type:			LION
OEM info:		SANYO
State:			discharging
Remaining capacity:	98%
Remaining time:		8:29
Present rate:		7465 mW
Present voltage:	12589 mV
mord0d ★★★★★
()
Ответ на: комментарий от mord0d

То есть сабж можно поставить на любую файловую систему… кроме ZFS.

ZFS замечательно работает в NixOS.

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

ZFS замечательно работает в NixOS.

Это хорошо. С какого-то 5.0-RC я не особо надеюсь на работу ZFS в Linux (особенно между обновлениями самого ядра).

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

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

скинуть ссылку на Live-версию этой радости

Ты ведь понимаешь, что сама запись скринкаста (энкод) будет жрать? ☺ А на всратую камеру снимать толку нет — всё равно ничего видно не будет. Вот тебе лайв, но после первой секунды powermon уже с энкодом видео.

Ёть, Live as in LiveCD, чтобы я это повторить мог и посмотреть на 12W вместо 2W =(((

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

Но меня напрягает необходимость перезагрузки для применения изменений

Тред про NixOS, а не про Silverblue. Никаких перезагрузок, пока не меняешь ядро.

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

Live as in LiveCD

Мне лениво собирать лайв FreeBSD (хотя, конечно, я могу собрать его на десктопе из бэкапа с ноута, но точно не сегодня), так как из-за хитрой разметки придётся изобретать костыли или формировать образ руками. Если не забуду, завтра попробую собрать.

посмотреть на 12W вместо 2W

Ну не 2W (powermon, судя по всему, собирает данные только по камушку). Вон, ниже выхлоп acpiconf, который показывает честные данные в 7465mW (7.47W) и ориентировочные восемь с половиной часов жизни от батареи.

---

Тред про NixOS, а не про Silverblue. Никаких перезагрузок, пока не меняешь ядро.

Когда-то кто-то утверждал (кажется, даже на ЛОРе), что для обновления приложений и их конфигурации из изменённого конфига нужно перезагружаться.

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

Когда-то кто-то утверждал (кажется, даже на ЛОРе), что для обновления приложений и их конфигурации из изменённого конфига нужно перезагружаться.

Гнал, вестимо.

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