LINUX.ORG.RU
ФорумTalks

Snap vs nix

 ,


0

2

Вопрос нейросети: Преимущества Nix перед Snap.

Ответ:

Функциональное управление пакетами:

  • Воспроизводимость:
  • Поддержка нескольких версий:
  • Декларативные конфигурации: Nix позволяет вам декларативно определять конфигурацию вашей системы. Вы можете указать всю свою операционную систему или среду разработки в одном выражении Nix, что упрощает управление и обновления.
  • Атомарные обновления и откаты:
  • Нет необходимости в привилегиях root: Пользователи могут устанавливать и управлять пакетами в своих домашних каталогах без необходимости привилегий root. Это делает его хорошим выбором для общих сред или для пользователей, у которых нет административного доступа.
  • Расширенная настройка: Nix позволяет расширенную настройку пакетов во время установки с помощью своего языка выражений. Вы можете легко изменять зависимости, флаги компиляции и другие конфигурации в соответствии с вашими конкретными потребностями.
  • Интеграция с NixOS:
  • Улучшенное управление зависимостями: Это предотвращает «ад зависимостей», который может возникнуть в других системах, и гарантирует, что все зависимости будут удовлетворены без конфликтов.
  • Изолированные среды сборки:

В чём проблема? А проблема в том, что это всё враньё от начала и до конца. Да, nix это умеет, но и snap умеет буквально всё то же самое. Ну кроме интеграции с NixOS. И «нет необходимости в привилегиях root» - что, вообще-то, дыра.

Ещё часто snap ругают за жирноту. Ну, вот я в качестве теста пересел на NixOs и знаете что? Потребление ОЗУ по сравнению со snap+pacman-based ОС одинаковое. Вообще разницы никакой.

Так всё-таки, какие преимущества snap перед nix?

★★★★★

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

Ответ:

Тебе пердолиться или делом заниматься? Убунта – самый распространенный дистр. Сейчас все делают под нее. Если НУЖНОЕ есть в репах – ставишь из реп. Если нужного нет в репах, но есть в снап – ставишь оттуда. Если нет – флэтпак. Если нет – соображаешь еще что-нибудь. Прекратите уже ОС/дистр считать чем-то важным, это просто инструмент.

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

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

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

И суть в том, что nix отлично и под убунту работает. Так что и тут паритет.

Есс-но, я не буду пинать нашего девопса на сборку обоих типов пакетов, а следовательно, приходится выбирать.

P.s. сборка apt у нас уже есть

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

Я рассматриваю варианты для альтернативного формата пакетов для своей проприетарщины.

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

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

м.б., но на этом форуме немало его фанатов и в тоже время куча хейтеров snap, при этом фанатов snap раз-два и обчёлся

при всём при том вменяемого обоснования, чем плох snap я ещё не встречал

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

вопрос

в котором содержится определенное утверждение, вот машина и запуталась - потому что никакого интелекта у нее нет… вот смотри как на этот вопрос реагирует интелект - и одно и второе классическое нинужно.

amd_amd ★★★★★
()

Snap это средство распространения конечного ПО, Nix это менеджер пакетов и система сборки.

Это как спрашивать «в чём преимущества Firefox перед LibreOffice».

Gary ★★★★★
()

нейросети
это всё враньё от начала и до конца

https://pikabu.ru/story/govoril_li_mark_tven_budte_ostorozhnyi_pri_chtenii_knig_o_zdorove_vyi_mozhete_umeret_ot_opechatki_10130710

«Покойный доктор Герц сказал пациенту, привыкшему лечить себя с помощью медицинских справочников: «Будьте осторожны, однажды вы умрёте от опечатки!»».

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

Nix это менеджер пакетов и система сборки.

система сборки - это смейк, мавен и т.п., а не никс

и уж точно никс не больший менеджер пакетов, чем какой-нибудь апт

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

А сейчас стало так: придёшь справшивать на ЛОР, а тебя заклюют, почему не спросил у нейросети, причём на вопрос, на который нейросеть заведомо не может знать ответа.

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

система сборки - это смейк, мавен и т.п., а не никс

Почему CMake это система сборки, а Nix - нет?

и уж точно никс не больший менеджер пакетов, чем какой-нибудь апт

Тоже какое-то странное утверждение :) Обоснуй

