สมมติว่าฉันค้นหาสำหรับแพคเกจการติดตั้งโดยใช้nix-env's --queryการดำเนินงาน:
$ nix-env -qa 'aspell.*en'
aspell-dict-en-7.1-0
ฉันเขียนชื่อแพ็คเกจนี้ในไฟล์กำหนดค่า/etc/nixos/configuration.nixหลักของ NixOS :
environment.systemPackages = with pkgs; [
aspell-dict-en
];
แต่ถ้าฉันเรียกใช้sudo nixos-rebuild switchคำสั่ง NixOS เพื่ออัปเดตการกำหนดค่าและติดตั้งแพ็กเกจทั้งระบบที่ระบุโดยประกาศมันจะยกเลิกข้อผิดพลาด:
error: undefined variable ‘aspell-dict-en’ at /etc/nixos/configuration.nix:44:5
ฉันรู้ว่าสำหรับแพ็คเกจจำนวนมากถึงแม้ว่าจะไม่ได้ทั้งหมดชื่อที่nix-envส่งคืนและชื่อที่ควรระบุในenvironment.systemPackagesตัวเลือกการกำหนดค่าจะแตกต่างกัน แต่ฉันไม่เข้าใจตรรกะ ฉันจะติดตั้งแพ็กเกจที่พบได้nix-envอย่างไร
-Pตัวเลือกที่ไม่ได้ทำงานกับ--installedที่สามารถมองเห็นได้ด้วยnix-env -q --installed -P | grep terminusซึ่งพิมพ์แทนterminus-fontterminus_fontวิธีแก้ปัญหาคือการใช้nix-env -qaP | grep terminus-fontแต่มันหมายความว่าคุณไม่สามารถถ่ายโอนข้อมูลการส่งออกของเข้าไปในnix-env -q --installedconfiguration.nix