Sudo Blog
81 subscribers
63 photos
2 videos
35 files
148 links
Linuxdagi hayotim
Download Telegram
Nixlangan project starterkit kerak bo'lsa shattan olorasizlar

https://github.com/bleur-org/templates
Forwarded from bahrom04
NixOS konfig yozdik va check qilish uchun nix flake check buyrugʻini ishlatamiz. Xinux oʻrnatayotganingizda foydalanuvchi tanloviga qarab xinux-org/modules reposidagi konfiglar orasidan modullar tanlanib olinadi. M.u: efiboot yo biosboot, GNOME yo KDE, vahokazo

Modullarni yozish jarayonida biz hammasini ishlaydimi yo yoʻqmi deb nix flake check qilib tekshira olmaymiz. Nega? chunki check qilish uchun nix konfigimizda outputs.nixosConfiguration (configuration.nix) qismi, foydalanuvchi, home-manager, hardware-configurationʼlar hali yaratilmagan boʻladi. Uning uchun virtual NixOS VM kerak boʻladi va ichiga minimal konfig yozib pkgs.testers.runNixOSTest orqali testlasak boʻladi.

Misol:
{
inputs,
pkgs,
...
}:
pkgs.testers.runNixOSTest {
name = "Xinux efiboot config test";
nodes.machine =
{ ... }:
{
imports = with inputs.self; [
nixosModules.efiboot
nixosModules.gnome
nixosModules.kernel
nixosModules.metadata
nixosModules.networking
nixosModules.packagemanagers
nixosModules.pipewire
nixosModules.printing
nixosModules.xinux
./configuration.nix
];
};

node = {
pkgsReadOnly = false;
specialArgs = { inherit inputs; };
};

testScript = ''
machine.start()
machine.wait_for_unit("multi-user.target")
machine.succeed("uname -a")
machine.succeed("echo Modules succesfully tested")
'';
}


Xohlasak QEMUʼda UI chiqarib testlasak boʻladi lekin bizga faqat CI uchun kerakligi bois nix flake check --system x86_64-linux testdan oʻtishi bilan cheklanib qolamiz.

Ishlatilgan kod: http://github.com/xinux-org/modules/blob/main/checks/xinux-efiboot/default.nix
Dok: https://nix.dev/tutorials/nixos/integration-testing-using-virtual-machines.html
nix develop -c $SHELL


Bu komanda develop environment yaralganda o'sha develop environment + o'ziningizning shell'ingizda qolishingizni taminlar ekan.
Forwarded from Shaxzod Qudratov
shu zsh plugin ancha ishimni osonlashtiradi, o'ylab ham o'tirmayman
@rafanochi nixosda flutter loyiha uchun minimal config tayyorlab berdilar.

Buni ishlatish uchun loyiha uchun bo'sh folder yaratamiz shu flake.nix'ni o'sha yerga tashlaymiz.

configuration.nix'ga manabuni qo'shamiz

programs.nix-ld.enable = true;
programs.nix-ld.libraries = with pkgs;
[
aapt
];


keyin flake.nix turgan folderga o'tib

nix develop -c $SHELL


flutter create .



Faqat x86_64 da test qilib ko'rdik.
sudo nixos-rebuild switch --flake ~/dev/nix-config/#arava

Buyruq izohi:
​sudo: Tizim sozlamalarini o'zgartirish uchun admin huquqi kerak.
​--flake: Nix-ga flake ishlatayotganimizni bildiradi.
​~/dev/nix-config/: Flake faylingiz joylashgan papka.
#arava: Bu flake.nix faylingiz ichidagi nixosConfigurations qismida yozilgan hostname nomingiz. (Agar u yerda boshqa nom ishlatgan bo'lsangiz, o'sha nomni yozing).
👍1
Bo'sh vaqt topib shuni ishlatib ko'rish kerak ekan.

https://github.com/nvim-flutter/flutter-tools.nvim
NixOSʻda VM ishlatmoqchi boʻlsalaring quickemu zoʻr variant ekan.

1. quickemuni oʻranatasiz

Oʻrnatish uchun havola

2. kerakli distroni download qilish ham oʻzida bor ekan. Misol uchun debian 13.3.0 ni oʻnratish

quickget debian 13.3.0 gnome


3. Oʻrnab boʻlganidan keyin esa ishga tushirib yuboramiz.

quickemu --vm debian-13.3.0-gnome.conf

Tamom
👍1
NixOSʼda debug qilmoqchi boʻlsangiz loglarni yaxshiroq oʻqimoqchi boʻlsangiz komanda oxirigi

--show-trace -L


qoʻyib yuborishni maslahat beraman, --show-trace error boʻlsa chiqaradi -L loglarni chiqaradi
👍1