Spack¶
本サイトではSpackに関連する文書を公開しています。Sphere packing(球充填)については pyspack をご参照ください。
Spackは様々なプラットフォームやシステム環境にインストールされているソフトウェアの複数のバージョン、設定などを管理するために設計されています。Spackは、スーパーコンピュータシステムを運用するセンターなどでの利用を想定して設計しています。大規模なセンターなどでは、多くのユーザやチームがシステムにインストールされているソフトウェアを利用したり、ソフトウェアを共有したりしていますが、それらは、様々のクラスタ上で標準的なABI(Application Binary Interface)を持たないライブラリを利用しています。Spackを利用することで、新しいバージョンのソフトウェアをインストールしても既存の環境を破壊することなく、同じシステム上に多数の構成を共存させることができます。
Spackがシンプルであることは、最も重要な点です。Spackユーザは、シンプルな文法で利用したいソフトウェアのバージョン、設定、オプション等を指定できます。また、Spackは、パッケージングを行うユーザにとってもシンプルです。パッケージファイルは純粋なPythonで記述されていて、多種多様なビルド方法を記載する場合でも、更新するのは単一のファイルです。
使用例とハイライトについては、 機能概要 をご参照ください。
以下の方法でSpackを github <https://github.com/spack/spack> から入手し、最初のパッケージをインストールしてみてください。
$ git clone https://github.com/spack/spack.git
$ cd spack/bin
$ ./spack install libelf
Spackを利用するのが初めての場合は、 はじめに をご参照ください。もしくは、下記のマニュアルをご参照ください。
- 設定ファイル
- 基本設定
- ビルドカスタマイゼーション
- ミラー
- モジュール
- パッケージレポジトリ
- ビルドキャシュ
- コマンドリファレンス
- spack
- spack activate
- spack add
- spack arch
- spack blame
- spack bootstrap
- spack build
- spack build-env
- spack buildcache
- spack cd
- spack checksum
- spack clean
- spack clone
- spack commands
- spack compiler
- spack compilers
- spack concretize
- spack config
- spack configure
- spack create
- spack deactivate
- spack debug
- spack dependencies
- spack dependents
- spack diy
- spack docs
- spack edit
- spack env
- spack extensions
- spack fetch
- spack find
- spack flake8
- spack gpg
- spack graph
- spack help
- spack info
- spack install
- spack license
- spack list
- spack load
- spack location
- spack log-parse
- spack mirror
- spack module
- spack patch
- spack pkg
- spack providers
- spack pydoc
- spack python
- spack reindex
- spack release-jobs
- spack remove
- spack repo
- spack resource
- spack restage
- spack setup
- spack spec
- spack stage
- spack test
- spack uninstall
- spack unload
- spack unuse
- spack upload-s3
- spack url
- spack use
- spack versions
- spack view
- パッケージ一覧
- Chaining Spack Installations
- Custom Extensions
- Contribution Guide
- Packaging Guide
- Creating & editing packages
- Naming & directory structure
- Trusted Downloads
- Versions and fetching
- Finding new versions
- Fetching from code repositories
- Variants
- Resources (expanding extra tarballs)
- Licensed software
- Patches
- Handling RPATHs
- Parallel builds
- Dependencies
- Conflicts
- Extensions
- Views
- Virtual dependencies
- Abstract & concrete specs
- Conflicting Specs
- Implementing the installation procedure
- The build environment
- Spec objects
- Compiler wrappers
- MPI support in Spack
- Checking an installation
- File manipulation functions
- Style guidelines for packages
- Packaging workflow commands
- Graphing dependencies
- Interactive shell support
- Build Systems
- Developer Guide
- Docker for Developers
- Spack API Docs
- Subpackages
- Submodules
- spack.abi module
- spack.architecture module
- spack.binary_distribution module
- spack.build_environment module
- spack.caches module
- spack.compiler module
- spack.concretize module
- spack.config module
- spack.database module
- spack.dependency module
- spack.directives module
- spack.directory_layout module
- spack.environment module
- spack.error module
- spack.extensions module
- spack.fetch_strategy module
- spack.filesystem_view module
- spack.graph module
- spack.main module
- spack.mirror module
- spack.mixins module
- spack.multimethod module
- spack.package module
- spack.package_prefs module
- spack.package_test module
- spack.parse module
- spack.patch module
- spack.paths module
- spack.pkgkit module
- spack.provider_index module
- spack.relocate module
- spack.repo module
- spack.report module
- spack.reporter module
- spack.resource module
- spack.spec module
- spack.spec_set module
- spack.stage module
- spack.store module
- spack.tengine module
- spack.url module
- spack.variant module
- spack.version module
- Module contents
- LLNL API Docs