Сайт | Скачать | Видео | Wiki

Автор Тема: Nix - linux в linux c декларативной конфигурацией  (Прочитано 2265 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн krasnyh

  • Ветеран
  • *****
  • Сообщений: 5319
  • Репутация: +139/-1
  • Автор темы
https://wiki.archlinux.org/index.php/Nix
https://ru.wikipedia.org/wiki/NixOS
https://uralbash.ru/articles/2016/nixpkgs/

Например, вы пробовали Nix? Это который менеджер пакетов?

Устанавливается на любой Линукс, работает из под обычного пользователя. Over 60.000 пакетов на любой вкус. Ничего не надо компилировать, но (если очень хочется, то) можно создать свой канал (репозитарий в Nix). Чем не выход для Puppyrus?

Тем более Nix позволяет устанавливать рядом пакеты разных версий, удалять и устанавливать всё прозрачно для пользователя. Не мусорить в основную систему. И тд. Там много преимуществ.
Nix напоминает snap, та же идея изолированных самодостаточных пакетов.

https://github.com/NixOS/nixpkgs


Представление о пакетном менеджере Nix через Обзор дистрибутива NixOS.
« Последнее редактирование: 08 Ноябрь 2020, 09:47:04 от sfs »

Оффлайн krasnyh

  • Ветеран
  • *****
  • Сообщений: 5319
  • Репутация: +139/-1
  • Автор темы
Почитав по теме ознакомился и с ранее неизвестным термином Ад зависимостей/Dependency hell
Цитата
Ад зависимостей - это разговорный термин, обозначающий разочарование некоторых пользователей программного обеспечения, которые установили программные пакеты, которые зависят от определенных версий других программных пакетов.
https://ru.qaz.wiki/wiki/Dependency_hell
https://ru.wikipedia.org/wiki/Dependency_hell

Оффлайн Harzah2

  • Новичок
  • *
  • Сообщений: 17
  • Репутация: +1/-0
Nix
Nix напоминает snap, та же идея изолированных самодостаточных пакетов.
Так это же то самое, что нужно? Не нужно под каждую версию пакеты создавать. Работает везде и если для snap, flatpak нужны определённые условия (systemd установленный в системе и тд.), то Nix этого лишён... нужен только сам Nix. Конечно, полностью систему из одних Nix-пакетов содержать накладно, но почему бы не сделать это дополнительной возможностью из коробки?

с ранее неизвестным термином Ад зависимостей/Dependency hell
Ну да, мне этот термин давно известен. И дело не в разочаровании пользователей, а в реально существующей проблеме. И в Windows она тоже присутствует и как бы не в большем масштабе. И Nix и его аналоги на свой манер решают частично эту проблему.
« Последнее редактирование: 08 Ноябрь 2020, 01:39:32 от Harzah2 »

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33966
  • Репутация: +231/-0
    • PuppyRus-A
Re: Nix - linux в linux c декларативной конфигурацией
« Ответ #3 : 08 Ноябрь 2020, 09:12:48 »
Устанавливается на любой Линукс, работает из под обычного пользователя. Over 60.000 пакетов на любой вкус. Ничего не надо компилировать, но (если очень хочется, то) можно создать свой канал (репозитарий в Nix). Чем не выход для Puppyrus?
Портированные модули не то же самое ? Поуже, но для дома шире ("60.000 пакетов") и не надо
Если хочется "маленький и быстрый" местами перекомпилировать придется. А если этого не делать - чем пакеты nix лучше любого другого дистра?
Судя по описанию - задумка nix была в сторону DevOps, но там победил docker. Дома -то зачем DevOps ?
У нас есть chroot2pfs. Тоже можно запустить из одного линукса другой внутри

Какую задачу мне поможет решить nix дома?


« Последнее редактирование: 08 Ноябрь 2020, 09:21:45 от sfs »

Оффлайн krasnyh

  • Ветеран
  • *****
  • Сообщений: 5319
  • Репутация: +139/-1
  • Автор темы
Re: Nix - linux в linux c декларативной конфигурацией
« Ответ #4 : 08 Ноябрь 2020, 10:28:47 »
Добавлю ссылку Запустил Nix на Android. Для чего это, без понятия. Может, чтобы показать безграничные возможности Nix.

Автор в теме NixOS и сам ее использует. Если почитать его профиль, то видно, что человек обладающий знаниями в разных сферах (ссылка).


UPD. Поправил ссылку.
« Последнее редактирование: 08 Ноябрь 2020, 10:42:36 от krasnyh »

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33966
  • Репутация: +231/-0
    • PuppyRus-A
Re: Nix - linux в linux c декларативной конфигурацией
« Ответ #5 : 08 Ноябрь 2020, 11:35:52 »
Nix на Android. Для чего это, без понятия.
Чтобы запускать линукс проги из андроида. Т.е. не надо морочиться с загрузкой линукса с флэшки
Но вряд ли из этого что-то получится
https://nixos.wiki/wiki/NixOS_on_ARM существует, но ядро-то андроидовское и вряд ли под ним получится запустить что-то линуксовое. Уж графическое точно

Попробовал прикрутить nix к prar2008 по арчвики
Работает. Можно установить и запустить прогу, как будто она у тебя установлена. Попробовал chromium smplayer remmina
Создает в корне папку nix. После установки прог выше 1,3гб
Переключиться на другой канал не получилось
Код
live@pra-roll:/usr/bin$ nix-channel --add https://nixos.org/channels/nixos-stable
live@pra-roll:/usr/bin$ nix-channel --update
error: unable to download 'https://nixos.org/channels/nixos-stable': HTTP error 404
live@pra-roll:/usr/bin$ nix-channel --add https://nixos.org/channels/nixpkgs-17.09-darwin
live@pra-roll:/usr/bin$ nix-channel --update
error: unable to download 'https://nixos.org/channels/nixos-stable': HTTP error 404
live@pra-roll:/usr/bin$ nix-channel --add https://nixos.org/channels/nixpkgs-17.09-darwin

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

Запускаемый файл :
Код
#! /nix/store/k8p54jg8ipvnfz435mayf5bnqhw4qqap-bash-4.4-p23/bin/bash -e
export GIO_EXTRA_MODULES='/nix/store/i09ffrnqr1i7ksxfj8z1mv6rfh3lxqk8-dconf-0.36.0-lib/lib/gio/modul
export GIO_EXTRA_MODULES='/nix/store/i09ffrnqr1i7ksxfj8z1mv6rfh3lxqk8-dconf-0.36.0-lib/lib/gio/modul
export GDK_PIXBUF_MODULE_FILE='/nix/store/mm9ck1cv7zygpylzzfgfc2laphi8kxpl-librsvg-2.48.8/lib/gdk-pi
export XDG_DATA_DIRS='/nix/store/5i5n9wiq7spq8sfarqglzcbb1x6aw8vg-gtk+3-3.24.21/share:/nix/store/ml3
export XDG_DATA_DIRS='/nix/store/5i5n9wiq7spq8sfarqglzcbb1x6aw8vg-gtk+3-3.24.21/share/gsettings-sche
export XDG_DATA_DIRS='/nix/store/gw80kpl3r84ra3s08l45rd7clszaxawf-remmina-1.4.7/share'${XDG_DATA_DIR
export GST_PLUGIN_SYSTEM_PATH_1_0='/nix/store/z046nswsdcyzb9v69gkyyzm1jfyvcd28-gstreamer-1.16.2/lib/
export LD_LIBRARY_PATH='/nix/store/r2lm74kf3mzc7izvnjqchlac5sifg086-libX11-1.6.8/lib'${LD_LIBRARY_PA
exec -a "$0" "/nix/store/gw80kpl3r84ra3s08l45rd7clszaxawf-remmina-1.4.7/bin/.remmina-wrapped"  "$@"
т.е. то же LD_LIBRARY_PATH= портирование, но с адом путей, вместо ада зависимостей (а может и вместе)  ;)
Код
live@pra-roll:/nix/store/gw80kpl3r84ra3s08l45rd7clszaxawf-remmina-1.4.7/bin$ ldd ./.remmina-wrapped  |wc -l
89 зависимостей

Практическое применение...
Ничего кроме : "сидеть на стабильном дистре типа дебиана, а чтобы пошупать свежий софт юзать nix"
Как-то сложно. Наверное, просто бы поставил арч фулл в виртуалку
Ничего другого не придумал
Инфы в инете мало
« Последнее редактирование: 08 Ноябрь 2020, 11:48:06 от sfs »

Оффлайн Harzah2

  • Новичок
  • *
  • Сообщений: 17
  • Репутация: +1/-0
Re: Nix - linux в linux c декларативной конфигурацией
« Ответ #6 : 08 Ноябрь 2020, 12:23:31 »
Модель декларативной конфигурации NixOS позволяет легко воспроизвести конфигурацию системы на другом компьютере. Копирование файла конфигурации на целевой компьютер и выполнение команды обновления системы генерирует ту же конфигурацию системы (ядро, приложения, системные службы и т. д.), за исключением тех частей системы, которые не управляются диспетчером пакетов, например пользовательскими данными.
тоже не понял
Это если установлена сама NixOS (операционная система с пакетным менеджером Nix) - там вся система описывается в одном файле. То есть, все пакеты, все настройки и тд... переносишь на другой компьютер и получаешь аналогичную систему. Но это только в NixOS - в обычном Nix, который устанавливается на любой Линукс, такого нет. Он просто позволяет добавить ещё один репозитарий и качать из него программы.

Или создать свой и поддерживать его. Я в том плане говорил, что поддержание такого репозитария для Puppyrus было бы более простой задачей, чем использовать замороженные срезы Арча и тд. Так как тут можно создать полностью своё со своими настройками и не надо было бы пересобирать для конкретной версии Puppyrus оно бы работало на всех версиях без проблем.

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33966
  • Репутация: +231/-0
    • PuppyRus-A
Re: Nix - linux в linux c декларативной конфигурацией
« Ответ #7 : 08 Ноябрь 2020, 12:53:15 »
Он просто позволяет добавить ещё один репозитарий и качать из него программы
Он добавляет весь корень nixos c хитрой обвязкой через LD_LIBRARY_PATH
Или создать свой и поддерживать его
А смысл? Почему не сделать такое сразу под  свой дистр, без nix?
поддержание такого репозитария для Puppyrus было бы более простой задачей, чем использовать замороженные срезы Арча
Какая разница под чем компилить. Под Арчем проще всего (мне).
не надо было бы пересобирать для конкретной версии Puppyrus оно бы работало на всех версиях без проблем.
Портированные.pfs так и работают - см LF01 (арч и деб в одном флаконе)
Репа может быть или заморожена (LTS) или роллинг
Третьего не дано
Во всех роллингах рано или поздно перекомпилять придется
Какое-то время можно перекомпилять под старые либы свежии версии софта. Тут у каждого софта по своему

Короче - никаких чудес как и с генту. Все из одних src . Везде можно пересобрать все как хочешь (если умеешь)
Все возможности nix в наших initrd есть "из коробки."

Оффлайн MaximGalkin

  • Новичок
  • *
  • Сообщений: 8
  • Репутация: +0/-0
  • С планеты Земля
Re: Nix - linux в linux c декларативной конфигурацией
« Ответ #8 : 06 Февраль 2021, 14:19:27 »
мне интерфейс не зашел, хотя это наверно дело вкуса