Nix - Pengurus Pakej Murni Fungsian untuk Linux

Nix - Pengurus Pakej Murni Fungsian untuk Linux

Nix adalah sistem pengurusan pakej yang kuat dan berfungsi semata -mata yang direka untuk pengurusan pakej yang boleh dipercayai dan boleh dihasilkan, yang dikeluarkan di bawah terma GNU LGPLV2.1. Ia adalah sistem pengurusan pakej utama di Nixos, taburan Linux yang kurang dikenali.

Nix menawarkan peningkatan atom dan rollbacks, pelbagai versi pemasangan pakej, pengurusan pakej multi-pengguna dan persediaan yang tidak mudah untuk membina persekitaran untuk pakej, tanpa mengira bahasa pengaturcaraan dan alat pemaju menggunakan.

Di bawah Nix, Pakej dibina dari bahasa pakej berfungsi yang dipanggil "Ekspresi Nix". Pendekatan fungsional untuk pengurusan pakej menjamin bahawa memasang atau menaik taraf satu pakej tidak dapat memecahkan pakej lain.

Nix juga mempunyai sokongan pelbagai pengguna, yang menunjukkan bahawa pengguna sistem biasa (atau tidak istimewa) boleh memasang pakej dengan selamat dan setiap pengguna dikenal pasti oleh profil (koleksi pakej di kedai Nix yang muncul di laluan pengguna).

Sekiranya satu pengguna telah memasang pakej, jika pengguna lain cuba memasang pakej yang sama, pakej tidak akan dibina atau dimuat turun buat kali kedua.

Ia kini menyokong Linux (i686, x86_64) dan Mac OS X (x86_64). Walau bagaimanapun, ia agak mudah alih, anda boleh mencubanya di kebanyakan platform yang menyokong benang POSIX dan mempunyai pengkompil C ++ 11.

Dalam artikel ini, kami akan menunjukkan cara memasang (dalam mod pengguna pelbagai) dan gunakan Nix Pengurus Pakej di Linux. Kami akan membincangkan beberapa tugas pengurusan pakej asas berhubung dengan alat yang biasa digunakan.

Cara Memasang Pengurus Pakej Nix di Linux

Kami akan memasang versi terkini dari Nix (v2.1.3 pada masa penulisan) dalam mod pengguna pelbagai. Nasib baik, terdapat skrip pemasangan yang sedia ada yang boleh anda jalankan dari kulit anda sebagai pengguna biasa menggunakan arahan curl berikut pada sistem anda.

