Translate

2021年7月6日火曜日

Spackプライベートインスタンス内の独自環境下でチェイニングを使う

ホームディレクトリなどに各自で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 件のコメント:

Gemini 2.5 Pro Expのコード把握能力を試す

Xに流れてきた某コードの説明をGemini2.5 Pro Expに投げてみました。   入力したプロンプト     このコードを説明して: ```shell # 2025-04-01 TEAM TESO IS BACK # Linux LPE # . <(print...