Nixos Flakes Tutorial (system dan home-manager)
tentang cara setup system dan home manager menggunakan flakes di nixos.
JagoTekno.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.
Rafi
- 15 year+ of Linux user.
- 5 years+ blogger and web developer.
Jika artikel yang dibuatnya ternyata bermanfaat, support dengan cara