LINUX.ORG.RU

Пакетный менеджер Nix в минималистичных системах

 ,


0

2

Допустим, есть какая-то минималистичная установка Linux: ядро, базовые утилиты, видеодрова и иксы (без DE). Если на такую установку установить Nix в качестве пакетного менеджера и установить в нем все остальное: DE, прикладные и офисные программы, плееры, браузеры, Steam - короче, все что нужно для десктопа, будет ли все это работать на такой базовой системе?
А главным образом меня интересует, потянет ли Nix во время установки DE свою собственную версию иксов и видеодров или использует то, что уже есть в базовой системе? Потому что мне критически важно подсунуть для DE именно то, что уже предустановлено в базовой системе, а не отдельные версии из пакетного менеджера.

★★★★★

Это вообще не никсовый подход.

потянет ли Nix во время установки DE свою собственную версию иксов и видеодров

Конечно потянет, reproducibility же.

Если хочешь минимальную систему с Nix, смотри в сторону https://github.com/cleverca22/not-os или https://github.com/telent/nixwrt

balsoft ★★
()

NixOS это разве не минималистичная система в которую поставили nix?

PolarFox ★★★★★
()

Если на такую установку установить Nix в качестве пакетного менеджера и установить в нем все остальное: DE, прикладные и офисные программы, плееры, браузеры, Steam - короче, все что нужно для десктопа, будет ли все это работать на такой базовой системе?

Только если ты сам все конфиги напишешь.

Tsukasa
()

Нет. Nix в других системах не лезет в /etc, поэтому тебе придётся самому это разруливать. Если хочешь, чтобы Nix всё делал за тебя, ставь NixOS.

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

А если поставить NixOS, в течение какого срока там поддерживаются каналы? Я видел список каналов, там самый старый и не битый - 15.09. Там в самом деле можно ставить софт 7-летней давности, и он будет корректно ставиться и работать?

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

Объясню. У меня на работе старая видеокарта, срок поддержки которой заканчивается в 2024 году. Денег на новую не дают. Я уже несколько месяцев думаю, как выкрутиться и не сидеть в конце концов на старом дистрибутиве, лишенном поддержки. Придумал сформировать через buildroot или yocto или вообще через LFS минимальный дистрибутив с нужными дровами, иксами и всего самого необходимого минимума, чтобы иметь возможность только его загрузить. А уже потом поставить на него пакетный менеджер Nix и наращивать через него всем необходимым до десктопа.
Но во-первых, тут говорят, что Nix будет тащить свой собственный видеостек, во-вторых, я сегодня ночью почитал документацию по этому пакетному менеджеру, узнал про существование каналов, которые на первый взгляд поддерживаются 7-8 лет и понял, что может быть дело обойдется без формирования минимального дистрибутива. Тогда бы я сидел 7-8 лет на одном канале, имел с него базовые пакеты, включая видеодрова и иксы, а из unstable ставил бы все остальное, весь современный софт. Вот теперь хочется узнать, насколько приживется эта моя модифицированная идея и насколько вообще поддерживаются эти старые каналы. Вдруг там вообще нельзя ничего собрать 8 лет спустя. Завтра разверну NixOS в виртуалке с какого-нибудь старого канала и протестирую. Но также хотелось бы узнать у знающих людей, что вы по поводу этого всего думаете.

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

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

Что значит «поддерживаются»? Каналы – это просто обновляющаяся ссылка на коммит в nixpkgs. Ты можешь на самом деле взять любой и его собирать.

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

Там в самом деле можно ставить софт 7-летней давности, и он будет корректно ставиться и работать?

Ты это можешь делать и в свежей nixos. Т.е. ты вполне можешь ставить софт из разных «каналов» или из разных срезов nixpkgs, если тебе этого очень хочется.

Правда, я не очень понимаю зачем.

У меня на работе старая видеокарта, срок поддержки которой заканчивается в 2024 году. Денег на новую не дают.

Ах… в этом случае, ты вполне можешь сидеть на свежей nixos, плюс ставить драйвер. Вполне будет работать. Возможно, тебе придётся старое ядро держать.

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

есть мнение, что до 2024го года ты еще работу успеешь поменять, зачем сейчас троллейбус городить :3

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

Ах… в этом случае, ты вполне можешь сидеть на свежей nixos, плюс ставить драйвер. Вполне будет работать. Возможно, тебе придётся старое ядро держать.

Скорее всего придется сидеть на старом канале, иметь базу именно на нем, а весь новый софт ставить из unstable. Потому что я не нашел, как в configuration.nix устанавливать софт из конкретного канала, а не из дефолтного. И как из определенного канала рулить настройкой desktopManager.cinnamon.enable = true; я тоже не нашел. Так что придется иметь дефолтным каналом тот канал, который будет до 2024 года, и сидеть на нем до скончания века, а все остальное ставить из unstable.

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