Gary ★★★★★
()

Да когда ж вы начнёте думать и перестанете играться с этими нейросетями? Мне вот Chatgpt сказал что черный хлеб вкуснее чем белый. А мне почему-то с чаем белый идёт лучше, а черный лучше идёт с борщем. Но ИИ этого не понять.

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

система сборки - это смейк, мавен и т.п., а не никс

nix - это как раз таки система сборки, так-то nix - сорс бэйзед

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

Почему CMake это система сборки, а Nix - нет?

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

Тоже какое-то странное утверждение :) Обоснуй

Менеджер пакетов - это какой-то размытый термин. Не очень понятно, почему snap, по-вашему, менеджером пакетов не является, а никс - является?

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

только он плюсовый проект без СМаке не соберёт и никакой проект не соберёт без вызова соотв. системы сборки

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

только он плюсовый проект без СМаке не соберёт

А если плюсовый проект не использует cmake? Ну например cmake соберёт проект на мезоне или ninja?

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

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

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

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

cmake может вызвать мезон для сборки проекта

nix делает абсолютно тоже самое, а можно и накидать правил сборки вместо cmake/make/meson и т.д.

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

Это полноценный функциональный ЯП для сборки - что напишешь то и сгенерит.

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

а результатом работы системы сборки пакетов nix - пакет строго определённого формата

Нет. Результатом работы сборки nix может быть что угодно, даже текстовый файл - так например настраивается NixOS, файлы конфигурации там «собираются» nix’ом.

Не очень понятно, почему snap, по-вашему, менеджером пакетов не является, а никс - является?

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

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

CMake тоже предназначен в первую очередь для вызова сторонних систем сборки, в первую очередь GNU make и ninja.

Gary ★★★★★
()

Вопрос нейросети: Преимущества Nix перед Snap.

Ответ:

Ух ты, тебе нейросеть вопросы задает! У большинства наоборот получается.

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

Ух ты, тебе нейросеть вопросы задает!

А как ты думал, так они и работают эти нейросети - они не знают ответов на вопросы, они их переадресуют на тематических форумах под видом сисястых блондинок :D

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

тебя заклюют, почему не спросил у нейросети

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

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

Результатом работы сборки nix может быть что угодно, даже текстовый файл.

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

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

Неа, не угадал. Cmake предназначен для генерации make/ninja, а уж потом их вызова.

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

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

Можете ли вы продемонстрировать аналогичный пример на nix?

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

Через снап тоже можно отдельные библиотеки доставлять и так делают.

Примеры? Я вот собираю проект, который зависит от zlib. Я могу zlib получить через apt, zypper, yum, nix, etc. Как это сделать через snap?

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

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

🤦 Тогда получается make - не система сборки. Ведь результатом работы make тоже может быть что угодно, и там нет поддержки конкретных языков (хотя обычно такие вещи называют language-agnostic).

Ты сейчас придумываешь какие-то критерии в которых сам путаешься, мне если честно надоело уже спорить так :)

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

Вы просили пример библиотеки в snap - я привёл. Возражений, как понимаю, нет?

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

Я так понимаю, пример конфиг файла на никс, собирающего ПО и при этом короче, чем аналогичный make вы не приведёте? ЧТД.

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

Надо как-то сохранить ваш пост в избранное.

next_time ★★★★★
() автор топика

snap с телеметрией и потрохами бубунты. flatpak лучще для не-дебианов

rtxtxtrx ★★
()

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

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

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

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

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

Никс, гикс это вообще какая-то шиза для нетакусиков, ужас.

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

решает проблему

нет не рашает - создает, по этому лучше отказаться от снапа совсем

не имеет очевидных недостатков

сплошняе недостатки, навязаня услуга - поставляется во всяких недоподелиях потипу убунты

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

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

tiinn ★★★★★
()

Так всё-таки, какие преимущества snap перед nix?

Какие преимущества члена перед пальцем?

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

Я рассматриваю варианты для альтернативного формата пакетов для своей проприетарщины.

Ну надо, наверное, собрать то, что клиенты просят.

akho
()

А давайте заведём отдельный тэг для нейрогопоты, чтоб его можно было в игнор поставить.

ugoday ★★★★★
()

Это тебе 4o-mini нашептал? Ну, для сравнения, приведу китайца

