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 件のコメント:

既存アプリケーションをK8s上でコンテナ化して動かす場合の設計注意事項メモ

既存アプリをK8sなどのコンテナにして動かすには、どこを注意すればいいか..ちょっと調べたときの注意事項をメモにした。   1. The Twelve Factors (日本語訳からの転記) コードベース   バージョン管理されている1つのコードベースと複数のデプロイ 依存関係 ...