Nixos Flakes Tutorial (system dan home-manager)
tentang cara setup system dan home manager menggunakan flakes di nixos.

mrfdn.com - Flakes merupakan salah satu fitur terbaik yang dimiliki oleh nixos.
Dengan flakes kita bisa build system dari direktory manapun. Bukan lagi dari
/etc/nixos/
, tapi konfigurasi bisa disimpan pada folder~/.dotfiles
.
Ini terasa lebih gampang karena konfigurasi bisa disimpan di github, lalu ketika akan digunakan lagi tinggal di-clone saja lalu build.
Jika anda tertarik untuk build system menggunakan flakes, ikuti tutorial berikut, jangan diskip setiap step nya!
Folder structure
~/.dotfiles
.
├── configuration.nix
├── flake.lock
├── flake.nix
├── hardware-configuration.nix
└── home
└── home.nix
Cara menggunakan flake untuk build system
- Buat sebuah direkotory dengan nama
~/.dotfiles
lalu cd ke folder ini. - Copy file
/etc/nixos/configuration.nix
dan/etc/nixos/hardware-configuration.nix
ke.dotfiles
yang baru saja dibuat
cd .dotfiles
cp /etc/nixos/configuration.nix .
cp /etc/nixos/hardware-configuration.nix .
- Buat sebuah file dengan nama
flake.nix
kemudian definsikan konfigurasi system disini.
{
description = "My system flake";
inputs = {
# saya akan menggunakan nixos unstable
nixpkgs.url = "nixpkgs/nixos-unstable";
};
outputs = { self,nixpkgs, ...}:
let
lib = nixpkgs.lib;
in
{
nixosConfigurations = {
# nixhost adalah nama hostname pada system saya, ganti ini sesuai system anda.
nixhost = lib.nixosSystem {
system = "x86_64-linux";
modules = [ ./configuration.nix ];
};
};
};
}
- Sekarang build system dengan menambahkan
--flakes
dan.
(dot) pada akhir baris.
sudo nixos-rebuild switch --flake .
- Tunggu proses build, dan selesai, anda sekarang sudah punya konfigurasi system yang dibuild menggunakan flakes.
Cara menggunakan home-manager dengan flake
- Pastikan sudah install home-manager pada system, jika belum ikuti tutorial ini. Home manager stand alone installation
- Buat sebuah folder dengan nama home pada folder
~/dotfiles/
yang sudah dibuat. - Setelah home manager terinstall, sekarang copy file
~/.config/home-manager/home.nix
ke folder~/.dotfiles/home/
. - Lalu edit file
flake.nix
sehingga menjadi seperti ini:
{
description = "My Flake";
inputs = {
# I use nixos unstable channel
nixpkgs.url = "nixpkgs/nixos-unstable";
# I want to use branch master, which is default in home-manager, which will profide the latest app or the unstable version app
home-manager.url = "github:nix-community/home-manager/master";
home-manager.inputs.nixpkgs.follows = "nixpkgs";
};
outputs = { self,nixpkgs, home-manager, ...}:
let
lib = nixpkgs.lib;
system = "x86_64-linux";
pkgs = nixpkgs.legacyPackages.${system};
in {
nixosConfigurations = {
# nixhost is my hostname, define it as yours.
nixhost = lib.nixosSystem {
inherit system;
modules = [ ./configuration.nix ];
};
};
homeConfigurations = {
# nix is my user name, make sure to change this
nix = home-manager.lib.homeManagerConfiguration {
inherit pkgs;
modules = [ ./home/home.nix ];
};
};
};
}
Ingat untuk mengganti hostname dan username anda.
- Setelah itu build system dan jalankan perintah
home-manager switch --flake .
Jika mendapatkan error saat build home-manager, jalankan ini:
sudo chown nix flake.lock
sudo chgrp users flake.lock
Bagaimana cara update?
Sekarang system sudah mantap dengan flakes.
Setiap kali ingin melakukan update, masuk ke folder ~/.dotfiles
ini lalu jalankan perintah update berikut:
nix flake update
sudo nixos-rebuild switch --flake .
Tips
Push konfigurasi flake anda ke github biar lebih gampang dimanage.
Jangan pernah edit file
hardware-configuration.nix
jika tidak tahu apa yang akan dilakukan.
Jika mendapatkan pesan error seperti ini : warning: Git tree ‘/home/ is dirty, Jangan khawatir, tinggal lakukan git commit saja.
Demikian tutorial singkat cara menggunakan flakes untuk system dan home-manager nixos.
Semoga bermanfaat.
Related

Tutorial Step by Step Cara Build from Source dan Install DWMBLOCKS di Nixos

Trik Menjalankan Ruby On Rails di Nixos

Cara Install Aplikasi di Nixos dengan Perintah Nix Profile
