LINUX.ORG.RU
решено ФорумAdmin

Попробовал поставить GuixSD

 , , ,


0

5

Здравствуйте, товарищи!

Давно хотел попробовать Guix(SD) с последующим переходом на него, как на основную систему, и вот на выходных решился. Прое...лся три дня и теперь в недоумении, как оно всё работает?

Установилось в общем просто и понятно, но дальше начались какие-то непонятные мне вещи.

Во-первых, я попытался поставить кастомное ядро с фирмваре для WiFi карты. Всего несколько строчек в конфиге, два новых пакета и в результате несколько часов раобты компьютера по установке зависимостей. В конце концов, ядро и фирмварь успешно собрались, но зависимости не доставились из-за ошибки в сборке пакета ImageMagic (зачем он там??) - просто архива с такой версией пакета не оказалось на серверах.

Во-вторых, и это самое главное и непонятное, почему в системе по несколько пакетов одинаковой версии, но с разными хэшами? Из-за этого я уже пол часа ставлю graphviz - сейчас собирается тринадцатый пакет из зависимостей. Это llvm-6.0.1, которых в /gnu/store уже 4 штуки (ставится пятый). До этого поставился четвертый cups-2.2.6, а cups-2.2.8 уже 8 штук.

Это вообще правильное поведение и я просто ничего не понимаю, или нужно что-то сделать, чтобы оно работало нормально?

И в NixOS так-же, или более человеколюбиво?

★★★★★

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

NixOS можно пользоваться.

GuixSD пользоваться невозможно.

Поподробнее пожалуйста, у меня опыт с guixsd очень маленький. Чем там невозможно пользоваться по сравнению с nixos?

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

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

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

Чем не зашёл lfs?

Как может зайти дистр (хотя, это даже не дистр) без пакетного менеджера? Не знаю, как сейчас, но в версии 4 или 5 (точно не помню) его не было, а был installwatch, по-моему, на котором я делал пакетный менеджер с xslt и шлюхами. Пару лет помучился и поставил redhat.

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

Я понимаю достаточно, чтобы утверждать, что ты несешь ересь. Если ты делаешь это не троллинга ради и действительно потратил перед этим время на написание замены NixOS/nixpkgs на Nix expression language - это прискорбно.

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

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

4.2, в NixOS от конфига ядра ничего не зависит.

$ nix-store -qR /nix/store/9y2f87qb1djmpjs1gxl6smfkpl581waa-gcc-wrapper-7.3.0/bin/gcc
/nix/store/hwwqshlmazzjzj7yhrkyjydxamvvkfd3-glibc-2.26-131
/nix/store/0a40bzy2f4s3bpsavr14zza20xdsjfiv-glibc-2.26-131-bin
/nix/store/12zhmzzhrwszdc8q3fwgifpwjkwi3mzc-gcc-7.3.0-lib
/nix/store/39p928dvnwk1q498rm71qrfcwmhh4dfx-expand-response-params
/nix/store/95yylk9akpg65r32a1sq9qhia4bxzzz2-attr-2.4.47
/nix/store/6k794ln3ila2457d9k9fgyyyq7px8aci-acl-2.2.52
/nix/store/8c30dl4mmgm4rip1l08fvad9gca5sk2j-zlib-1.2.11
/nix/store/f0wls8l1fr06ika9z1w0yfx5qp2g9lib-linux-headers-4.15
/nix/store/8hagj3k5q9vkyxnrl8431r4kpn4gf46l-glibc-2.26-131-dev
/nix/store/920k63py2w97xpfyb5ps9l6wbidvzfjz-coreutils-8.29
/nix/store/czxcii58v6d3yhrq9r667zw91192rcgk-gcc-7.3.0
/nix/store/hcj1lgiip53dc2xpcj95655kpmx9wry7-pcre-8.41
/nix/store/iywd02hbirf506q740z0v6zyrvsa9gcf-gnugrep-3.1
/nix/store/lw7xaqhakk0i1c631m3cvac3x4lc5gr5-bash-4.4-p12
/nix/store/k8b9hqv58dd1z0j4ikak24ykndcm91s6-binutils-2.28.1
/nix/store/qq3xv9kwi52yvgdf13jh2swavbhw3lpd-binutils-wrapper-2.28.1
/nix/store/9y2f87qb1djmpjs1gxl6smfkpl581waa-gcc-wrapper-7.3.0
$ nix-store -qR /nix/store/s5f10r240mykcrbw353wbvxg1hrsfv89-linux-4.14.95/bzImage
/nix/store/s5f10r240mykcrbw353wbvxg1hrsfv89-linux-4.14.95
$ nix-store -q --referrers-closure /nix/store/s5f10r240mykcrbw353wbvxg1hrsfv89-linux-4.14.95
/nix/store/s5f10r240mykcrbw353wbvxg1hrsfv89-linux-4.14.95
/nix/store/csxykgf0rwfhmq8bzi6ymcmsm7xkqmj8-kernel-modules
/nix/store/42pga0wz4qjpn8kf3knag0x4xqbqb5lv-nixos-system-nixos-18.09.1985.749a3a0d00b
/nix/store/iqij64pycxpif7l6xy92y062plzxk0kn-nixos-system-nixos-18.09.1985.749a3a0d00b
/nix/store/krbb6x8b1lf93av2d0h3q0qjnb1vvdfl-nixos-system-nixos-18.09.1985.749a3a0d00b
/nix/store/kzcc58dpvkinz4jb29rpc1mk5hbn6b7f-nixos-system-nixos-18.09.1985.749a3a0d00b
/nix/store/wiyhhgwf8khiqbc91bn7l9sh7k8nqdww-nixos-system-nixos-18.09.1985.749a3a0d00b

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

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