Потому что у меня характер такой. Как только намечается какая-то проблема, я не могу успокоиться и ищу возможности ее решения. А если не получается, то у меня очень портится настроение. Вот я и хочу ее разрулить, хоть какая-то надежда на позитив будет.

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

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

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

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

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

Потому что я не нашел, как в configuration.nix устанавливать софт из конкретного канала, а не из дефолтного.

Тебе нужно сделать import нужного коммита из nixpkgs и тащить софт оттуда. Короче, у тебя в configuration.nix будет pkgs и oldpkgs. Другой вопрос, что нахер так делать, если можно просто свой пакет с nvidia нужной версии захерачить. Ты тут реально какую-то левую шнягу пытаешься родить. Так не надо делать. Будь проще!

Есличо, старые каналы перестают обновлять практически сразу после выхода нового. Т.е. после релиза 21.11 старый 21.05 практически забросили.

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

Да и на дебиане так же можно продержаться. Тут проблема больше в том, что софт не будет обновляться, да и в моральном плане, что это последний дистрибутив для этого компа, очень давит. А в моей идее можно держаться сколь угодно долго, особенно если еще регулярно бэкапить корневой каталог в .tar.gz, осознавая, что если заново ставить с нуля на том же канале, то можно все и не поставить, ссылки протухнут... Ну в общем как-то так. Поставить базовую систему, до 2024 года вылизать ее так, чтобы ничего не требовалось, а с 2024 года уйти в полную заморозку, ставить только современный сторонний софт из unstable.

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

Другой вопрос, что нахер так делать, если можно просто свой пакет с nvidia нужной версии захерачить.

А нужную версию иксов, которая работает в связке с этой версией драйверов, не надо выбирать? И может быть, соответствующую версию ядра?

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

А нужную версию иксов, которая работает в связке с этой версией драйверов, не надо выбирать? И может быть, соответствующую версию ядра?

Иксы достаточно редко релизятся, поэтому про них можно наверное не париться. Старую версию ядра не проблема держать. В текущих unstable nixpkgs самое старое ядро – 4.4.

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

Моя проблема - это наложение пандемии на кризис на рынке микрочипов, а также на кризис на рынке видеокарт, который возник из-за того, что майнеров надо приравнять к террористам и поступать с ними соответственно, а также из-за жадных производителей, которым все это только на руку и они отнюдь не спешат наращивать производство, чтобы хоть немного опустить цены. 😡 Но я не хочу ждать, когда это в мире все решат (а может быть и не решат), я хочу для себя локально решить возникшую проблему. Причем решить до наступления часа X, чтобы спокойно работать, не дергаясь, и быть счастливым.

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

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

Лол.. майнеры не то чтобы виноваты в том, что твоя компания зажмотила тебе железо.

они отнюдь не спешат наращивать производство, чтобы хоть немного опустить цены.

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

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

Ну, я тебе рассказал как это сделать: поставь NixOS. Когда наступит час X, просто скопируешь последнюю подходящую тебе версию драйвера в отдельный пакет, переименуешь и пропишешь в конфиге. Всё.

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

Ну, я тебе рассказал как это сделать: поставь NixOS. Когда наступит час X, просто скопируешь последнюю подходящую тебе версию драйвера в отдельный пакет, переименуешь и пропишешь в конфиге. Всё.

Спасибо. Так я наверное и поступлю.

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

Тут проблема больше в том, что софт не будет обновляться

Года 3-4 будет обновляться практически всё. А дальше на current переползти можно будет, при желании (мне и на 14.2 жилось не плохо).

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

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

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

Попробую. Осталось только понять, как делать свои собственные пакеты и как его прописать в конфиге

Находишь в nixpkgs папку pkgs/os-specific/linux/nvidia-x11. Копируешь её куда-нибудь. В конфиге пишешь:

  hardware.nvidia = {
    modesetting.enable = true;
    package = 
      let nvidiaPackages = pkgs.callPackage ./path/to/nvidia-x11-copy {};
      in nvidiaPackages.stable;
  };

Возможно, придётся чуток пошаманить с параметрами, тут я написал пустой список {}.

чтобы он случайно не затерся пакетом из репозитория при обновлении.

В NixOS нет «репозитория». Твой конфиг – это, по сути, программа, собирающая систему. Nix всегда соберёт ровно ту систему, которая описана в твоём конфиге, и никакую другую. Если ты захардкодишь хэш коммита из nixpkgs, то у тебя всегда будет собираться одно и то же. На любом компьютере.

Короче, почитай мануалы. Там подробно на эту тему написано.

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

Я иногда жалею, что на ЛОРе нет лайков. Спасибо еще раз!

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

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

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

старая видеокарта, срок поддержки которой заканчивается в 2024 году.

в 2024 выйдет Ubuntu 24.04 LTS.
поставишь её в минимальном режиме, а остальной софт из snap.

а можешь перейти на фряху, в 2024.

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