Memulai • Konfigurasi • Komunitas • Berkontribusi • Panduan Pengemasan
Spack adalah pengelola paket multi-platform yang membangun dan menginstal berbagai versi dan konfigurasi perangkat lunak. Ia bekerja di Linux, macOS, Windows, dan banyak superkomputer. Spack bersifat non-destruktif: menginstal versi baru dari suatu paket tidak merusak instalasi yang sudah ada, sehingga banyak konfigurasi dari paket yang sama dapat hidup berdampingan.
Spack menawarkan sintaks "spesifikasi" sederhana yang memungkinkan pengguna menentukan versi dan opsi konfigurasi. File paket ditulis dengan Python murni, dan spesifikasi memungkinkan pembuat paket menulis satu skrip untuk banyak versi berbeda dari paket yang sama. Dengan Spack, Anda dapat membangun perangkat lunak sesuai keinginan Anda.
Lihat Ikhtisar Fitur untuk contoh dan sorotan.
Untuk menginstal spack dan paket pertama Anda, pastikan Anda memiliki Python & Git. Kemudian:
$ git clone -c feature.manyFiles=true --depth=2 https://github.com/spack/spack.git
$ cd spack/bin
$ ./spack install zlib
Tip
-c feature.manyFiles=true
meningkatkan kinerja git pada repositori dengan 1.000+ file.
--depth=2
memangkas riwayat git untuk mengurangi ukuran instalasi Spack.
Dokumentasi lengkap tersedia, atau jalankan spack help
atau spack help --all
.
Untuk lembar contekan tentang sintaksis Spack, jalankan spack help --spec
.
Kami memelihara tutorial langsung . Ini mencakup penggunaan dasar hingga lanjutan, pengemasan, fitur pengembang, dan penerapan HPC besar. Anda dapat melakukan semua latihan di laptop Anda sendiri menggunakan container Docker.
Jangan ragu untuk menggunakan materi ini untuk mengajari pengguna di organisasi Anda tentang Spack.
Spack adalah proyek sumber terbuka. Pertanyaan, diskusi, dan kontribusi dipersilakan. Kontribusi dapat berupa apa saja mulai dari paket baru hingga perbaikan bug, dokumentasi, atau bahkan fitur inti baru.
Sumber daya:
@mention
kami! Berkontribusi ke Spack relatif mudah. Kirimkan saja permintaan penarikan kepada kami. Saat Anda mengirim permintaan Anda, develop
cabang tujuan di repositori Spack.
PR Anda harus lulus pengujian unit dan pengujian dokumentasi Spack, dan harus mematuhi PEP 8. Kami menerapkan pedoman ini dengan proses CI kami. Untuk menjalankan pengujian ini secara lokal, dan untuk mendapatkan tips bermanfaat tentang git, lihat Panduan Kontribusi kami.
Cabang develop
Spack memiliki kontribusi terbaru. Permintaan penarikan harus menargetkan develop
, dan pengguna yang menginginkan versi paket terbaru, fitur, dll. dapat menggunakan develop
.
Untuk penerapan situs multi-pengguna atau kasus penggunaan lain yang memerlukan instalasi perangkat lunak yang sangat stabil, sebaiknya gunakan rilis stabil Spack.
Setiap seri rilis Spack juga memiliki cabang yang sesuai, misalnya releases/v0.14
memiliki versi Spack 0.14.x
, dan releases/v0.13
memiliki versi 0.13.x
Kami mem-backport perbaikan bug penting ke cabang-cabang ini tetapi kami tidak memajukan versi paket atau membuat perubahan lain yang akan mengubah cara Spack mengkonkretkan dependensi dalam cabang rilis. Jadi, Anda dapat mendasarkan penerapan Spack pada cabang rilis dan git pull
untuk mendapatkan perbaikan, tanpa churn paket yang disertakan dengan develop
.
Rilis terbaru selalu tersedia dengan tag releases/latest
.
Lihat dokumen rilis untuk detail selengkapnya.
Harap dicatat bahwa Spack memiliki Kode Etik . Dengan berpartisipasi dalam komunitas Spack, Anda setuju untuk mematuhi peraturannya.
Terima kasih banyak kepada kontributor Spack.
Spack dibuat oleh Todd Gamblin, [email protected].
Jika Anda mereferensikan Spack dalam sebuah publikasi, harap kutip makalah berikut:
Di GitHub, Anda dapat menyalin kutipan ini dalam format APA atau BibTeX melalui tombol "Kutip repositori ini". Atau, lihat komentar di CITATION.cff
untuk BibTeX mentah.
Spack didistribusikan berdasarkan ketentuan lisensi MIT dan Lisensi Apache (Versi 2.0). Pengguna dapat memilih salah satu lisensi, sesuai pilihan mereka.
Semua kontribusi baru harus dilakukan di bawah lisensi MIT dan Apache-2.0.
Lihat LISENSI-MIT, LISENSI-APACHE, HAK CIPTA, dan PEMBERITAHUAN untuk rinciannya.
Pengenal Lisensi SPDX: (Apache-2.0 ATAU MIT)
LLNL-KODE-811652