- Beranda
- Komunitas
- Tech
- Linux dan OS Selain Microsoft & Mac
NixOS & Nix Package Manager: Reproducible, Declarative, Reliable


TS
User telah dihapus
NixOS & Nix Package Manager: Reproducible, Declarative, Reliable
Quote:
Halo Agan-Sista penghuni subforum Linux dan OS Selain Microsoft & Mac, di sini saya ingin memperkenalkan dan membuka wadah diskusi (berhubung saya cari belum ada di Kaskus ini) bagi OS berbasis kernel Linux yang sebenarnya sudah cukup lama beredar, tapi baru naik daun akhir-akhir ini di beberapa komunitas dan menarik perhatian saya untuk distro hopping ke sini karena keunikan dari segi manajemen sistemnya. Perkenalkan, NixOS.
Quote:
Berkenalan dengan NixOS
NixOSadalah distro Linux yang menggunakan sistem pengelolaan paket (package management system) dan sistem bangun (build system) Nix. NixOS mendukung manajemen pengaturan sistem deklaratif yang reproducible. Deklaratif di sini artinya manajemen sistem dilakukan dengan mendeklarasikan suatu variabel dengan nilai tertentu di berkas konfigurasi (config file), sedangkan reproducible berarti berkas konfigurasi ini bisa dibawa ke sistem lain dan bekerja di sana tanpa perubahan atau dengan perubahan yang minimal.
Selain dukungan di atas, NixOS juga mendukung pembaruan sistem secara atomic, yang berarti pembaruan dilakukan berdasarkan unit terkecil yang dimiliki oleh sistem atau paket yang dilakukan pembaruan. Tidak hanya pembaruan, NixOS pun mendukung gulir balik (rollback) yang juga berlaku secara atomic, sehingga apabila ada masalah yang ditimbulkan oleh proses pembaruan, pengguna dapat menggulir sistem kembali ke posisi sebelum pembaruan dilakukan.
Pada NixOS, semua komponen - termasuk kernel, paket yang terpasang, dan berkas-berkas konfigurasi sistem - dibangun oleh Nix dari fungsi murni yang disebut "Nix expressions".
Pengelola paket Nix menggunakan teknik "binary caching", yang menawarkan titik tengah (kompromi) di antara solusi "binary-oriented" seperti Debian dan solusi "source-oriented" seperti Gentoo. Paket binary dapat digunakan untuk komponen standar dan kompilasi dari kode sumber juga dapat digunakan apabila paket binary yang sudah jadi tidak tersedia.
NixOS terdiri dari rilis poin (point release) yang dirilis setahun dua kali dan rilis bergulir (rolling release) yang selalu tersedia sepanjang tahun. NixOS dibuat oleh Eelco Dolstra dan Armijn Hemel, dirilis pertama kali pada tahun 2003 silam, dan dikembangkan oleh komunitas serta dipelihara di bawah naungan NixOS Foundation.
Sebagian besar dari tulisan ini disadur dari https://nixos.wiki/wiki/Overview_of_...x_distribution
Quote:
Poin-Poin Penting dari NixOS dan Nix Package Manager

Reproducible
Nix membangun setiap paket dalam lingkungan terisolasi, yang menjamin mereka dapat direproduksi dan tidak memiliki dependensi tersembunyi. Jadi, jika suatu paket bisa berjalan pada satu mesin, paket tersebut juga akan bisa berjalan pada mesin lainnya.
Declarative
Nix memudahkan untuk membagikan lingkungan pengembangan dan pembangunan(development and build enviromnent) projek Anda, tidak peduli apa bahasa pemrograman dan alat yang Anda gunakan.
Reliable
Nix menjamin bahwa memasang atau memperbarui satu paket tidak dapat mengganggu paket lainnya. Dengan Nix, Anda dapat melakukan gulir balik ke versi sebelumnya, dan menjamin tidak ada paket yang dalam kondisi tidak konsisten saat proses pembaruan.
Quote:
Mengunduh dan Memasang NixOS/Nix Package Manager
https://nixos.org/download.html
Ada dua pilihan:
1. Menggunakan pengelola paket Nix pada sembarang distro Linux yang menggunakan sistem init systemd.
2. Menggunakan NixOS di mesin virtual atau bare metal
Karena jiwa distro-hoppingsaya sedang bergairah, saat ini saya memilih opsi kedua.
Ada beberapa pilihan ISO NixOS yang bisa dicoba:
1. Live ISO dengan lingkungan desktop GNOME untuk Intel/AMD 64-bit
2. Live ISO dengan lingkungan desktop GNOME untuk ARM 64-bit
3. Live ISO dengan lingkungan desktop Plasma untuk Intel/AMD 64-bit
4. Live ISO dengan lingkungan desktop Plasma untuk ARM 64-bit
5. Minimal ISO untuk Intel/AMD 64-bit
6. Minimal ISO untuk ARM 64-bit
Agan dapat memilih Live ISO jika ingin merasakan NixOS terlebih dahulu sebelum/tanpa memasangnya ke diska.
Baik Live ISO maupun Minimal ISO membutuhkan koneksi internet untuk proses instalasi, jadi pastikan Agan memiliki akses ke koneksi internet, baik secara perangkat keras maupun secara jaringan.
Oh iya, walaupun Live ISO memiliki lingkungan desktop tertentu, Agan dapat memilih lingkungan desktop yang diinginkan saat proses instalasi.
Tutorial instalasi sistem secara minimal ada di REPLY #4
Tutorial instalasi dengan lingkungan desktop, menyusul gan

