ホームディレクトリなどに各自でSpackを配置した状態で使用するプライベートインスタンスの場合、パブリックインスタンス(/optなどの配下にspackを配置して複数ユーザで共用する)側でspack install済みのパッケージが透過的にみることはできない。
このような場合、チェイニングという機能を使うことでパブリック側インストール済みパッケージをspack loadできるようにする。
方法は、ホームディレクトリ以下の.spackディレクトリにupstreams.yamlというファイルを作る。
たとえばパブリック側のSpack環境が/opt/hogehoge/spack以下にある場合、
upstreams:
spack-public-instance:
install_tree: /opt/hogehoge/spack/opt/spack
と、記述することでパブリック側パッケージがspack find で参照可能になる。
しかし、プライベートインスタンス内でさらにspack env create で独自Spack環境をつくると、このチェイニングが効かなくなる。
そのような場合は ~/.spack/upstreams.yaml を以下のように追記すればよい(fugafugaユーザのホーム直下にspackディレクトリがある場合)。
upstreams:
spack-public-instance:
install_tree: /opt/hogehoge/spack/opt/spack
spack-private-instance:
install_tree: /home/fugafuga/spack/opt/spack
これでパブリック側のパッケージとプライベート側のパッケージを透過的にspack findすることができる。
..が、独自Spack環境を作成する場合は、排他状態(spack installをいちからじぶんでやりたい)を望んで作る事が多い(プライベートデフォルト環境下で十分)ので、需要はあまりないかもしれないが...
0 件のコメント:
コメントを投稿