Qwen2.5-Max

Nix и Snap — это два разных подхода к управлению пакетами и программным обеспечением в Linux-системах, но они имеют разные цели, архитектуры и преимущества. Рассмотрим основные преимущества Nix перед Snap:

1. Детерминированность сборки

  • Nix: Одной из ключевых особенностей Nix является детерминированность сборки. Каждый пакет собирается в строго определенной среде с фиксированными зависимостями, что гарантирует воспроизводимость результатов. Это означает, что один и тот же пакет всегда будет собран одинаково на любой машине.
  • Snap: Snap также предоставляет изоляцию пакетов, но не гарантирует такой же уровень детерминированности. Snap-пакеты могут быть обновлены разработчиком без полного контроля над процессом сборки.

2. Изолированные зависимости

  • Nix: В Nix каждая версия пакета имеет свои собственные зависимости, которые хранятся отдельно. Это позволяет иметь несколько версий одного и того же пакета на одной системе без конфликтов между ними.
  • Snap: Snap также предоставляет изолированные среды для приложений, но эти среды обычно более «тяжелые» (включают полную операционную систему) и занимают больше места на диске. Snap менее гибок в плане управления несколькими версиями одного и того же пакета.

3. Легковесность

  • Nix: Пакеты в Nix легковесны, так как используют общие библиотеки и ресурсы только тогда, когда это необходимо. Зависимости не дублируются, если они уже существуют в системе.
  • Snap: Snap-пакеты часто содержат все необходимые зависимости внутри контейнера, что делает их значительно тяжелее по размеру и потреблению ресурсов. Это может привести к большому использованию дискового пространства и оперативной памяти.

4. Гибкость в управлении окружениями

  • Nix: С помощью Nix можно создавать полностью воспроизводимые среды разработки или выполнения, где каждый компонент системы точно задан и может быть легко восстановлен. Это особенно полезно для разработчиков и DevOps-инженеров.
  • Snap: Snap предоставляет изоляцию, но не предлагает такого уровня гибкости в управлении целыми окружениями. Snap больше ориентирован на доставку готовых приложений, чем на управление сложными системами.

5. Роллбэк изменений

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

6. Модульность и декларативное управление

  • Nix: Nix использует декларативный подход к управлению системой. Вы можете описать желаемое состояние системы в конфигурационных файлах, и Nix автоматически применит эти изменения. Это особенно полезно для серверов и автоматизации.
  • Snap: Snap работает больше в императивном стиле: вы устанавливаете или обновляете пакеты по мере необходимости, но нет такого удобного способа описать целую систему в виде декларативного манифеста.

7. Безопасность

  • Nix: Благодаря строгой изоляции зависимостей и детерминированности сборки, Nix минимизирует риск конфликтов между пакетами и обеспечивает высокий уровень безопасности.
  • Snap: Snap также предлагает изоляцию, но из-за своей архитектуры он требует больше прав доступа к системе, что иногда вызывает вопросы безопасности. Кроме того, Snap-пакеты могут содержать больше кода, чем необходимо, что увеличивает поверхность атаки.

8. Открытость и контроль

  • Nix: Nix полностью открыт и прозрачен. Вы можете видеть исходный код всех пакетов, а также контролировать процесс сборки. Это особенно важно для организаций, которые хотят иметь полный контроль над своим программным обеспечением.
  • Snap: Snap-пакеты управляются Canonical (компанией, стоящей за Ubuntu), и хотя они тоже открыты, процесс создания и распространения snap-пакетов менее прозрачен и контролируется централизованно.

9. Производительность

  • Nix: Благодаря эффективному кэшированию и использованию общих зависимостей, Nix работает быстрее и занимает меньше ресурсов.
  • Snap: Snap-пакеты могут быть медленнее в запуске из-за необходимости монтирования файловой системы контейнера и загрузки всех зависимостей заново.

10. Кросс-платформенность

  • Nix: NixOS и Nix-пакеты могут работать на различных Unix-подобных системах, включая macOS и даже Windows через WSL. Это делает его универсальным инструментом для разработки и управления системами.
  • Snap: Snap в основном ориентирован на Linux и лучше всего работает на дистрибутивах, поддерживающих snapd (например, Ubuntu). Поддержка других платформ ограничена.

Итог:

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

egzakharovich
()
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)