安装到 nix 时缺少 Aspell 词典-shell
Aspell dictionaries missing when installed into nix-shell
当我在 Mac OSX OSX 上使用 Nix 将带有英语 Aspell 词典的 Aspell 软件包安装到我的全局环境中时:
$ nix-env -iA nixpkgs.aspell nixpkgs.aspellDicts.en
然后 Aspell 的行为与我预期的一样:
$ aspell dump dicts
en
en-variant_0
...
但是,如果我将软件包安装到 nix-shell 中,那么字典似乎没有正确安装:
$ nix-shell -p aspell aspellDicts.en --pure
$ aspell dump dicts
# nothing printed
$ echo 'word lister to check' | aspell --list
Error: No word lists can be found for the language "en_US".
以下每个变体都会产生相同的问题行为:
- 安装到不纯的 nix-shell,
- 将 nix 表达式放入 default.nix 文件中 运行
nix-shell
.
- 正在安装其他 Aspell 词典
任何人都可以建议如何让它工作吗?
aspell
二进制文件由 NixPkgs 包装,以通过 ASPELL_CONF
环境变量提供安装路径(如果尚未指定)。 (详情请cat -v result/bin/aspell
)
您可以手动指定 ASPELL_CONF
,或使用 NIX_PROFILES
环境变量。例如:
$ nix-build -E 'with import <nixpkgs> {};
buildEnv { name = "aspell-env"; paths = [aspell aspellDicts.en]; }'
$ NIX_PROFILES=./result ./result/bin/aspell dump dicts
en
en-variant_0
[...]
en_US-wo_accents
但是,如果您想构建一个带有字典的独立 aspell
安装,您可以使用 aspellWithDicts
:
nix-build -E 'with import <nixpkgs> {}; aspellWithDicts (d: [d.en])'
这将对 ASPELL_CONF
进行硬编码,因此您无需再考虑那些环境变量。
当我在 Mac OSX OSX 上使用 Nix 将带有英语 Aspell 词典的 Aspell 软件包安装到我的全局环境中时:
$ nix-env -iA nixpkgs.aspell nixpkgs.aspellDicts.en
然后 Aspell 的行为与我预期的一样:
$ aspell dump dicts
en
en-variant_0
...
但是,如果我将软件包安装到 nix-shell 中,那么字典似乎没有正确安装:
$ nix-shell -p aspell aspellDicts.en --pure
$ aspell dump dicts
# nothing printed
$ echo 'word lister to check' | aspell --list
Error: No word lists can be found for the language "en_US".
以下每个变体都会产生相同的问题行为:
- 安装到不纯的 nix-shell,
- 将 nix 表达式放入 default.nix 文件中 运行
nix-shell
. - 正在安装其他 Aspell 词典
任何人都可以建议如何让它工作吗?
aspell
二进制文件由 NixPkgs 包装,以通过 ASPELL_CONF
环境变量提供安装路径(如果尚未指定)。 (详情请cat -v result/bin/aspell
)
您可以手动指定 ASPELL_CONF
,或使用 NIX_PROFILES
环境变量。例如:
$ nix-build -E 'with import <nixpkgs> {};
buildEnv { name = "aspell-env"; paths = [aspell aspellDicts.en]; }'
$ NIX_PROFILES=./result ./result/bin/aspell dump dicts
en
en-variant_0
[...]
en_US-wo_accents
但是,如果您想构建一个带有字典的独立 aspell
安装,您可以使用 aspellWithDicts
:
nix-build -E 'with import <nixpkgs> {}; aspellWithDicts (d: [d.en])'
这将对 ASPELL_CONF
进行硬编码,因此您无需再考虑那些环境变量。