LINUX.ORG.RU
ФорумTalks

Перевод хорошей обзорной статьи о Гиксе (Guix) на Хабре

 , ,


0

2

Если кто пропустил:

Guix — самая продвинутая операционная система

Понравилось

Я любил Gentoo, но после перехода на Guix ограниченность Portage стала очевидной.

Перемещено jollheef из development


Что это хабрадерьмо делает в моём Development?

anonymous ()

Почему ты так редко заходишь к нам на ЛОР?

Deleted ()

Guix

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

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

Мне кажется, уж лучше тогда Gentoo. Да, её тоже другим не посоветуешь, но там хотя бы понятно, за что воевал: упоровшись, можно получить на выходе чистенькую систему с минимумом дерьмища...

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

Начал читать статью и чуть не заблевал ноутбук. Не надо так!

IPR ★★★★★ ()

Хвалебные статьи, где совсем не упоминаются недостатки, не нужны.

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

В теории всё так красиво, а на практике: Попробовал поставить GuixSD

На практике нужно просто брать NixOS

aiive ()

Лол, Nix’у кроме введения самопального языка предъявить-то нечего? Причем автор даже не читал главы в диссере, где это обосновывается?

Статья - шлак, Guix - для GNU’тых на всю голову, переходите лучше на Nix.

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

Лол, Nix’у кроме введения самопального языка предъявить-то нечего?

А этого мало?

Использую NixOS, и мне действительно не хватает полноценного ЯП, который позволил бы, например – с удобством генерировать значения по-умолчанию, без внешних костылей.

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

Что ты имеешь ввиду под «значениями по-умолчанию»?

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

Да, этого мало. «Придумывать ЯП плохо, потому что <список того, что не нравится лично автору> — фуфло» — не аргументация, а детсад. Открыл бы автор статьи тезис edolstra, прочитал и процитировал бы абзац, рассказывающий чего ему не хватило даже в Хаскеле — так сразу и сдулся бы, потому что не нашел бы ни как оспорить требования, ни подходящего по критериям языка.

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

Что ты имеешь ввиду под «значениями по-умолчанию»?

Значения по-умолчанию и имею ввиду. Что тут может быть не очевидно?

Например, я хотел бы иметь подобный список DNS серверов по-умолчанию:

(define default-dns-servers
  (sort '("8.8.8.8" "8.8.4.4" "1.1.1.1") by-latency))
Deleted ()
Ответ на: комментарий от Deleted

Эммм… Решается в nixos options ведь, причём решается довольно красиво.

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

А Nix’овый костыль чем не мил?

Ответ есть в твоем вопросе — костылями и не мил.

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

Недетерминизм мне в конфиг, ты сам-то понимаешь, чего хочешь?

t184256 ★★★★★ ()
Ответ на: комментарий от Deleted
{ pkgs, config, lib, ... }:
{
  options.myDnsServers = lib.mkOption
  {
     description = "My dns servers";
     type = lib.types.listOf lib.types.str;
     default = ["8.8.8.8" "8.8.4.4" "1.1.1.1"];
  };
  config = # Doesn't matter
}

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

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

Недетерминизм мне в конфиг, ты сам-то понимаешь, чего хочешь?

Конечно. В случае с значениями по-умолчанию это довольно удобно.

Еще один пример — генерация ключей для wireguard. Вместо default = null я хотел бы, чтобы генерировался ключевой файл и записывался в условный /var/keys/wireguard.

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

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

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

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

Вот в том и соль, в случае с NixOS я могу решить эти проблемы только с костылями.

GuixSD же позволяет при первой установке сгенерировать все нужные ключи, выбрать наиболее быстрый DNS и так далее. При желании в /var, при желании — в secrets.nix.

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

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

Так тебе только при первой установке? nixos-generate-config тебе в руки. Можешь расширить его, добавив всё, что нужно.

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

Так тебе только при первой установке?

Нет, не только. Также хочется видеть при обновлении конфигурации (например, расширяя пример выше — при добавлении сервиса wireguard на машину, где уже установлен NixOS).

nixos-generate-config тебе в руки. Можешь расширить его, добавив всё, что нужно.

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

На данный момент я просто генерирую local.nix сторонними средствами. Костыли, но что поделать.

Проблема в том, что я должен это делать руками, хотя никакой сложности делать это автоматизированно небольшой функцией (при наличии возможности, как в GuixSD), выставляющей default — нет.

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

Я понимаю твою идею, но в данном случае это паршивый пример. Латентность в сети меняется довольно регулярно, и не стоит завязывать на этом конфиг.

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

Я понимаю твою идею, но в данном случае это паршивый пример.

Я понимаю твою идею

Вот это самое главное в данном случае :)

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

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

NixOS-то причём?

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

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

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

Это даже хуже, чем твоё sort by-latency. Упорно пытаешься прищемить себе яйца дверью, да ещё обижаешься, что Nix в этом мешает.

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

Это даже хуже, чем твоё sort by-latency.

И чем это хуже?

Сдается, что ты совершенно не понимаешь о чем речь.

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

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

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

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

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

А для описанных тобою вещей в NixOS используются системные службы.

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

Более того — подобные генерации ключей wireguard задачи не должны решаться системными службами. Это задача конфигурации, а не чего-то в рантайме.

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

Стиль статьи ужасен, маркетинг из Бирюлево.

Зачем гуикс, если есть емакс?

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

Тебе в примере одну строчку дали, а ты сделал 10 неработающих.

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