The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Уязвимости в пакетных менеджерах Nix, Lix и Guix

25.06.2025 12:45

В пакетных менеджерах GNU Guix, Nix и Lix выявлены уязвимости (Nix, Guix, Lix), позволяющие выполнить код с правами пользователей, под которыми запускаются сборочные задания (например, nixbld* в Nix/Lix), что может использоваться для записи своих данных в сборочное окружение и внесения изменений в сборочный процесс. Проблемы присутствуют в фоновых процессах guix-daemon и nix-daemon, применяемых для организации доступа непривилегированных пользователей к сборочным операциям.

Уязвимости вызваны тем, что при выполнении некоторых операций для доступа к временным сборочным каталогам использовались не дескрипторы dirfd, а полные файловые пути, что позволяло подменить сборочный каталог, размещаемый в иерархии /tmp (например, "/tmp/guix-build-PACKAGE-X.Y.drv-0"). Неверное использование dirfd в функции рекурсивного удаления приводило к состоянию гонки, из-за которого атакующий мог подставить символическую ссылку в момент между созданием и изменением владельца сборочного каталога. При успешной атаке guix-daemon/nix-daemon вместо смены пользователя для сборочного каталога менял владельца для файла, адресуемого символической ссылкой.

Уязвимости устранены в обновлениях Lix 2.93, Nix 2.29 и Guix 1.4.0-38.0e79d5b. Для эксплуатации уязвимостей атакующий должен иметь возможность запуска произвольных сборочных работ. Для атаки с использованием уязвимости CVE-2025-46415 достаточно возможности создания файлов в каталоге /tmp на сборочной машине, а для уязвимости CVE-2025-46416 необходимо иметь возможность запуска кода в контексте основного пространств имён идентификаторов пользователей (pid namespace) и сети (network namespace).

  1. Главная ссылка к новости (https://lists.gnu.org/r/guix-d...)
  2. OpenNews: Уязвимости в PCP и Nix, позволяющие поднять привилегии в системе
  3. OpenNews: В NixOS предложен метод защиты от подстановки бэкдоров, таких как в XZ
  4. OpenNews: Уязвимость в пакетном менеджере GNU Guix
  5. OpenNews: Опасные уязвимости в Firejail, Connman и GNU Guix
  6. OpenNews: Уязвимость в NetworkManager-libreswan и guix-daemon, позволяющие повысить привилегии в системе
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/63464-guix
Ключевые слова: guix, nix
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (95) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, IMBird (ok), 14:03, 25/06/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    Эти уязвимости кого надо уязвимости.
    Нужно больше дистрибутивов и больше систем, чтобы никто адекватный об аудите даже не задумывался.

    Пакетные системы BSD и гайки всё ещё самые адекватные по реализации.

     
     
  • 2.10, bOOster (ok), 14:21, 25/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    И в целом там и о расте адекватно задумываются - как о возможности, а не панацее..
     
     
  • 3.18, Аноним (-), 14:50, 25/06/2025 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Исходный код раст открыт? Как он с GNU уживётся? Если проприетарный раст будет использоваться, то GNU уже будет не торт. Весь смысл потеряется. Люди тогда прежде чем покупать устройство под PureOS, могут и задуматься - а зачем? Устройства Librem не такие уж и дешевые как кажутся: https://puri.sm/products/
     
  • 2.12, Аноним (12), 14:28, 25/06/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >Пакетные системы BSD и гайки всё ещё самые адекватные по реализации.

    И самые неуловимые, как Джо.

     
     
  • 3.35, Аноним (35), 15:45, 25/06/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Это раньше было что Джо неуловимый потому что никому не нужен. По текущим нормам корпорации за информацию сколько любой самый ненужный Джо с дивана вставал уже давятся.
     
  • 2.16, Аноним (-), 14:44, 25/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Больше пакетных менеджеров и пакетов, пакетов, пакетов!
     
  • 2.19, Аноним (19), 14:50, 25/06/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >Пакетные системы BSD и гайки всё ещё самые адекватные по реализации.

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

     
     
  • 3.43, Аноним (43), 16:44, 25/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Главное, не забывать повторять услышанное в перепеве Рабиновича кстати, сборка... большой текст свёрнут, показать
     
     
  • 4.61, Аноним (61), 00:36, 26/06/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >Главное, не забывать повторять услышанное в перепеве Рабиновича

    Вам же хорошо сказано
    >до недавнего времени

    Посмотрите на дату коммита
    >2018, 2016

    Когда там bsd появилась, в каком году? Солько лет так жили - 10, 20, а то может и все 40?

     
  • 3.55, Аноним (55), 22:36, 25/06/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Всю жизнь рут требовался только для make install.
     
  • 3.122, Аноним (122), 18:15, 27/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Ну а pkgsrc в NetBSD с самого своего рождения в 1997 умеет работать без рута со сборкой и установкой пакетов в $HOME/pkg.
     
  • 2.32, Аноним (61), 15:38, 25/06/2025 [^] [^^] [^^^] [ответить]  
  • –7 +/
    >Пакетные системы BSD и гайки всё ещё самые адекватные по реализации.

    Топорные топоры из каменного века, не способные почти ни на что?

     
     
  • 3.36, Аноним (35), 15:48, 25/06/2025 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Иногда топоры покрайней мере надёжные, а все новомодные пукалки не вызывают доверия.
     
     
  • 4.40, Аноним (61), 15:56, 25/06/2025 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Я надеюсь, что еду себе вы готовите на костре, дрова для которого, срублены каменным топором. Мангал, печь и другихе хипсторские смузитехнологии не используете.
     
     
  • 5.74, Аноним (74), 10:40, 26/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Аналогии не работают.
     
     
  • 6.75, Аноним (75), 10:55, 26/06/2025 Скрыто ботом-модератором     [к модератору]
  • +/
     
     
  • 7.80, Аноним (80), 12:06, 26/06/2025 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 6.77, Аноним (61), 11:07, 26/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Давайте без аналогий. В остальных пакетных менеджерах нет и не то что половины, но и пожалуй и одной десятой возможности nix. И то, что в nix делается элементарно, вы, скорее всего сделать просто не сможите, но вам будет стыдно в этом признаться, по этому вы скажете, что это не нужно.
     
     
  • 7.86, Аноним (-), 13:18, 26/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Да уж, сделать пакетник аж демоном? И накосячить с гонками, давая возможность Васянам выполнить что попало с привилегиями? Вот это я понимаю - возможности ... апгрейда привилегий и поимения систем. Правда объект поимения попробуй еще найди в диком виде.
     
     
  • 8.90, Аноним (61), 13:39, 26/06/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ниже ваш коллега уже сколько сообщений настрочил, и с каждым его сообщение конкр... текст свёрнут, показать
     
  • 4.44, Голум (?), 17:07, 25/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Они у вас лишь иногда надёжные? А всё остальное время тоже не вызывают доверия?
     
  • 3.85, Аноним (-), 13:14, 26/06/2025 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Топорные топоры из каменного века, не способные почти ни на что?

    У них и репы под стать. LTS нету, содержат все это абы как, по остаточному принципу. За что и повылетели отовсюду. Кому гемор надо? И типа-серверная ос без LTS и нормальных бинарных реп с адекватными полисями? Да вы шутите, кому такое нахрен надо в 2025 кроме горстки самых отбитых фанатов?

     

  • 1.2, Анонимище (?), 14:04, 25/06/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +12 +/
    Какие созвучные имена пакетных менеджеров, прямо как из сказки про трех поросят
     
     
  • 2.33, Кошкажена (?), 15:38, 25/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Какие созвучные имена пакетных менеджеров, прямо как из сказки про трех поросят

    Я злой и страшный серый волк, я в поросятах^Wпакетных менеджерах знаю толк!

     

  • 1.3, Fracta1L (ok), 14:08, 25/06/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    Фоновые процессы для установки программ, вот это клиника
     
     
  • 2.8, Аноним (-), 14:14, 25/06/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Почему?
     
  • 2.17, Аноним (17), 14:49, 25/06/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Фоновые процессы для монтирования/размонтирования, для вывода звука, для вывода окошек, для показа диалога "Открыть файл", для отправки сообщения в третий процесс через шину, для всего подряд. А ты тут про какую-то установку программ.
     
     
  • 3.26, Fracta1L (ok), 15:17, 25/06/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Это всё можно понять, потому что для нормальной комфортной работы этих подсистем нужно ловить события. А какие к чёрту события могут быть у менеджера пакетов, что это потребовало демона?
     
     
  • 4.27, 12yoexpert (ok), 15:24, 25/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    в унбунте до сих пор нельзя выключить попапы обновлений без rm -rf что-то-там?
     
  • 4.29, Аноним (17), 15:25, 25/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Событие "собери/скачай такой-то дериватив". Это позволяет обычным пользователям пользоваться услугами сборщика. Почему так сделано? Ответ в твоем комменте: "для нормальной комфортной работы".
     
  • 4.34, Аноним (61), 15:44, 25/06/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    >А какие к чёрту события могут быть у менеджера пакетов, что это потребовало демона?

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

     
     
  • 5.48, Аноним (48), 19:22, 25/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > и так далее

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

     
     
  • 6.52, Аноним (61), 21:11, 25/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    А крон давно демоном быть перестал Когда я вызываю nix, то хочу получить резуль... большой текст свёрнут, показать
     
     
  • 7.58, Аноним (48), 23:06, 25/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    так для него это необходимость, один демон, исполняющий периодически необходимые... большой текст свёрнут, показать
     
     
  • 8.59, Аноним (61), 00:27, 26/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Количество демонов с начала 70-ых возросло Очень сильно Тот же snap из убунты,... большой текст свёрнут, показать
     
     
  • 9.63, Аноним (48), 01:01, 26/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Дайте определение понятия демон служба , я думаю вы не понимаете значение этого... большой текст свёрнут, показать
     
     
  • 10.67, Аноним (17), 03:23, 26/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Если есть меж-процессное взаимодействие, значит процессов как минимум два На эт... большой текст свёрнут, показать
     
     
  • 11.79, Аноним (48), 11:46, 26/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Демон это не понятие взаимодействия, для взаимодействия двух процессов мне нет н... большой текст свёрнут, показать
     
     
  • 12.83, Аноним (61), 12:53, 26/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Вы сами придумали это определение Демон - это фоновый процесс Формально, тот к... большой текст свёрнут, показать
     
     
  • 13.93, Аноним (48), 14:14, 26/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Запущенный 24 на 7 калькулятор - не демон служба , но любое ПО которое мы счита... большой текст свёрнут, показать
     
     
  • 14.94, Аноним (61), 14:56, 26/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Кто подразумевает Ыксперд, который сам признаётся, что ничего не знаете Да люб... большой текст свёрнут, показать
     
     
  • 15.96, Аноним (48), 15:46, 26/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    кек, тот кто дает определение, я дал свое определение и обосновал, а вы до сих п... большой текст свёрнут, показать
     
     
  • 16.99, Аноним (61), 16:35, 26/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Попугайство - не обоснование Вбейте в поисковик запрос, быстренько найдёте Даж... большой текст свёрнут, показать
     
     
  • 17.101, Аноним (48), 17:45, 26/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    ага у вас emacsclient будет работать 24 на 7 когда встретит unable to connect ... большой текст свёрнут, показать
     
     
  • 18.105, Аноним (61), 18:59, 26/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Формально всё же emacs, хотя в tmux-е или его аналоге может и emacsclient Вот, ... большой текст свёрнут, показать
     
     
  • 19.110, Аноним (48), 20:17, 26/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Потому-что ГНУ Нот Юникс Ну так нужно или не нужно Демон но не в бек... большой текст свёрнут, показать
     
     
  • 20.114, Аноним (61), 09:21, 27/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Есть возможность, сделать это сторонними инструментами В первую очередь, это го... большой текст свёрнут, показать
     
  • 21.117, Аноним (48), 13:14, 27/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    От добавления при вызове того же калькулятора и перевода его в фоновый режим, ... большой текст свёрнут, показать
     
  • 22.119, Аноним (61), 14:36, 27/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Вы рассуждаете как типичный дед - уб - это не страшно, уязвимости - это не страш... большой текст свёрнут, показать
     
  • 23.120, Аноним (48), 15:24, 27/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Где я такое писал Я написал, что не надо мне говорить в контексте УБ за безопас... большой текст свёрнут, показать
     
  • 10.71, Аноним (61), 09:47, 26/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Всё вам дайте Сами вы привести определение демона почему-то не хотите Где-то в... большой текст свёрнут, показать
     
     
  • 11.81, Аноним (48), 12:23, 26/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Вы же у меня его не просили, а я у вас спрашиваю из необходимости, потому-что ви... большой текст свёрнут, показать
     
     
  • 12.87, Аноним (61), 13:35, 26/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Я у вас спросил, почему вы взяли, что демон это 24 7 В ответ громовая тишина Г... большой текст свёрнут, показать
     
     
  • 13.95, Аноним (48), 15:17, 26/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Ну ка номер коммента где вы это спросили Сокеты это механизм взаимодействия, не... большой текст свёрнут, показать
     
     
  • 14.98, Аноним (61), 16:05, 26/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Ctrl F, а далее введите 24 Не нужно путать частное с целым Например Вот я в... большой текст свёрнут, показать
     
     
  • 15.102, Аноним (48), 18:36, 26/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Docker Engine Docker Engine is an open source containerization technology for bu... большой текст свёрнут, показать
     
     
  • 16.109, Аноним (61), 19:40, 26/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Ну и Что вы этим хотите сказать nix устроен похожим образом Каким образом, вы... большой текст свёрнут, показать
     
     
  • 17.111, Аноним (48), 20:34, 26/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    я видел программистов , которые писали апач, и видел сисадмина, который написал... текст свёрнут, показать
     
     
  • 18.115, Аноним (61), 09:29, 27/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Любой человек, пишущий код - программист Надо Об этом нужно постоянно говорить... текст свёрнут, показать
     
     
  • 19.116, Аноним (80), 09:37, 27/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    А любой человек, завывающий по пьяне, певец Если вы сейчас не про конкретное ПО... текст свёрнут, показать
     
  • 19.118, Аноним (48), 13:19, 27/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Вам на этот комент уже ответили, а я воздержусь, ибо согласен с выше сказанным в... текст свёрнут, показать
     
  • 17.121, Аноним (43), 15:31, 27/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Всегда умели И пользовались этим еще с древних времен, хотя вместо хоста обыч... текст свёрнут, показать
     
  • 15.103, Аноним (48), 18:38, 26/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Note that this daemon does not fork into the background ... текст свёрнут, показать
     
     
  • 16.108, Аноним (61), 19:14, 26/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Как и ожидалось, ыкспердище откопал экспиреминтальную программу и делает выводы ... текст свёрнут, показать
     
  • 9.68, Аноним (68), 08:30, 26/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Вы сами на свои вопросы и отвечаете, нет Делаете окружение пользователя-сборщик... большой текст свёрнут, показать
     
     
  • 10.72, Аноним (61), 09:54, 26/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Нет у вас никаких инструментов Весь смысл nix в том, что он как раз таки и явля... текст свёрнут, показать
     
  • 8.60, Аноним (61), 00:32, 26/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    emacs --daemon передаёт вам пламенный привет Условный vs code или phpstorm тоже... текст свёрнут, показать
     
     
  • 9.64, Аноним (48), 01:15, 26/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Ну вот уже прогресс, а теперь вопрос, возможно ли клиент-серверную архитектуру П... большой текст свёрнут, показать
     
     
  • 10.69, Аноним (61), 09:26, 26/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Откройте unut файл nixos-container, и обнаружите, что для котнейнера nix как раз... текст свёрнут, показать
     

  • 1.4, Аноним (4), 14:10, 25/06/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    О про Nix.

    Все пытаюсь узнать - можно ли одной общей настройкой сделать сборку своего пакета во множестве вариантов (все используемые библиотеки всех версий)?

    Типа написал один конфиг сборки - и генерируешь пакеты своей программы на каждую комбинацию библиотек.

    Иначе смысла для разработчиков в Nix особо не вижу.

     
     
  • 2.11, Amerigo (?), 14:26, 25/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Flakes + Overlays вам в помощь.
     
     
  • 3.20, Аноним (4), 14:55, 25/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Быстро просмотрел. Но, кажется, там нет возможности задать использование разных версий библиотек в разных комбинациях.
     
  • 2.23, Аноним (17), 15:06, 25/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > все используемые библиотеки всех версий

    Это ж сколько там будет версий! Попробуй взять калькулятор и рассчитать, сколько миллиардов сборок тебе придется сделать.

     
  • 2.31, Аноним (61), 15:36, 25/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    >Типа написал один конфиг сборки - и генерируешь пакеты своей программы на каждую комбинацию библиотек.

    Можно, map reduce изобретён. Ну разумеется, если исходный код и компилятор такое переживёт, со стороны nix таких ограничений нет. Всё же nix это функциональный язык.

     
  • 2.37, Аноним (17), 15:48, 25/06/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А вообще, в никсе так не принято. (Да и нигде так не принято.) Ты оформляешь пакет в виде функции, которая: 1) принимает все свои зависимости во входном attrset, 2) возвращает дериватив. Далее этот пакет вызываешь при помощи pkgs.callPackage. И все, финальный пакет соберется с зависимостями, подтянутыми из pkgs. Но если кому-то приспичило подменить одну зависимость на другую, он сделает your-package.override { libfoo = libfoo-123; }. Пытаться сразу собирать пакет со всеми возможными комбинациями действительно приведет к миллиардам сборок: месяцами будешь тестировать 24/7 и платить за электричество.
     
     
  • 3.41, Аноним (61), 16:03, 25/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    >А вообще, в никсе так не принято. (Да и нигде так не принято.)

    Не совсем. Вот есть, например pkgs.pkgsMusl, который хранит в себе дерево пакетов для musl. Или есть pkgs.linuxPackages, который позволяет как выбрать версию ядра, так и сразу какой-то набор патчей. Так что уже прямо в репозитории есть готовые пакеты несколькоих разных версий.

     
  • 3.57, Аноним (57), 22:57, 25/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Пытаться сразу собирать пакет со всеми возможными комбинациями действительно приведет к миллиардам сборок: месяцами будешь тестировать 24/7 и платить за электричество.

    Очевидно это в общем случае.

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

    В итоге сборок будет много - но не бесконечно много.

     
     
  • 4.73, scor (ok), 09:56, 26/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Как уже сказали, nix хоть и самобытный, но полноценный язык, на котором можно реализовать любую логику. Вот, как пример, flake, который собирает кастомную питонячку для разных архитектур https://github.com/mindwm/mindwm-sdk-python-ng/blob/master/flake.nix
    Точно также, как в цикле подставляется нужный '${system}', можно и для всех нужных версий библиотек сделать permutation и пройтись по этому списку, нагенерив туеву хучу вариантов сборок.
     
     
  • 5.89, Аноним (4), 13:38, 26/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Как я понял, system захардкожено. Остальное надо как-то по-другому реализовывать.
     
     
  • 6.91, Аноним (61), 13:54, 26/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    >Остальное надо как-то по-другому реализовывать.

    Вам прямо сказали использовать map reduce.
    https://nix.dev/manual/nix/2.18/language/builtins#builtins-map
    https://nix.dev/manual/nix/2.18/language/builtins#builtins-foldl'
    хотя для данной задачи скорее всего только map нужен будет. Ну и посмотреть как это реализовано для тех пакетов, у которых несколько версий, типа python, ocmal и так далее.

     
  • 6.92, Аноним (61), 13:59, 26/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    То есть, вы вначале определяете список всех версий библиотек, потом взаимно рекурсивно определяете пакеты https://nix.dev/manual/nix/2.18/language/constructs#recursive-sets, а потом условным map-ом собираете все версии сразу. Ну или делаете что-то вроде этого https://github.com/NixOS/nixpkgs/blob/nixos-25.05/pkgs/development/tools/ocaml Ну или любую другую логику, какая вам нужна.
     
  • 6.106, scor (ok), 19:05, 26/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Не очень понял, что значит "захардкожено".:) Определён список архитектур, под которые можно собрать. Автор flake-а сам определяет, какой именно список ему нужен. С версиями библиотек примерно тоже самое. Откуда-то они (нормера версий) должны же взяться?

    Типа, берём список версий двух библиотек, считаем произведение:
    '''
    ghci> libA = ["liba-1.0.0", "liba-1.1.2", "liba-2.3.0"]
    ghci> libB = ["libb-1.2.1", "libb-1.3.5", "libb-2.0.1"]
    ghci> mapM print $ [(x,y) | x <- libA, y <- libB]
    ("liba-1.0.0","libb-1.2.1")
    ("liba-1.0.0","libb-1.3.5")
    ("liba-1.0.0","libb-2.0.1")
    ("liba-1.1.2","libb-1.2.1")
    ("liba-1.1.2","libb-1.3.5")
    ("liba-1.1.2","libb-2.0.1")
    ("liba-2.3.0","libb-1.2.1")
    ("liba-2.3.0","libb-1.3.5")
    ("liba-2.3.0","libb-2.0.1")
    '''

    Соответственно, для каждой бибилиотеки, каждой версии нужно будет описать как её собирать. Дальше, по этому списку собираем наш проект с конкретными версиями, на выходе получаем очень много бинарников. Хз зачем, но можно и так.:)

     

  • 1.5, Аноним (-), 14:11, 25/06/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Это тот самый NIX который используется в самой лучшей (по мнению её фанатов) NixOS ?
    Которая самая удобная и безопасная, не то что ваши эти...
     
     
  • 2.7, Аноним (-), 14:14, 25/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Ага.
     
  • 2.9, Аноним (9), 14:19, 25/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Что же безопасно...
     

  • 1.15, Шарп (ok), 14:40, 25/06/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Лабораторная уязвимость. В реальности недостижимо.
     
     
  • 2.22, Аноним (4), 14:58, 25/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Вообще-то стандартная. Делаешь свою сборку пытающуюся использовать эту уязвимость. 100000 соберут - у одного сработает. Все - профит.
     
  • 2.24, User (??), 15:12, 25/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Поди што и чинить не надо?
    Хотя... не rhel с ubuntu'ой - на той машине с NIX'ом один черт, ничего интересного нет, а те 5 сольдо что есть - проще выцыганить звонком про "безопасный счет ФСБ"...
     
  • 2.70, yet another anonymous (?), 09:44, 26/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Согласен. Техника сродни "эстонскому вирусу".
     

  • 1.46, Аноним (46), 17:46, 25/06/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Не доверяю я всем этим никсам. Раздражает все это жуткое дробление, каждый норовит придумать свою систему сборки, свой линукс, свой язык. Думает, что лучше других знает как надо программировать.
    А простве работяги от этого страдают, захламляют свои системы всяким барахлом, нужным для одного конкретного пакета.
    Думаю, что nih синдром пора классифицировать как реальное заболевание и принудительно лечить на рабочих местах(и организовать патрули в местах проживания/скопления программистов)
     
     
  • 2.47, аноним1277zx (?), 18:01, 25/06/2025 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Вам лишь бы зарегулировать и патрулей наставить, ей богу.
     
  • 2.53, Аноним (61), 21:14, 25/06/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Типичный вахтёр - сам ничего не делает, а другим запрещает. Осуждаю.
     

  • 1.76, Анатолька (?), 11:02, 26/06/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Я вот Эльбрус ОС пользуюсь - там залатали все что можно, а часть ядра просто переписали
     
     
  • 2.113, Аноним (-), 00:49, 27/06/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Завидую. А я даже купить не имею возможности чтоб глянуть
     

  • 1.78, Аноним (75), 11:07, 26/06/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Тот случай, когда о существования сабжа узнал из новости про его уязвимость я п... большой текст свёрнут, показать
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2025 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру