Nix-shell: menyelaraskan aliran kerja pembangunan anda dengan persekitaran terpencil
Bosan dengan juggling versi perisian yang bercanggah dalam pelbagai projek? Nix-Shell menawarkan penyelesaian yang kuat! Alat ini membolehkan anda membuat persekitaran pembangunan terpencil, masing-masing disesuaikan dengan keperluan projek tertentu, memastikan aliran kerja yang lancar dan bebas konflik.
Persekitaran yang terpencil ini menghalang gangguan antara projek, menghapuskan "neraka ketergantungan" yang sering dihadapi apabila versi perisian bertembung. Nix-Shell memudahkan penciptaan dan menukar persekitaran, memastikan persediaan yang konsisten merentasi pelbagai mesin dan meningkatkan kecekapan kerjasama pasukan.
Panduan ini menyediakan langkah demi langkah untuk mewujudkan dan menguruskan persekitaran pembangunan terpencil menggunakan shell Nix pada Linux.
Jadual Kandungan
Nix adalah pengurus pakej yang mantap dan membina sistem yang menggunakan pendekatan fungsional dan deklaratif untuk pengurusan ketergantungan. Ia merawat pakej sebagai nilai dalam paradigma pengaturcaraan berfungsi.
Nix-Shell, alat baris arahan yang dibundel dengan Pengurus Pakej Nix, memanfaatkan ekspresi NIX untuk menjana persekitaran pembangunan terpencil. Persekitaran ini merangkumi semua alat, perpustakaan, dan kebergantungan yang diperlukan untuk projek tertentu.
Dengan membina secara bebas setiap pergantungan dan mencegah gangguan, Nix-shell membasmi "neraka ketergantungan" dan menyediakan kawalan berbutir ke atas kebergantungan dalam kedua-dua tetapan pembangunan dan pengeluaran. Pengasingan dan reproducibility ini menjamin persediaan yang konsisten di seluruh sistem yang berbeza dan memudahkan kerjasama pemaju yang lancar.
Nix-Shell mewujudkan persekitaran yang berasingan dan boleh dihasilkan untuk menguruskan kebergantungan projek, mencegah konflik.
Pertama, buat ungkapan Nix yang menentukan kebergantungan projek anda. Ini biasanya fail bernama default.nix
atau shell.nix
dalam direktori root projek anda.
Mari buat projek sampel, myproject
:
$ mkdir myproject $ cd myproject $ nano shell.nix
Tambahkan yang berikut ke shell.nix
:
{pkgs? import<nixpkgs> {}}: pkgs.mkshell { BuildInputs = [ pkgs.python38 pkgs.nodejs pkgs.ruby ]; }</nixpkgs>
Ini mentakrifkan persekitaran dengan Python 3.8, Node.js, dan Ruby. Menjalankan nix-shell
dalam direktori ini akan memasangnya secara berasingan.
Versi yang lebih ringkas:
{pkgs? import<nixpkgs> {}}: pkgs.mkshell {buildInputs = with pkgs.buildpackages; [python38 nodejs ruby]; }</nixpkgs>
Simpan dan tutup fail.
Persekitaran cepat, ad-hoc
Untuk persekitaran sementara, gunakan
nix-shell -p package1 package2 ...
Contohnya:nix -shell -p python39packages.numpy python39packages.scipySalin selepas log masuk
Masukkan persekitaran terpencil menggunakan:
$ nix-shell
atau
$ nix-shell shell.nix
Untuk pengasingan maksimum, gunakan --pure
:
$ nix-shell --pure shell.nix
Ini mewujudkan sesi shell dengan kebergantungan yang ditentukan.
Dalam persekitaran Nix-Shell, gunakan alat pembangunan anda seperti biasa. Persekitaran terpencil memastikan kebergantungan yang konsisten tanpa mengira sistem tuan rumah.
Sahkan versi yang dipasang:
[nix -shell: ~/myproject] $ python -v [nix -shell: ~/myproject] $ node -v [nix -shell: ~/myproject] $ ruby -v
Keluar menggunakan exit
atau CTRL D
. Keluar menghilangkan persekitaran sementara, membalikkan tetapan shell ke keadaan terdahulu mereka tanpa menjejaskan sistem anda. Fail projek kekal tidak berubah. Pakej yang tidak digunakan di kedai Nix boleh dikeluarkan melalui pengumpulan sampah ( nix-collect-garbage -d
).
S: Apakah nix-shell? A: Alat baris arahan yang mewujudkan persekitaran shell sementara, terpencil dengan pakej perisian tertentu.
S: Bagaimana saya memasangnya? A: Ia adalah sebahagian daripada Pengurus Pakej Nix; Pasang Nix terlebih dahulu.
S: Bagaimana saya mewujudkan persekitaran terpencil? A: Gunakan fail shell.nix
yang menentukan kebergantungan, atau gunakan nix-shell -p ...
untuk persekitaran ad-hoc.
S: Apakah OS yang menyokongnya? A: Kebanyakan sistem seperti UNIX (Linux, MACOS); Pengguna Windows boleh menggunakan WSL.
S: Apa yang berlaku semasa keluar? A: Persekitaran dikeluarkan; Tetapan shell kembali; fail projek kekal.
S: Bagaimanakah ia mengelakkan "neraka ketergantungan"? A: Pendekatan fungsional Nix memastikan pakej terpencil membina, mencegah konflik.
S: Bolehkah saya menyelamatkan keadaan persekitaran? A: Fail shell.nix
boleh dihasilkan semula; Untuk senario yang lebih kompleks, meneroka keupayaan pakej dan konfigurasi Nix.
S: Bagaimana saya menambah/mengeluarkan pakej? A: Ubah suai senarai buildInputs
shell.nix
atau laraskan bendera -p
.
S: Bagaimana saya melakukan koleksi sampah? A: Gunakan nix-collect-garbage -d
.
NIX-Shell menyelaraskan pembangunan dengan menyediakan ruang kerja projek terpencil. Ini menghalang konflik dan memastikan persekitaran yang konsisten merentasi mesin, membolehkan anda memberi tumpuan kepada pengekodan dan bukannya pengurusan ketergantungan.
Sumber:
Artikel Berkaitan:
Atas ialah kandungan terperinci Cara Membuat Persekitaran Pembangunan Dengan Nix-Shell di Linux. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!