الفكرة الأساسية من NixOS هي configuration.nix — ملف واحد يلتقط حالة النظام بالكامل. غيّره، شغّل nixos-rebuild switch، والنظام الحي يتوافق.
المتطلبات المسبقة
- تثبيت NixOS — دليل التثبيت.
الخطوة 1: أفعال rebuild
nixos-rebuild switch— بناء وتفعيل وتعيين كافتراضي للإقلاع.nixos-rebuild test— بناء وتفعيل، يتراجع عند إعادة التشغيل.nixos-rebuild boot— بناء وافتراضي، بدون تفعيل الآن.nixos-rebuild dry-activate— ماذا سيتغير؟
sudoedit /etc/nixos/configuration.nix
sudo nixos-rebuild switch
الخطوة 2: وحدات شائعة
Nginx:
services.nginx = {
enable = true;
recommendedTlsSettings = true;
virtualHosts."example.sa" = {
enableACME = true;
forceSSL = true;
locations."/" = { proxyPass = "http://127.0.0.1:3000"; };
};
};
security.acme = {
acceptTerms = true;
defaults.email = "ops@example.sa";
};
Postgres:
services.postgresql = {
enable = true;
package = pkgs.postgresql_16;
ensureDatabases = [ "skyline" ];
ensureUsers = [{ name = "skyline"; ensureDBOwnership = true; }];
};
Docker:
virtualisation.docker.enable = true;
users.users.ops.extraGroups = [ "docker" ];
جدار الحماية:
networking.firewall.allowedTCPPorts = [ 22 80 443 ];
الخطوة 3: الأجيال والتراجع
nixos-rebuild list-generations
sudo nixos-rebuild switch --rollback
sudo nix-env --switch-generation 42
sudo nix-collect-garbage --delete-older-than 30d
الخطوة 4: القنوات
sudo nix-channel --list
sudo nix-channel --add https://nixos.org/channels/nixos-24.05 nixos
sudo nix-channel --update
sudo nixos-rebuild switch --upgrade
الخطوة 5: البحث
nix search nixpkgs ripgrep
man configuration.nix
الخطوة 6: تقسيم الإعداد
imports = [
./hardware-configuration.nix
./users.nix
./web.nix
];
التحقق
sudo nixos-rebuild dry-activate
nixos-rebuild list-generations
systemctl --failed
الخاتمة
NixOS أسرع للتشغيل من التوزيعات الإلزامية — كل تغيير = code diff، وكل تراجع = أمر واحد.
Comments
0 total · 0 threads