Вопрос или проблема
Я настраиваю NixOS 24.05 и использую эквивалентную версию Home Manager. Я пытаюсь переместить директорию для GNUPG в $HOME/.local/share/gnupg
, также известную как $XDG_DATA_HOME/gnupg
. Я знаю, что XDG_DATA_HOME
установлен правильно перед тем, как задать этот вопрос. Выполнение gpgconf --list-dirs
дает мне следующий вывод:
sysconfdir:/etc/gnupg
bindir:/nix/store/wfwk6kv1mp5v94dly55c3ql1rwsqrky0-gnupg-2.4.5/bin
libexecdir:/nix/store/wfwk6kv1mp5v94dly55c3ql1rwsqrky0-gnupg-2.4.5/libexec
libdir:/nix/store/wfwk6kv1mp5v94dly55c3ql1rwsqrky0-gnupg-2.4.5/lib/gnupg
datadir:/nix/store/wfwk6kv1mp5v94dly55c3ql1rwsqrky0-gnupg-2.4.5/share/gnupg
localedir:/nix/store/wfwk6kv1mp5v94dly55c3ql1rwsqrky0-gnupg-2.4.5/share/locale
socketdir:/run/user/1000/gnupg
dirmngr-socket:/run/user/1000/gnupg/S.dirmngr
keyboxd-socket:/run/user/1000/gnupg/S.keyboxd
agent-ssh-socket:/run/user/1000/gnupg/S.gpg-agent.ssh
agent-extra-socket:/run/user/1000/gnupg/S.gpg-agent.extra
agent-browser-socket:/run/user/1000/gnupg/S.gpg-agent.browser
agent-socket:/run/user/1000/gnupg/S.gpg-agent
homedir:/home/hanna/.gnupg
При установке переменной окружения GNUPGHOME
или использовании опции programs.gpg.homedir
в Home Manager ни одно из этих действий не изменило установку homedir
в gpgconf
, и поэтому директория всегда создается по этому пути.
Похоже, что он не уважает любые настройки, которые я устанавливаю для изменения этого, и я надеюсь, что кто-то сможет помочь с этим.
Я не знаю, разобрались ли вы с этим или нет, но различные xdg
директории можно декларативно определить в home-manager
, включив xdg
. Пример конфигурации может выглядеть так:
{ config, lib, pkgs, ... }:
{
xdg = {
enable = true;
cacheHome = "${config.home.homeDirectory}/.cache";
configHome = "${config.home.homeDirectory}/.config";
dataHome = "${config.home.homeDirectory}/.local/share";
stateHome = "${config.home.homeDirectory}/.local/state";
userDirs = {
enable = true;
createDirectories = true;
};
};
home.packages = with pkgs; [
xdg-utils
xdg-user-dirs
];
}
Затем вы можете установить programs.gpg.homedir
в желаемую директорию XDG. Например:
...
programs.gpg = {
enable = true;
homedir = "${config.xdg.dataHome}/gnupg";
};
...
Не забудьте либо выполнить сборку при загрузке (и перезагрузиться), либо сборку переключения; в последнем случае вам нужно будет выйти из сессии и войти обратно, чтобы изменения вступили в силу.
Ответ или решение
Для изменения домашнего каталога GNUPG на NixOS, особенно в контексте версии 24.05 и использования Home Manager, необходимо выполнить несколько шагов. Ваша цель заключается в перемещении директории GNUPG в указанное вами место — $HOME/.local/share/gnupg
, что соответствует переменной окружения $XDG_DATA_HOME
. Приведем подробную инструкцию по настройке.
1. Убедитесь, что переменная окружения XDG_DATA_HOME установлена правильно
Перед тем, как начать, проверьте, что переменная XDG_DATA_HOME
настроена корректно. Вы можете сделать это, выполнив команду в терминале:
echo $XDG_DATA_HOME
Если вывод соответствует ~/.local/share
, тогда вы на правильном пути.
2. Включите поддержку xdg в Home Manager
Вам необходимо активировать пакет xdg в конфигурации Home Manager. Это делается путем добавления блока xdg с необходимыми настройками в ваш конфигурационный файл Home Manager. Пример конфигурации может выглядеть следующим образом:
{ config, lib, pkgs, ... }:
{
xdg = {
enable = true;
cacheHome = "${config.home.homeDirectory}/.cache";
configHome = "${config.home.homeDirectory}/.config";
dataHome = "${config.home.homeDirectory}/.local/share";
stateHome = "${config.home.homeDirectory}/.local/state";
userDirs = {
enable = true;
createDirectories = true;
};
};
home.packages = with pkgs; [
xdg-utils
xdg-user-dirs
];
}
3. Установите новый домашний каталог для GPG
Теперь вы можете установить новый путь для директории GNUPG в конфигурации Home Manager. Добавьте следующий блок в ваш файл конфигурации:
programs.gpg = {
enable = true;
homedir = "${config.xdg.dataHome}/gnupg";
};
4. Примените изменения
После внесения изменений не забудьте применить их. Вы можете сделать это двумя способами:
- Перезагрузка системы (rebuild and reboot).
- Переключение конфигурации Nix, что требует выхода из текущей сессии и повторного входа:
home-manager switch
5. Проверьте настройки GNUPG
После внести правки и перезагрузки (или переключения конфигурации), проверьте, правильно ли изменились настройки. Используйте команду:
gpgconf --list-dirs
В выводе должно отображаться новое значение для homedir
, соответствующее вашему установленному пути.
Заключение
Следуя вышеизложенным шагам, вы сможете успешно изменить домашний каталог GNUPG на NixOS, настроив его в соответствии с стандартами XDG. Если после выполнения всех инструкций изменения не вступают в силу, убедитесь, что вы не запускаете GPG из сеанса, который был активен до применения изменений.
Это даст вам возможность более упорядоченно управлять конфигурациями программного обеспечения, обеспечивая гармонию с современными стандартами, такими как XDG.