Делаем первые шаги к дому Guix

Делаем первые шаги к дому Guix

15 ноября 2022 г.

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

Отказ от ответственности: я не являюсь опытным пользователем Guix Home. Так что не принимайте мои слова как должное. Читайте руководства, задавайте вопросы.

До сих пор, чтобы установить программное обеспечение, скажем, Emacs, для моего пользователя, я мог просто: $ guix установить emacs

Или я мог бы написать манифест и использовать его для заполнения моего профиля пользователя по умолчанию (или пользовательского): $ guix package --manifest=$HOME/manifest.scm

Где manifest.scm содержит следующее:

(specifications->manifest (list "emacs"))

Затем конфигурацию для нового программного обеспечения пришлось редактировать отдельно.

Вот фиктивный ~/.config/emacs/init.el :

(setq initial-scratch-message nil)

Теперь давайте воспользуемся Guix Home, чтобы начать управлять всем !

Пустой дом

Guix Home запросит у вас две вещи: список пакетов и список домашних услуг. Таким образом, пустой файл конфигурации Guix Home (который ничего не устанавливает и не настраивает) будет выглядеть так:

(use-modules (gnu home))

(home-environment
 (packages (list))
 (services (list)))

Вы можете сохранить эти выражения в файле с именем home-configuration.scm. Итак, теперь вы можете вызвать Guix Home для создания домашней среды из этой пустой конфигурации:

$ guix home container home-configuration.scm

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

К сожалению, вам нужно оставить пустую оболочку.

$ exit

Установка программного обеспечения

Чтобы указать Guix Home добавить программный пакет в сгенерированную домашнюю среду, вы должны отредактировать home-configuration.scm и добавить его имя в список пакетов:

(use-modules
 (gnu home)
 (gnu packages emacs))

(home-environment
 (packages
  (list emacs)))

Теперь вы можете попробовать это.

$ guix home container home-configuration.scm

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

$ emacs -nw

Затем вы можете выйти из оболочки.

Установите конфигурацию программного обеспечения

С точки зрения Guix Home это пакеты или сервисы. Пришло время искать услуги. Особенно тот, который может справиться с процессом настройки Emacs. Проще говоря, служба, способная установить файл init.el в нужное место: home-xdg-configuration-files-service-type.

Измените home-configuration.scm следующим образом:

(use-modules
 (gnu home)
 (gnu home services)
 (gnu packages emacs)
 (gnu services)
 (guix gexp))

(home-environment
 (packages
  (list emacs))
 (services
  (list (service home-xdg-configuration-files-service-type
         `(("emacs/init.el" ,(local-file "init.el")))))))

Затем создайте файл init.el с вашей конфигурацией Emacs рядом с home-configuration.scm:

(setq initial-scratch-message nil)

Попробуйте с:

$ guix home container home-configuration.scm

Здесь вы можете увидеть файл init.el в ~/.config/emacs/init.el!

Поэтому Emacs в этой среде будет использовать этот файл конфигурации при запуске... Хорошо, может быть, не в контейнере, но, поверьте мне, он будет работать (осторожно, на этот раз это повлияет на вашу текущую среду) :< /p>

$ guix home reconfigure home-configuration.scm

Предупреждение : поскольку в home-configuration.scm нет конфигурации оболочки (пока), вам потребуется вручную настроить оболочку, чтобы она могла использовать созданную домашнюю среду. .

Большое спасибо за чтение этой статьи!

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

Не пропустите следующие!

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

:::информация Также опубликовано здесь.

:::


Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE