我正在使用 macOSCatalina
和 Spack 0.16.2-3063
。
我正在尝试安装新bash
版本并将其设为我的用户的默认版本。
我试图用 做同样的事情
Nix
,但我无法进一步推进,所以我尝试使用 Spack。
所以我正在关注本指南,幸运的是他们的例子是bash
。继续,我确实运行了这些命令:
$ spack env create default
$ spack add bash
$ nano ~/.spack/var/spack/environments/default/spack.yaml
# ...and add/change concretization: together
$ spack concretize
$ spack install
~/.spack/var/spack/environments/default/spack.yaml
此时我的文件如下所示:
spack:
concretization: together
specs:
- bash
view: true
然后我将默认 shell 更改为较新的 Bash 版本:
$ sudo nano /etc/shells
# ...add /Users/x80486/.spack/var/spack/environments/default/.spack-env/view/bin/bash
$ chsh -s /Users/x80486/.spack/var/spack/environments/default/.spack-env/view/bin/bash
此时我什至重新启动了系统,但不知何故有些东西不起作用。
$ echo $SHELL
/Users/x80486/.spack/var/spack/environments/default/.spack-env/view/bin/bash
$ echo $BASH_VERSION
5.1.8(1)-release
$ bash --version
GNU bash, version 3.2.57(1)-release
...
我希望这bash --version
会返回我之前更改的那个。而且,也which -a bash
没有列出/Users/x80486/.spack/var/spack/environments/default/.spack-env/view/bin/bash
。
那么我在这个设置中缺少什么?除了“最后的接触”之外,它看起来工作正常。
答案1
好的,这可以正常工作。default
每次启动新 shell 时,我都缺少激活/加载环境(默认情况下)。
因此,只需将这一行:添加spack env activate default
到最初获取的任何点文件中即可完成此操作 - 在我的例子中,我将其放在获取 Spacksetup-env.sh
文件之后。