UNDER CONSTRUCTION
Quote:
Konfigurasi Nix
Konfigurasi Nix pada sistem NixOS terletak di `/etc/nixos/configuration.nix`. Agan dapat mengubah berkas teks ini sebagai root/superuser untuk menkonfigurasi sistem NixOS Agan.
Contoh konfigurasi yang lengkap bisa dicek di https://nixos.wiki/wiki/Configuration_Collection.
Setelah mengubah berkas konfigurasi, eksekusi perintah ini sebagai superuser untuk menetapkan perubahan:
Code:
# nixos-rebuild switch
Beberapa perubahan mungkin membutuhkan koneksi internet!
Quote:
Repositori Nix
Repositori Nix/NixOS dikelola dengan perintah `nix-channel`. Misal untuk menampilkan repositori yang dipakai, gunakan perintah:
Code:
# nix-channel --list
Agan akan melihat repositori yang dipakai, contoh:
Code:
nixos https://nixos.org/channels/nixos-23.05
Contoh di atas apabila Agan memasang NixOS versi rilis poin 23.05. Misalkan Agan mau pindah ke rilis bergulir unstable, gunakan perintah:
Code:
# nix-channel --add https://nixos.org/channels/nixos-unstable nixos
Lalu, eksekusi perintah ini untuk menetapkan perubahan tersebut:
Code:
# nixos-rebuild switch --upgrade
Tunggu beberapa saat, dan sistem Agan sudah terbaharui ke rilis bergulir!
Quote:
Memasang Paket di NixOS
Agan akan menemukan blok kode seperti ini di berkas konfigurasi:
Code:
{
...
environment.systemPackages = with pkgs; [
# nama paket di sini
];
...
}
Di dalam blok `environment.systemPackages`, Agan dapat menambahkan paket yang Agan butuh terinstal secara system-wide.
Atau, jika yang Agan butuhkan adalah paket yang terinstal untuk satu pengguna, cari blok kode seperti ini:
Code:
{
...
users.user.namaUserAgan = {
# konfigurasi lainnya
packages = with pkgs; [
# nama paket di sini
];
};
...
}
Di dalam braket kotak setelah `packages` itulah Agan mengisi nama paket yang dibutuhkan.
Setelah mengubah `configuration.nix`, jangan lupa untuk mengaplikasikannya.
Code:
# nixos-rebuild switch --upgrade
Alternatif lain untuk satu pengguna, bisa dengan memanfaatkan Home Manager
Quote:
Home Manager
Home Manager adalah projek untuk menangani pengelolaan paket dan dotfilesuntuk satu pengguna di Nix.
Detail mengenai Home Manager bisa Agan baca di https://github.com/nix-community/home-manager
Cara instalasi Home Manager di NixOS bisa Agan baca di https://nix-community.github.io/home...all-standalone
Berkas konfigurasi Home Manager ada di `/home/<nama user Agan>/.config/home-manager/home.nix`.
Untuk menambah paket baru untuk satu user, dapat ditambah di dalam blok ini:
Code:
{
...
home.packages = with pkgs; [
# tambah nama paket di sini
];
...
}
Untuk mengaplikasikan perubahan di berkas konfigurasi Home Manager, eksekusi perintah ini sebagai pengguna biasa:
Code:
$ home-manager switch
Manajemen dotfiles, nanti ya, saya juga masih belajar.
UNDER CONSTRUCTION
Quote:
Kesimpulan
NixOS menawarkan keunikan bukan di segi tampilan, tapi di segi manajemen paket dan sistem yang inovatif, serta proses pembaruan dan gulir balik yang atomic. Kalau Agan merasa bosan dengan manajemen paket yang ada di distro Linux yang Agan pakai, boleh dicoba nih NixOS.
Mari diskusi di sini Gan sesama pengguna NixOS

Diubah oleh User telah dihapus 23-06-2023 23:41



Benyamin90 dan User telah dihapus memberi reputasi
2
2.7K
Kutip
19
Balasan


Komentar yang asik ya
Urutan
Terbaru
Terlama


Komentar yang asik ya
Komunitas Pilihan