LINUX.ORG.RU

В чём смысл Никсоси?

 , ,


0

3

Вчера решил потыкать палкой в Никсось. Вопросов в итоге больше, чем ответов.

1. Декларативный конфиг. Запихнули все настройки в один файл. В других линуксах это будет комплект файлов. Но потаенный смысл «декларативности» ускользает.

2. Вся движуха происходит в /nixos/ базовая иерархия линуксовых директорий практически не используется. В чем опять же, смысл? Устроить срач в одной отдельно взятой директории? Причем этот срач превосходит изначальный срач в других линуксах.

3. Не релевантность опыта использования Никсоси. Можно десятилетия сидеть в никсоси и не иметь опыта в линуксе. Всё, что происходит в никсоси - остается в никсоси.

4. Воспроизводимость системы. Непонятно зачем. Развернуть одинаковую систему на много компов одновременно? Это можно сделать и в других линуксах. И это не то, что надо делать постоянно.

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

Это всё сугубо мое личное мнение. Возможно, я сильно заблуждаюсь. Кто сможет раскрыть мне глаза?

ДОБАВЛЕНО: Еще один животрепещущий вопрос. Как в никсоси разруливаются зависимости? Существует ли разделение на обязательные и необязательные? И если да, то как это настроить?

И да, чехарда с именами разделов при загрузке - присутствует.

★★★★★

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

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

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

Актуально, если надо это делать постоянно. Тестирование и прочая.

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

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

У меня в бекапе лежат конфиги генты, вплоть до /var/lib/portage. Места занимают немного, но в случае чего, я пихну их в свежий стаж3 и получу на выходе то, что мне надо. Это не будет воспроизведением той старой системы, ибо прошло много времени. Это будет система, собранная так, как мне надо.

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

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

И что вы это делаете сразу на железе? Не в контейнере или виртуалке?

У меня в бекапе лежат конфиги генты

Меня всегда поражают вот эти «абстрактные конфиги», что же вы все там такое адское настраиваете-то.

Вот для примера недавно слетевшая FreeBSD (неудачно откатывался с current) 4 конфига формата «ключ=значение и все». Ну еще hostname, ладно. Причем это ноутбук и разработка.

Ладно если это сопровождение чего-то древнего и комплексного, где есть cron jobs, какие-то сложносочиненные папки и настройки закрытого ПО вендора (типа криптопровайдера), но там и бекапы делаются сразу на уровне образа диска.

А вам-то зачем? Конфиги от Wayland и conky хранить?

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

Что у вас все работает — я даже и не сомневался. Я тоже свой выбор сделал, по итогам.

загнать пять пользователей в электронный концлагерь полностью preconfigured среды, это ад конечно.

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

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

Я тоже свой выбор сделал, по итогам.

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

Но какой смысл выбирать инструмент ? Это уже фетишизм какой-то.

Мне конечно самому всякое странное нравится, но при этом я не хожу по форумам и не рассказываю что «FreeBSD нам даровал лично Господь всемогущий, а кто на нее не перейдет тот сгорит на костре цифровой инквизиции прямо сейчас» .

Я не очень понял, в чем концлагерь.

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

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

Запись названия программы в файлик и в командную строчку — действия одинаковой сложности

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

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

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

Но какой смысл выбирать инструмент ?

Я не понял этого вопроса. Чтобы пользоваться одним инструментом, а не всеми одновременно?..

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

Мне кажется, что вы NixOs не пользовались ни разу, и думаете, что она из каменного гранита.

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

Ну они и ставят.

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

А «потом» уже не вопрос дистрибутива.

Короче NixOs пользоваться проще, конфигурировать ее проще, она не ломается, все довольны, я все успеваю. А вы придумываете себе какие-то препятствия, которые я якобы преодолеваю.

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

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

Вообще смысл в выполнении работы обычно, не в «пользовании». Поэтому выбор в пользу только одного инструмента выглядит странно.

Мне кажется, что вы NixOs не пользовались ни разу, и думаете, что она из каменного гранита.

Так и есть, дальше виртуалки не заходил. Поэтому и спрашиваю.

А «потом» уже не вопрос дистрибутива.

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

Поэтому увы но нет, «ОС - платформа, софт - работа». Установил и забыл - так не работает.

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

И что вы это делаете сразу на железе? Не в контейнере или виртуалке?