Кастомизировать можешь только листовые или близкие к листам пакеты, конечные приложения, от которых ничего не зависит. (Лист, глубина - все в смысле дерева зависимостей). Чем более глубокий пакет изменишь, то большее поддерево пакетов будет пересобрано исключительно только под тебя. Сам понимаешь в какие ресурсы для этого нужны, если знаком с source-based дистром.

Здесь ты прав - если по-своему собрать какую-нибудь glibc, от которой действительно зависит практически всё, то для того, чтобы твой экземпляр использовался всем, что использует glibc, придется пересобрать всё. Но, знаешь ли, я насмотрелся на проблемы в генте, когда после пересборки библиотек новым gcc ранее собранные программы начинали сегфолтиться.

К тому же, в NixOS есть решения для замены зависимостей без пересборки всех зависящих пакетов, см. https://github.com/NixOS/nixpkgs/blob/master/pkgs/build-support/replace-depen...

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

Я почти сделал вывод зависимостей вида «gcc >5.0 <6.0». Каждая обновление (сборка мира) по новой строило полный граф сборки, разрешая такие зависисмости, нещадно шурша по всем директориям, которая по структуре повторяла портаж.

Добро пожаловать в NP-полный ад зависимостей.

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

В общем, к сожалению, ночная пересборка мира провалилась с ошибкой sha256 hash mismatch. Думаю дальше продолжать не стоит... Но, как известно, русские не сдаются, по этому попробую установить заново с нуля. Может получится? :)

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

Не, я не про сменяемость cc, а про удаление buildInput на машинах, на которых он (больше) не нужен.

И ещё, когда фантазировал о nixos/guixsd, я надеялся, что «ебилды» будут отделены от указания конкретных версий зависимостей. Т.е. представлял, что в nixpkgs в nix файлах будут только инструкции по сборке и, возможно, версии/хэши зависимостей по умолчанию, которые можно было бы извне переопределить. А оно получается не так, и что бы поставить софтину со своими зависимостями, что бы та не ломалась при апгрейде, мне нужно скопипастить из истории nixpkgs нужные .nix, сделав свой канал - верно?

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

Например:

/nix/store/95yylk9akpg65r32a1sq9qhia4bxzzz2-attr-2.4.47
/nix/store/6k794ln3ila2457d9k9fgyyyq7px8aci-acl-2.2.52

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

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

В общем так и есть. На самом деле, можно в софтине указать запиненый nixpkgs, и тогда ломаться ничего не будет.

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

К тому же, в NixOS есть решения для замены зависимостей без пересборки всех зависящих пакетов

Если ты - «понимающий достаточно», который «достоевского не читал, но осуждаешь», ты должен понимать, что это очень грязный хак, ломающий всю идею nix(-store). Но ты «не понимаешь».

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

Из исходников собирался только вайн.

А зачем?

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