$ sh <(curl https://nixos.org/nix/install) --daemon 

Menjalankan arahan di atas akan memuat turun tarball binari nix terkini, dan anda akan mendarat di skrin pemasangan Nix multi-pengguna seperti yang ditunjukkan dalam tangkapan skrin.

Pasang Pengurus Pakej Nix di Linux

Untuk melihat senarai terperinci tentang apa yang akan berlaku semasa proses pemasangan, taipkan y dan tekan Masukkan. Sekiranya anda berpuas hati dan bersedia untuk meneruskan, taipkan y dan tekan Masukkan.

Ringkasan Pemasangan Nix

Skrip akan memohon arahan sudo berkali -kali seperti yang diperlukan. Anda perlu membenarkannya menggunakan sudo dengan menjawab y dan memukul Masukkan.

Pemasangan NIX berterusan

Pemasang kemudian akan menjalankan beberapa ujian dan menghasilkan laporan konfigurasi Nix, membuat pengguna membina antara ID pengguna 30001 dan 30032, dan kumpulan dengan id kumpulan 30000. Masukkan y untuk meneruskan apabila diminta. Ia akan menubuhkan kumpulan binaan untuk pengguna binaan yang berbeza, menjadikan struktur direktori asas nix.

Ia akan mengubah suai fail /etc/bashrc, (dan /etc/zshrc untuk ZSH) Sekiranya mereka wujud. Perhatikan bahawa ia mula -mula menyokong fail yang disebutkan dengan a .sandaran-sebelum-nix sambungan dan pemasang juga membuat fail /etc/profil.d/nix.sh.

Pemasang juga akan menyediakan perkhidmatan nix-daemon dan perkhidmatan soket nix-daemon, memuatkan unit systemd untuk nix-daemon dan memulakan kedua-dua perkhidmatan tersebut.

Sebaik sahaja pemasangan selesai, anda perlu membuka tetingkap terminal baru untuk mula menggunakan nix. Sebagai alternatif, tutup dan buka semula shell anda untuk menerapkan perubahan baru -baru ini. Kemudian sumber fail /etc/profil.d/nix.sh (Kerana itu bukan fail permulaan shell, membuka shell baru tidak akan sumbernya).

$ sumber /etc /profil.d/nix.sh 

Seterusnya, jalankan arahan berikut untuk memuat turun beberapa laluan dari laman web projek rasmi, diperlukan untuk Nix untuk beroperasi. Selepas semua laluan dimuat turun dan disalin ke lokasi yang betul, anda akan melihat ringkasan jenis sistem dan Nix seperti yang ditunjukkan dalam tangkapan skrin.

$ nix-shell -p nix-info--run "nix-info -m" 
Pemasangan dan Ringkasan Sistem Nix

Cara Menggunakan Pengurus Pakej Nix di Linux

Di bawah Nix, Pengurusan pakej dilakukan oleh nix-env utiliti. Ia digunakan untuk memasang, menaik taraf, dan mengeluarkan/memadam pakej, dan untuk menanyakan pakej apa yang dipasang atau tersedia untuk pemasangan.

Semua pakej terletak di saluran Nix, yang merupakan URL yang menunjuk ke repositori yang terdiri daripada kedua -dua koleksi ekspresi Nix dan penunjuk ke cache binari.

Saluran lalai adalah Nixpkgs dan senarai saluran yang dilanggan disimpan di ~/.nix-channels, anda boleh menyenaraikannya menggunakan arahan berikut (tiada output bermaksud tiada saluran).

$ nix-channel-list 

Untuk menambah saluran Nix, gunakan arahan berikut.

$ nix-channel --add https: // nixos.org/saluran/nixpkgs-unstable 

Sebelum anda memasang sebarang pakej, mulakan dengan mengemas kini saluran NIX; ini serupa dengan berjalan kemas kini apt Di bawah Pengurus Pakej APT.

$ nix-channel --update 
Kemas kini saluran NIX

Anda boleh menanyakan pakej apa yang tersedia untuk pemasangan menggunakan arahan berikut.

$ nix -env -qa 
Pakej pertanyaan tersedia untuk pemasangan

Dalam contoh ini, kami akan memasang pelayan Apache Tomcat menggunakan arahan sebelumnya bersempena dengan GREP untuk mencari pakej yang tersedia untuk dipasang seperti yang ditunjukkan.

$ nix -env -qa | Grep "Apache-Tomcat" 
Cari pakej untuk pemasangan

Untuk memasang pakej, gunakan arahan berikut dengan menentukan versi pakej, contohnya Apache-Tomcat-9.0.2.

$ nix-env -i Apache-tomcat-9.0.2 
Pasang pakej menggunakan nix

Di sistem tempatan, nix menyimpan pakej di NIX STORE, yang secara lalai /nix/store direktori, di mana setiap pakej mempunyai sub-direktori tersendiri. Contohnya, Apache-Tomcat Pakej disimpan dalam:

/nix/store/95gmgnxlrcpkhlm00fa5ax8kvd6189py-apache-tomcat-9.0.2 

Di jalan ini, watak rawak 95GMGNXLRCPKHLM00FA5AX8KVD6189PY adalah pengenal unik untuk pakej yang mengambil kira semua kebergantungannya.

Anda boleh menyenaraikan pakej yang dipasang dengan arahan berikut.

$ nix -env -q 
Senaraikan pakej yang dipasang

Untuk menaik taraf Apache-Tomcat pakej, anda boleh menggunakan -u Menaik taraf suis seperti yang ditunjukkan.

$ nix-env -u Apache-tomcat 

Sekiranya anda mahu mengeluarkan/memadamkan Apache-Tomcat, menggunakan -e bendera. Di sini, pakej tidak dipadamkan dari sistem dengan segera, ia hanya tidak digunakan. Ini berguna kerana anda ingin melakukan pengembalian semula, atau mungkin dalam profil pengguna lain.

$ nix-env -e Apache-tomcat 

Setelah mengeluarkan pakej, anda boleh melakukan beberapa koleksi sampah dengan NIX-COLLECT-SABBAGE utiliti.

$ nix-collect-garbage 

Cara Menghapus Pengurus Pakej Nix di Linux

Untuk menyahpasang Nix, keluarkan semua fail berkaitan Nix pada satu masa.

$ sudo rm -rf/etc/profil/nix.sh /etc /nix /nix ~ root /.nix-profil ~ root/.nix-defexpr ~ root/.nix-channels ~/.nix-profil ~/.nix-defexpr ~/.nix-channels 

Mengenai Sistem dengan SystemD, jalankan arahan berikut untuk menghentikan semua perkhidmatan berkaitan Nix dan lumpuhkannya.

$ sudo Systemctl Stop Nix-Daemon.soket $ sudo systemctl stop nix-daemon.perkhidmatan $ sudo systemctl melumpuhkan nix-daemon.soket $ sudo systemctl melumpuhkan nix-daemon.Perkhidmatan $ sudo Systemctl Daemon-Reload 

Di samping itu, anda perlu mengeluarkan sebarang rujukan kepada NIX dalam fail ini: /etc/profil, /etc/bashrc, dan /etc/zshrc.

Untuk maklumat lanjut, lihat halaman lelaki utiliti di atas yang kami lihat.

$ man nix-channel $ man nix-env 

Anda boleh menemui dokumentasi Pengurus Pakej Nix di laman web projek: https: // nixos.org/nix/.

Ringkasan

Nix adalah pengurus pakej berfungsi semata -mata yang direka untuk pengurusan pakej yang boleh dipercayai dan boleh dihasilkan. Ia memberikan konsep pengurusan pakej yang menarik, sangat berbeza dengan alat yang biasa digunakan di linux seperti yum, apt, dan banyak lagi.

Dalam artikel ini, kami menunjukkan cara memasang Nix dalam mod pengguna multi dan membincangkan cara melakukan pengurusan pakej dengan Nix. Kongsi pendapat anda dengan kami atau tanya sebarang pertanyaan melalui borang komen di bawah. Akhir sekali, dalam artikel yang akan datang, kami akan menerangkan lebih banyak arahan pengurusan pakej nix. Sehingga itu, terus berhubung.