У меня нет серверов и прочих игрушек. Линуксы я ставлю на железо, изредко в варе.

Меня всегда поражают вот эти «абстрактные конфиги», что же вы все там такое адское настраиваете-то.

Нмчего абстрактного, make.conf, /etc/portage и кое какие файлы из /etc.

Первоначальная настройка генты - то еще уныние.

А вам-то зачем? Конфиги от Wayland и conky хранить?

Оптимизация времязатрат. У меня еще есть самодельный юнит для hdparm.

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

Короче NixOs пользоваться проще, конфигурировать ее проще

Как настроить кириллицу в консоли?

П С. Я не ставлю пакеты с прошивками подо всё что угодно. Кладу их сам в /lib/firmware. Как это провернуть в никсоси?

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

Так и есть, дальше виртуалки не заходил. Поэтому и спрашиваю.

Я ставил на железо. По любому чиху - будьте любезны в гугел. Справочник по configuration.nix скоро выйдет в трехтомнике. И потом nixos-rebuild switch и получите новый слепок. Никсось очень быстро засрет своими слепками систему.

Система крайне непрозрачная для пользователя.

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

А знания генты вам генетически передались или с молоком матери впитали?

Любите выдирать из контекста и разводить демагогию? Вы хоть попытайтесь проследить за мыслью и может что-то встанет на свои места.

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

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

Текстовый редактор у меня тоже есть. Мне кажется, вы пытаетесь завести философскую беседу там, где для нее нет места.

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

Это как раз те проблемы, которые Nix решает.

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

Нмчего абстрактного, make.conf, /etc/portage и кое какие файлы из /etc.

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

Первоначальная настройка генты - то еще уныние.

Вот объясните мне: зачем вам генту? Вы же не разработчик, в make.conf например указываются ключи для запуска компилятора и линковщика (причем далеко не все).. и что это вам дает? Если вы не занимаетесь разработкой, не компилируете собственный софт - зачем оно вам?

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

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

И они прошли долгий путь до реального применения, решая задачи развертывания, автоматизации и тд и тп.

Оптимизация времязатрат.

Начните с осмысления собственной работы, что именно вы делаете и зачем.

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

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

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

Понимаю что вы далеки от разработки а текстовые редакторы везде одинаковые, но разработка под разными ОС отличается.

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

Креститься надо если кажется.

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

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

В генте - нет. Разговор был про никсось.

Вот объясните мне: зачем вам генту?

Теперь уже незачем. Раньше она позволяла собрать систему под свои хотелки.

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

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

К архитектурным косякам генты, калька добавляет свои. Спасибо, но как-нибудь без меня.

Начните с осмысления собственной работы, что именно вы делаете и зачем.

Моя работа далека от айти и я её давно осмыслил.

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

Раньше она позволяла собрать систему под свои хотелки.

Что же вам такого хотелось что пришлось аж свою ОС собирать? Мне правда интересно.

К архитектурным косякам генты, калька добавляет свои

«Архитектурные косяки операционной системы», вы серьезно?

Я вот много лет был «архитектором ПО», те моей прямой должностной обязанностью было проектирование сложных ИТ-систем. Но вот так однозначно говорить про «архитектурные косяки» еще и целой ОС - не берусь.

Единственная серьзная претензия к генту проистекает из смысла ее существования: необходимость постоянной сборки всего и вся из исходников.

Моя работа далека от айти и я её давно осмыслил.

Была же история с анастезиологом, который свои патчи к ядру делал. Так что все в ваших руках.

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

Архитектурные косяки операционной системы

Мастер додумываний?

Была же история с анастезиологом, который свои патчи к ядру делал. Так что все в ваших руках

Мне есть чем себя занять в свободное время.

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

Нет там никаких контейнеров

Некорректно выразился с точки зрения истинного пользователя NixOS. :) Всего лишь имел ввиду невозможность явления Dependency hell.
А как оно реализовано и как это называется - контейнеры или изолированные пространства, или еще как, тут уж неофитам далеко до понимания. )

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

У меня никаких квадратиков нет, кириллица прекрасно отображается с тем конфигом что я скинул

Никсось 23 релиз. Установочный образ с сайта nixos.org. При установке меня спросило о часовом поясе и локали. В конфиг записало русскую локаль. После перезагрузки вместо кириллицы - квадраты. Классика. Зачем было спрашивать про локаль?

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

