NixOS هي توزيعة Linux مبنية حول مدير حزم Nix، حيث تُعرَّف كل حالة النظام — الحزم والخدمات والمستخدمون — بشكل تصريحي في configuration.nix.
المتطلبات المسبقة
- VM/جهاز بـ 2 vCPU، 4 GiB ذاكرة، 20 GiB قرص.
nixos-minimal-x.yy-x86_64-linux.iso.
الخطوة 1: تشغيل ISO
sudo -i
loadkeys us
ping -c 2 nixos.org
الخطوة 2: التقسيم (UEFI + ext4)
parted /dev/nvme0n1 -- mklabel gpt
parted /dev/nvme0n1 -- mkpart ESP fat32 1MiB 512MiB
parted /dev/nvme0n1 -- set 1 esp on
parted /dev/nvme0n1 -- mkpart primary 512MiB 100%
mkfs.fat -F32 -n boot /dev/nvme0n1p1
mkfs.ext4 -L nixos /dev/nvme0n1p2
mount /dev/disk/by-label/nixos /mnt
mkdir -p /mnt/boot
mount /dev/disk/by-label/boot /mnt/boot
الخطوة 3: توليد الإعداد
nixos-generate-config --root /mnt
nano /mnt/etc/nixos/configuration.nix
إعداد بسيط:
{ config, pkgs, ... }:
{
imports = [ ./hardware-configuration.nix ];
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
networking.hostName = "nixos-host";
networking.networkmanager.enable = true;
time.timeZone = "Asia/Riyadh";
users.users.ops = {
isNormalUser = true;
extraGroups = [ "wheel" "networkmanager" ];
openssh.authorizedKeys.keys = [
"ssh-ed25519 AAAA... your@workstation"
];
};
services.openssh = {
enable = true;
settings = {
PermitRootLogin = "no";
PasswordAuthentication = false;
};
};
environment.systemPackages = with pkgs; [ vim git htop curl tmux ];
networking.firewall.allowedTCPPorts = [ 22 ];
system.stateVersion = "24.05";
}
الخطوة 4: التثبيت
nixos-install
reboot
الخطوة 5: الإقلاع الأول
ssh ops@nixos-host
sudo nixos-version
التحقق
nixos-version
nixos-rebuild list-generations
systemctl --failed
journalctl -p err -b
الخاتمة
مضيف NixOS عامل في ملفين — كل حزمة وكل مستخدم وكل خدمة صريحة.
Comments
0 total · 0 threads