LINUX.ORG.RU

Аргументы за нарушение FHS в Nix и Guix и еще пару вопросов

 , ,


0

5

Несколько вопросов уже просвещенным.

1. В чем противоречие концепции nix и FHS? Почему нельзя оставить хотя бы _похожую_ на FHS структуру так, как это принято в конкретном дистрибутиве - раз изначально эти менеджеры пакетов ориентированы в том числе и установку поверх. Какие потенциальные проблемы? Конфликт с уже установленными пакетами? Или концепция «накатываем дистр он ставит все как ему обычно нравится, а мы с помощью конфигурационного файла ожидаем увидеть точную копию nixos _поверх_ базового дистра без вмешательства в его базовую систему»? Плюсы и минусы такого подхода на ваш взгляд?

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

3. Как выбранная структура каталогов влияет на безопасность?

4. Почему принят именно такой формат /nix/store/<hash>-<name>-<version>, если было бы удобнее хотя бы с точки зрения автодополнения в шеле <name>-<version>-<hash>-<othermeta> и просто как-то более наглядно для глаза?

5. Что бы вы улучшили в текущей реализации nix и guix?

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

anonymous ()

Подразумевается, что пользователю, кроме хомяка, никуда заглядывать не надо, а все действия, а-ля кладем третьесторонние бинарки в /opt или /home на вашем собственном разумении, хорошо если вы сможете их пропатчить. Поэтому и такая невероятная структура. Для кого-то nix-подход и удобен, но я не вижу в нем смысла – ординарная система работает ничуть не хуже.

anonymous ()
  1. путь должен быть неизвестным и разным для разных дериваций

  2. потому что путь будет известен

  3. да особо никак

  4. читал где-то, но забыл

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

t184256 ★★★★★ ()
  1. Почему принят именно такой формат /nix/store/--, если было бы удобнее хотя бы с точки зрения автодополнения в шеле --- и просто как-то более наглядно для глаза?

По моему там было объяснение в духе - нам так парсить проще, а вы туда руки не суйте.

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

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

Скорее в духе "некрасиво же

/nix/store/password-store-sync.service-zsiw5qcmssffjbxssghzq242pp86grac
/nix/store/python3.8-pip-20.1.1-zxw61viw77r53pg9j4bsmc1lbj2x8mv8
/nix/store/unit-NetworkManager-wait-online.service-zsmfk0pjinmng188mwbm4fl78a98i2y6
/nix/store/vimplugin-vim-lastplace-2020-01-20-zvm6sry3rqk6nfhq5i8kbgg5l3z0gqr3

, то ли дело

/nix/store/zsiw5qcmssffjbxssghzq242pp86grac-password-store-sync.service
/nix/store/zsmfk0pjinmng188mwbm4fl78a98i2y6-unit-NetworkManager-wait-online.service
/nix/store/zvm6sry3rqk6nfhq5i8kbgg5l3z0gqr3-vimplugin-vim-lastplace-2020-01-20
/nix/store/zxw61viw77r53pg9j4bsmc1lbj2x8mv8-python3.8-pip-20.1.1
t184256 ★★★★★ ()
Ответ на: комментарий от t184256

путь должен быть неизвестным и разным для разных дериваций

Но это нифига не обоснование, а наоборот какое-то сомнительное утверждение, которое само ещё нужно обосновать.

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

Ну раз хочешь, я попробую. Очевидно, но тем не менее удается обосновать:

Если путь будет известным, то его может кто-то заюзать, создав таким образом невидимую для ПМ неявную зависимость. (Да, ОС из прошлого века живут и дышут этим средневековым смрадом так давно, что не видят проблемы.)

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

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

Не, зачем хеш и так понятно, я просто не понял к чему конкретно эта «разность» относится. Сейчас понял, что имелось ввиду.

Если путь будет известным, то его может кто-то заюзать

Защита от дурака, ясно.

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

Не от дурака, от квадратно-гнездового «давайте все свалим в / и будем молиться, что все зависимости прописали правильно». Это в 99% дистрах линукса такой осознанный design decision.

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

1. путь должен быть неизвестным и разным для разных дериваций
2. потому что путь будет известен

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

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

Какие преимущества дает такая структура?

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

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

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

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

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

Перестань мыслить действиями. В NixOS ты задаешь результат. Для конкретного пакета, шелла, пользовательского профиля или всей системы просишь X заменить на Y. Все перекомпилируется с X замененным на Y. Получаешь, что просил.

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