В чем разница между `~/.guix-profile` и `~/.config/guix/current`

Это не работа дляsed(вы не должны полагаться на последовательные повторяющиеся записи ). Используйтеawk:

  1. Установите разделитель записей на регулярное выражение ^-+$.

  2. Используйте ассоциативный массив, где индекс представляет собой конкатенацию HostName и ServiceName. Для любой прочитанной записи поместите запись в массив, только если она еще не существует.

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

1
09.01.2020, 01:46
1 ответ

Эти профили являются значениями по умолчанию

Единственное, что отличает эти два профиля от «обычных» профилей GUIX, заключается в том, что они являются опциями по умолчанию для соответствующих команд GUIX (см. здесь , чтобы узнать, чем они отличаются):

  • ~/.guix-profileявляется параметром по умолчанию параметра guix package-p|--profile=
  • .
  • ~/.config/guix/currentявляется параметром по умолчанию параметра guix pull-p|--profile=
  • .

Они генерируются при первом вызове соответствующих сопутствующих команд, если они не существовали ранее.

Но вы можете полностью обойтись без этих двух профилей, если хотите, и постоянно использовать пользовательские -профили (см. ниже)

Они различаются по своим задачам. :Предоставление самой guixверсии по сравнению с предоставлением других программ, управляемыхguix

  • Профиль ~/.config/guix/currentсодержит двоичные файлы guixи guix-daemon. В конфигурации по умолчанию этот профиль определяет самую последнюю версию всех пакетов, которые вы можете установить, от -до -. Список пакетов, которые вы можете установить, привязан к версии guix, в отличие от Nix. Этот пост в блоге объясняет почему.

    • Что касается пользователя root, двоичный файл, предоставленный (целью символической ссылки )/root/.config/guix/current/bin/guix-daemon, является демоном GUIX, который автоматически запускается системой. Он также имеет символическую ссылку в /usr/local/bin.
  • Профиль ~/.guix-profileсодержит любой пакет, который вы хотите, чтобы он содержал. Многие пользователи включают его в свои файлы запуска оболочки, поэтому они часто -использовали программы, которые не относятся ни к какому другому профилю задачи -, доступному автоматически.

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

Какие профили важны для вас, определяется только вашим.profile(или .bash_profileили любым другим файлом инициализации оболочки, который вы используете)

Если ничего не указать,вы не будете использовать пакеты из guixи версию самого guix, которую использует root, потому что скрипт установщика оболочки GUIX создает символическую ссылку/usr/local/bin/guix -> /var/guix/profiles/per-user/root/guix

Если вы включите в свой.profile(или аналогичный)1

GUIX_PROFILE=$HOME/.config/guix/current; 
source "$GUIX_PROFILE/etc/profile"

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

Если включить

GUIX_PROFILE="$HOME/.guix-profile";
source "$GUIX_PROFILE/etc/profile"

вы загружаете профиль, который вы можете определить/изменить без использования параметра -pв guix package. Конечно, вы также можете загрузить любой другой профиль здесь, вам просто нужно использовать параметр -p, если вы хотите его изменить. Многие люди используют этот профиль для включения команд, которые им часто нужны, но которые не назначены для какой-либо конкретной задачи -рабочего процесса.


1 Если вам интересно, зачем вам нужно определять переменную перед поиском, прочтите исходный сценарий. Тогда в $PATHбудет добавлена ​​ссылка на профиль, а не сама папка профиля. Это означает, что вы автоматически получите обновленную версию пакета, если вызовете guix package -uбез повторной загрузки профиля.

6
27.01.2020, 23:40

Теги

Похожие вопросы