Вместо этого развернул рач и пишу сейчас из него. А мог бы преодолевать, во имя reproducible, declarative and reliable.

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

А как оно реализовано и как это называется - контейнеры или изолированные пространства, или еще как, тут уж неофитам далеко до понимания. )

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

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

При установке меня спросило о часовом поясе и локали

Нужно было по мануалу ставить, может хоть чуть-чуть какое-то понимание появилось бы, хз зачем этот Calamares влепили, одни проблемы от него

После перезагрузки вместо кириллицы - квадраты. Классика. Зачем было спрашивать про локаль?

Calamares установщик делает один человек и более чем уверен что про существование такой проблемы он не в курсе. Могу предложить разве что завести баг

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

Там стандартный systemd-vconsole-setup, который кстати не применяет настройки из графического окружения. После перезагрузки точно должно работать

Вместо этого развернул рач

Там установщик после выбора локали проставляет нужный шрифт в консоль?

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

С ними все хорошо, просто рассказывая про «DLL Hell» надо помнить что 100% решения нет и быть не может.

Вернее 100% решение это полная виртуализация, аля qemu. Все остальное - компромиссы.

Поставить две софтвины, одну со старой версией Gtk а другую с более новой вы сможете, но с зависимостью от двух разных версий glibc или DBus - нет.

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

Вместо этого развернул рач и пишу сейчас из него.

Кстати, в арчвики есть статья Nix:

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

$ pacman -Si nix
Репозиторий          : community
Название             : nix
Версия               : 2.17.0-1
Описание             : A purely functional package manager
Архитектура          : x86_64
URL                  : https://nixos.org/nix
Лицензии             : LGPL
Группы               : Нет
Предоставляет        : Нет
Зависит от           : boost-libs  brotli  curl  editline  gc  libarchive  libcpuid
                       lowdown  libseccomp  libsodium  nix-busybox  openssl  sqlite
Доп. зависимости     : Нет
Конфликтует с        : Нет
Заменяет             : Нет
Размер загрузки      : 2,85 MiB
Установленный размер : 9,67 MiB
Сборщик              : George Rawlinson <grawlinson@archlinux.org>
Дата сборки          : 2023-08-17 04:20
Проверен             : MD5  SHA-256  Подпись


Но я так и не понял, для чего это все.

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

но с зависимостью от двух разных версий glibc или DBus - нет.

Почему нет?

% nix shell nixpkgs/nixos-21.05#hello
% hello
Hello, world!
% nix path-info -r $(where hello)
/nix/store/nxkcjcdb9bfh9fvili44b6g2all08vr3-libunistring-0.9.10
/nix/store/7bzaif84k0ia8zkh4mg0c1kgibnb744n-libidn2-2.3.1
/nix/store/nprym6lf8lzhp1irb42lb4vp8069l5rj-glibc-2.32-54
/nix/store/09k3j51xyk9nrqvkwsnp26bm8y5kbgnq-hello-2.10
% ldd $(where hello)
    linux-vdso.so.1 (0x00007ffe60182000)
    libc.so.6 => /nix/store/nprym6lf8lzhp1irb42lb4vp8069l5rj-glibc-2.32-54/lib/libc.so.6 (0x00007f9f018ca000)
    /nix/store/nprym6lf8lzhp1irb42lb4vp8069l5rj-glibc-2.32-54/lib/ld-linux-x86-64.so.2 => /nix/store/9la894yvmmksqlapd4v16wvxpaw3rg70-glibc-2.37-8/lib64/ld-linux-x86-64.so.2 (0x00007f9f01a8d000)
% exit
% nix shell nixpkgs/nixos-unstable#hello
% hello
Hello, world!
% nix path-info -r $(where hello)
/nix/store/p58fbj416fzm72h2h2v87h7a8brl55d5-libunistring-1.1
/nix/store/7lihz4s5pg8irvp691x94argri346mls-libidn2-2.3.4
/nix/store/ibw4h4lp57820gi5i46iwdnp9i58k8li-xgcc-12.3.0-libgcc
/nix/store/9la894yvmmksqlapd4v16wvxpaw3rg70-glibc-2.37-8
/nix/store/wv3s1jl5p71fy9ip4lnhjvbmfbmkmjx2-hello-2.12.1
% ldd $(where hello)
    linux-vdso.so.1 (0x00007ffddf7bb000)
    libc.so.6 => /nix/store/9la894yvmmksqlapd4v16wvxpaw3rg70-glibc-2.37-8/lib/libc.so.6 (0x00007f3e8cf53000)
    /nix/store/9la894yvmmksqlapd4v16wvxpaw3rg70-glibc-2.37-8/lib/ld-linux-x86-64.so.2 => /nix/store/9la894yvmmksqlapd4v16wvxpaw3rg70-glibc-2.37-8/lib64/ld-linux-x86-64.so.2 (0x00007f3e8d13b000)