Мне надоело общаться с фанатиками, которые не понимают свою религию и тупо цитирющих свою священную книгу. Успехов, в вашей «священной войне».

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

Т.е. запинить весь список пакетов целиком? Меня больше интересует, что бы я мог сказать: а вот эту программу даже не пытайся обновлять (и все её текущие зависимости)..

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

Так удали svn, я удалил год назад и не имею проблем. Да и ставил ради какого-то ретроградского приложения. Весь софт из исходников.

Они теперь зачем-то стрёммный уязвимый веб-браузер тащат в зависимостях — это втф вообще?

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

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

balsoft ★★
()

Что-то почитал я вас, и понял что многие люди поехавшие. Как этот кошмар можно сравнивать с божественной чистоты гентой? Хотя конечно возникают ситуации когда ради 1 приложения раз в 10 лет приходится заводить отдельный префикс или (что проще) чрут.

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

В песочнице? Чужие/потерявшиеся файлы не затираются даже, про удаление впервые слышу.

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

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

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

Смерть гентушникам! Смерть кедерастам! Дави нахрен никсотсосы и просие гуиксы-хуюиксы!

Мне надоело общаться с фанатиками, которые не понимают свою религию и тупо цитирющих свою священную книгу. Успехов, в вашей «священной войне».

Вы два разных анонима или у тебя шиза?

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

У тебя какой-то нездоровый максимализм.
Хэшчейн - это средство

Ты, элитная вебмакака, скорее всего, неосилиший написать ни одной сточки на nix-lang. Не имеешь понятия, что такое «максимализм», «средство» и тем более «хешчйен».
Но ты имеешь «шизоидную смелость» выдать такую «шизу»:

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

Применяй к себе свои «психиатрические» гипотезы.

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

Сэр, у вас бомбит. Приложите себе дискету с Linux 1.0 ко лбу, помолитесь на святого Столлмана, вспомните законы профункторной оптики и после этого продолжайте беседу.

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

Мой ответ соотвествует интеллектуальному уровню его сообщения. А на другом уровне с ним не имеет смысла общяться. Я разу заметил, что он использует «вумные» слова, не понимая их смысла. Выдать «части системы имеют репутацию». Что он курит, интересно.

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

Как этот кошмар можно сравнивать с божественной чистоты гентой?

Так и быть, покормлю.

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

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

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

Я прожил под гентой пять лет. Когда после очередного обновления у меня поломался тулчейн - я психанул и поменял ее местами с установленной в чрут NixOS.

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

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

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

Вы два разных анонима или у тебя шиза?

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

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

Нужно

1. amd threadripper

2. много места

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

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

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

Бомбезные киллерфичи, меняющие жизнь

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

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

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

Эк у тебя припекло-то.

Выдать «части системы имеют репутацию». Что он курит, интересно.

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

В то же время, к примеру, библиотеку DRI может оказаться невозможным подгрузить, если ее собрали с новой libc, а программу с libGL, которая пытается ее подгрузить - со старой, в которой dlopen не найдет versioned symbols, от которых библиотека зависит в результате сборки с новой.

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

Зачем ты рассказываешь свою гипотезу, воображаешь? Возьми и поменяй на свое кастомное ядро, со своим конфигом. Если ты не сказочник-гентушник, то с этим проблем у тебя не должно быть. Раньше, когда я игрался c nixos, когда ставишь кастомное ядро случалась так называемая «полная пересборка». Возможно, сейчас там хак на хаке хаком погоняет, потому что у них там нездоровая боязнь этой «полной пересбоки».

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

Ну кончено же, в правильной системе пакетов, коим является современный священный nixpkgs, attr и acl не зависят от конфига ядра. Да что там, можно всю сетевую подсистему отключить с юникс-сокетами, но божественный системд соберется без нареканий.
Это я нафантазировал. Проверяйте мою гипотезу. Мне тоже можно так делать.
И да сильная привязка к системд - это тоже одна из причин бежать оттуда.

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

attr и acl зависять от (конфига) ядра? Не говорю про coreutils. Должны зависеть? По ответу на этот вопрос можно говорить, что такое nixpkgs и кто такие его пользователи.

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

Нет, не зависят. Пример: собираю ядро со своим конфигом (просто для примера, ибо меня дефолтный конфиг устраивает)

