मान लीजिए मैं एक पैकेज का उपयोग स्थापित करने के लिए के लिए खोज nix-env
के --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
, तो निक्सोस कॉन्फ़िगरेशन को अपडेट करने के लिए आदेश देता है और घोषित रूप से निर्दिष्ट सभी सिस्टम-वाइड पैकेज स्थापित करता है , यह एक त्रुटि को समाप्त करता है :
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-font
इसके बजाय किस प्रिंट के साथ देखा जा सकता हैterminus_font
। वैकल्पिक हल उपयोग करने के लिए हैnix-env -qaP | grep terminus-font
, लेकिन इसका मतलब है कि आप आसानी से के उत्पादन में डंप नहीं कर सकतेnix-env -q --installed
मेंconfiguration.nix
।