Tsukasa
()
Ответ на: комментарий от Tsukasa

Прикольно, но врядли осмысленно, поскольку из glibc идут уже syscalls - вызовы ядра. Т.е стену головой конечно пробить получилось, только дальше открытый космос.

Но за попытку конечно 5+ да.

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

Что значит за попытку? Две разных glibc? Две. Работает? Работает

Объясняю. У ядра есть API, называется syscalls. Вот например работа с каталогами оттуда:

#include <errno.h>
#include <stddef.h>
#include <unistd.h>

/* Change the current directory to PATH.  */
int
__chdir (path)
     const char *path;
{
  if (path == NULL)
    {
      __set_errno (EINVAL);
      return -1;
    }

  __set_errno (ENOSYS);
  return -1;
}
stub_warning (chdir)

weak_alias (__chdir, chdir)
#include <stub-tag.h> 

И ниже:

chdir is actually a system call; there will be per-OS system call bindings in the gibc source tree, which will override the stub definition with a real one that calls into the kernel. This allows glibc to present a stable interface across systems which may not have all of the system calls that glibc knows about.

Это означает что glibc привязан к ABI ядра, поэтому вот это «Работает? Работает» на самом деле бомба замедленного действия, которая взорвется сразу как будет вызов чего-то неподдерживаемого. И предсказать это нельзя.

Поэтому при обновлениях glibc приезжают обновления половины системы сразу - они пересобираются ментейнерами под обновленный glibc.

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

Поэтому при обновлениях glibc приезжают обновления половины системы сразу - они пересобираются ментейнерами под обновленный glibc.

Ну так и есть:

% /nix/store/nprym6lf8lzhp1irb42lb4vp8069l5rj-glibc-2.32-54/lib/ld-linux-x86-64.so.2 /nix/store/09k3j51xyk9nrqvkwsnp26bm8y5kbgnq-hello-2.10/bin/hello
Hello, world!
% /nix/store/nprym6lf8lzhp1irb42lb4vp8069l5rj-glibc-2.32-54/lib/ld-linux-x86-64.so.2 /nix/store/wv3s1jl5p71fy9ip4lnhjvbmfbmkmjx2-hello-2.12.1/bin/hello
/nix/store/wv3s1jl5p71fy9ip4lnhjvbmfbmkmjx2-hello-2.12.1/bin/hello: symbol lookup error: /nix/store/9la894yvmmksqlapd4v16wvxpaw3rg70-glibc-2.37-8/lib/libc.so.6: undefined symbol: _dl_audit_symbind_alt, version GLIBC_PRIVATE
% /nix/store/9la894yvmmksqlapd4v16wvxpaw3rg70-glibc-2.37-8/lib/ld-linux-x86-64.so.2 /nix/store/wv3s1jl5p71fy9ip4lnhjvbmfbmkmjx2-hello-2.12.1/bin/hello
Hello, world!
% /nix/store/9la894yvmmksqlapd4v16wvxpaw3rg70-glibc-2.37-8/lib/ld-linux-x86-64.so.2 /nix/store/09k3j51xyk9nrqvkwsnp26bm8y5kbgnq-hello-2.10/bin/hello
[1]    100488 segmentation fault (core dumped)   /nix/store/09k3j51xyk9nrqvkwsnp26bm8y5kbgnq-hello-2.10/bin/hello

Именно поэтому там две разные glibc для двух разных hello. В чём суть придирки-то?

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

Это не придирка , это диагноз этому дистрибьютиву.

Какой диагноз? Что разные версии программ при желании могут иметь разные версии glibc и не влиять друг на друга? Супер

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

Так… Разве в glibc нет обратной совместимости? Насколько я знаю, бинарник собранный с glibc-2.x отлично запускается на glibc-2.(x+1) libc это же не какой-нибудь буст, там всё стабильно. А ABI ядра не меняются вообще вроде.

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