boot.kernelPackages = pkgs.linuxPackagesFor 
(pkgs.linux.override 
{
  extraConfig = "CONFIG_X86_DEBUG_FPU=n";
});
building the system configuration...
these derivations will be built:
  /nix/store/346pgkdxm582xwiyn16zarj3l842gkq8-linux-config-4.14.98.drv
  /nix/store/ysrswfn7pyh2p462lfbhlyvz00fj4dh6-installkernel.drv
  /nix/store/pysrp12p3m4fbjqhjm2jnlwv186blxgc-linux-4.14.98.drv
  /nix/store/8cylsvfmnk88cb6m5smykf5xk92inj4v-firmware.drv
  /nix/store/0s76r5f7a0k90w3aiahx36z0d03lqhkw-etc-nixos.conf.drv
  /nix/store/xm9lphzmkavsn781la6ygncbkcycr98x-virtualbox-modules-5.2.22-4.14.98.drv
  /nix/store/1n7bafqybmgg9cksgadlbabm1vpnp2fq-kernel-modules.drv
  /nix/store/8xis2d2rz96clvipgyz520d2s215n8il-initrd-fsinfo.drv
  /nix/store/b4jqd3gz6ifx5agm3zjr6x70lliasppq-mdadm.conf.drv
  /nix/store/frks6lnvpyphvgi3b5ahcd2ilfg73iwr-kernel-modules-shrunk.drv
  /nix/store/i22xj61947rarvpdcj9k8za606ylsj96-stage-1-init.sh.drv
  /nix/store/cyikbvyrz9lp6abxn0vi76bark55cv2m-initrd.drv
  /nix/store/f54kcs08cplqq8pss8gx30q4b64hk0n9-etc.drv
  /nix/store/f4x80sh866zx93vazk3pyqvvwicaqv72-nixos-system-ASUS-Laptop-19.03pre-git.drv

Есть претензии по лишним пакетам?

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

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

И опять же повторяю просьбу: залогиньтесь или хотя бы подписывайтесь, кто из вас кто.

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

Проблема с nix скорей в другом: если пропатчить что-то, от чего зависит пол-системы (например glibc), то пересоберутся эти самые пол-системы (меньше, чем 2815 derivations в моём случае. 2815 - это за все поколения системы). С одной стороны это плохо, а с другой - очень даже хорошо, ибо позволяет избежать рандомных сегфолтов из-за разных версий glibc.

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

Проблема с nix

Проблема nixPKGS в том, что они в борьбе с «полной пересборкой» ломают саму идею nix. Изза чего пакеты собираются не со всеми зависимостями, вводятся грязные хаки. Потом пошагово добавляют (нередко с использованием хаков) нужные зависисмости, плодя несколько версий-копий одно и того же пакета, у которых разные зависимости. Интересно, соберется ли современный nixos из исходников с нуля без бинарного кеша?

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

Интересно, соберется ли современный nixos из исходников с нуля без бинарного кеша?

Да, соберётся. Он собственно говоря с нуля и бутстрапится на гидре.

в борьбе с «полной пересборкой»

В борьбе с полной пересборкой одновременно применяют несколько коммитов (которые в PR с mass-rebuild) дабы минимизировать количество этих самых пересборок. Больше никаких особых хаков (по крайней мере в самом nixpkgs) нет. Если кто-то хочет недетерминированности в своём nix, он может это сделать (например, так делаются всякие overlays типа мозиловского).

вводятся грязные хаки

Например? Я не про определения костыль-функций в lib, а про их использование в pkgs.

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

Да, соберётся. Он собственно говоря с нуля и бутстрапится на гидре.

Не знаю, что такое гидра. Залез сюда: https://hydra.nixos.org/project/nixos Там 100% стоит только у каких-то small релизов.

в борьбе с «полной пересборкой»
вводятся грязные хаки

Например?

Я не хочу возвращаться к nixos ради того чтобы покопаться в грязи. А вот почему не 100% у релизов - это повод задуматься.

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

А вот почему не 100% у релизов - это повод задуматься.

Очевидно, часть nixpkgs не билдится (например, апстрим сломан, или вообще удалён). NixOS-small - это и есть почти голый nixos, без лишних пакетов из nixpkgs. Он собирается на 100%, причём бу.

Не знаю, что такое гидра

/thread

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