当我在Mac上使用Nix在全局env中安装带有A拼写字典的A拼写包时:
$ nix-env -iA nixpkgs.aspell nixpkgs.aspellDicts.en然后,阿法尔的行为与我所期望的一样:
$ 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。有人能给我建议一下怎么做吗?
发布于 2017-11-29 07:31:16
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,因此不需要再考虑这些环境变量。
https://stackoverflow.com/questions/47542706
复制相似问题