У программы чуть сложнее hello будет дохрена зависимостей, и все их нужно пересобирать под каждую libc. Придется тащить разные наборы библиотек, которые нужно как-то поддерживать ещё. Клёво если нихось это всё разруливает (в чем я сомневаюсь), но сдается мне, проще устроить дуалбут из обычных дедовских дистров.

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

У программы чуть сложнее hello будет дохрена зависимостей, и все их нужно пересобирать под каждую libc.

Так и происходит при обновлении glibc, автоматически

Придется тащить разные наборы библиотек

Они тащятся автоматически

которые нужно как-то поддерживать ещё

Если оно собралось, то оно будет собираться пока доступны исходники, воспроизводимость, все дела. Старые релизы вроде 21.05 из примера выше не обновляются, но в кеше всё лежит и доступно для скачивания, хз какая ещё поддержка нужна

Клёво если нихось это всё разруливает

Именно в этом и суть

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

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

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

Что разные версии программ при желании могут иметь разные версии glibc и не влиять друг на друга?

Библиотека не может ни на что влиять, это просто файл на диске.

Большинство софта линкуется просто с libc.so без указания версии, поэтому пример выше с двумя glibc можно сделать ручками в любом линуксе через переменные LD_PRELOAD и LD_LIBRARY_PATH, просто указав разные каталоги.

Но этого мало, потому что внутри glibc идут вызовы ядра.

Все это означает что указывание разных glibc в качестве зависимости - ввод в заблуждение и обман.

Скорее всего все доступные версии glibc были собраны самими ментейнерами NixOS под конкретные же номера ядра, ровно также как раньше лежали 5я и 6я версии glibc рядом в /usr/lib.

Какой-то внешний софт в виде бинарника, слинкованный со старым glibc (те без пересборки ментейнером) работать не будет.

Не знаю что тут еще добавить.

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

С готовеньким и я могу NixOS уштановить куда надо

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

Despite looking like normal packages, simply adding these font packages to your environment.systemPackages won't make the fonts accessible to applications. To achieve that, put these packages in the fonts.fonts NixOS options list instead.

fonts.fonts = with pkgs; [
  (nerdfonts.override { fonts = [ "FiraCode" "DroidSansMono" ]; })
];

что и куда я должен впихнуть?

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

Но этого мало, потому что внутри glibc идут вызовы ядра.

И? Слишком новая glibc на слишком старом ядре не взлетит, в этом проблема, или в чём?

Все это означает что указывание разных glibc в качестве зависимости - ввод в заблуждение и обман.

Они не «указываются», они гвоздями прибиты

Скорее всего все доступные версии glibc были собраны самими ментейнерами NixOS под конкретные же номера ядра, ровно также как раньше лежали 5я и 6я версии glibc рядом в /usr/lib.

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

Какой-то внешний софт в виде бинарника, слинкованный со старым glibc (те без пересборки ментейнером) работать не будет.

Внешние бинарники на NixOS и не запустятся ввиду отсутствия /lib* и /usr/lib*

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

И? Слишком новая glibc на слишком старом ядре не взлетит, в этом проблема, или в чём? Внешние бинарники на NixOS и не запустятся ввиду отсутствия /lib* и /usr/lib*

Ну тогда да, вопрос так сказать закрыт ))

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

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

Тогда это полная зависимость от ментейнеров

Никакой зависимости. Что-то хочешь - либо у себя в конфиге делаешь, либо идёшь в nixpkgs и шлёшь свой pull-request. В условном дебиане это одна боль и страдания, да, в NixOS же делаешь что хочешь. Собирать пакеты руками не нужно, свои репы с бинарниками поднимать не нужно. Всё в конфиге

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

шлёшь свой pull-request.

Есть целый отдельный мир закрытого коммерческого ПО (чаще всего корпоративного) для линукса.

Это решения IBM/SAP/Oracle и прочих больших вендоров, поставляются они в виде бинарного инсталлятора, с бинарными же библиотеками. Чаще всего даже инсталляторы публично не доступны.

Так что никаких пул-реквестов тут быть не может.

Странно что за столько лет никто в Никоси не пробовал дружить такой коммерческий софт.

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

ЕМНИП, вызовы ядра стабильны и не меняются, следовательно, должна работать любая libc. А glibc в свою очередь, обратно совместима, за исключением случая, когда говнокодеры захардкодили какую-то определенную версию.

Werenter ★★★
()