কনফিগারেশন.নিক্সে এটি ইনস্টল করতে একটি নিক্স প্যাকেজের নাম কীভাবে পাওয়া যায়?


21

ধরুন আমি একটি প্যাকেজ ব্যবহার ইনস্টল করার জন্য অনুসন্ধান nix-envএর --queryঅপারেশন:

$ nix-env -qa 'aspell.*en'
aspell-dict-en-7.1-0

আমি এই প্যাকেজটির নামটি /etc/nixos/configuration.nixনিক্সস এর মূল কনফিগারেশন ফাইলটিতে লিখেছি :

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?

উত্তর:


20

নিক্সস সম্প্রদায়ের তিনটি ম্যানুয়াল রয়েছে, আপনি আটকে থাকলে সর্বদা প্রথমে তাদের সাথে পরামর্শ করুন:

নিক্সের প্রতিটি প্যাকেজ একটি নিক এক্সপ্রেশন দ্বারা নির্দিষ্ট করা হয়। নিক্স এক্সপ্রেশন হ'ল কিছু পাঠ, যা নিক্স ভাষায় লেখা হয়, সাধারণত এক্সটেনশান সহ কোনও ফাইলে থাকে .nix

প্রতিটি প্রকাশের তথাকথিত "প্রতীকী নাম" থাকে, আপনি যখন ব্যবহার করেন তখন একটি মানব-পঠনযোগ্য নাম মুদ্রিত হয় nix-env। দেখুন নমুনা তুষার অভিব্যক্তি । নিক্স নিজেই এই প্রতীকী নামটি অভ্যন্তরীণভাবে কোথাও ব্যবহার করে না, তাই আপনার প্যাকেজটির নাম দেওয়া হয়েছে কিনা aspell-dict-enতা বিবেচ্য নয় এটি কেবল আপনার, মানুষের, সুবিধার জন্য।

প্রকৃতপক্ষে যা গুরুত্বপূর্ণ তা হ'ল তথাকথিত "অ্যাট্রিবিউট পাথ"। সুতরাং আপনার বিভ্রান্তি প্রতীকী নাম এবং বৈশিষ্ট্যযুক্ত পথের মধ্যে between প্রতিটি প্যাকেজের একটি বৈশিষ্ট্যযুক্ত পাথ থাকে, যা আপনি ঘোষিত প্যাকেজ পরিচালনাenvironment.systemPackages ব্যবহার করে সিস্টেম-ওয়াইড ইনস্টল করতে কনফিগারেশন বিকল্পে ব্যবহার করতে পারেন ।

আপনার প্যাকেজটির বৈশিষ্ট্যযুক্ত পথটি খুঁজে পেতে, -Pআপনার ক্যোয়ারিতে আরও একটি পতাকা যুক্ত করুন :

$ nix-env -qaP 'aspell.*en'
nixos.aspellDicts.en  aspell-dict-en-7.1-0

আপনার nix-envপ্রতিদিনের ভিত্তিতে ব্যবহার করা স্বাচ্ছন্দ্যযুক্ত হওয়া উচিত , তাই কল এবং বিকল্পগুলির nix-envসাথে অনুশীলন করুন। তবে আপনি প্যাকেজগুলি ব্রাউজ করতে পারেন এবং নিক্স প্যাকেজ অনুসন্ধানে তাদের বৈশিষ্ট্যগুলি অনলাইনে খুঁজে পেতে পারেন । টাইপ করুন , ক্লিক করুন এবং আপনি ইনস্টল কমান্ডের অংশ হিসাবে অ্যাট্রিবিউট পাথ সহ বিভিন্ন প্যাকেজের বৈশিষ্ট্যগুলি দেখতে পাবেন:--query--installaspellaspell-dict-en

$ nix-env -iA nixos.pkgs.aspellDicts.en

এখন আপনি এই বৈশিষ্ট্যটির পথটি এতে প্রবেশ করতে পারেন /etc/nixos/configuration.nix:

environment.systemPackages = with pkgs; [
  aspellDicts.en
];

তারপরে চালিয়ে সিস্টেম আপডেট করুন sudo nixos-rebuild switch


4
দুর্ভাগ্যক্রমে, -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
সুজান ডুপোরন

4

আপনি যদি ডেটা সায়েন্সের জন্য নিক্সস ব্যবহার করছেন:

পাইথন মডিউল:

nix-env -qaP .\*pylint.\*

অথবা

py_pkgs="nix_packages_py35.txt"
nix-env -qaP | grep -i python36 > ${py_pkgs}
grep pandas ${py_pkgs}

বা যদি আপনার বিশেষত আর প্যাকেজগুলি / লাইব্রেরিগুলির জন্য অনুসন্ধান করা হয়

nix-env -f "<nixpkgs>" -qaP -A rPackages .\*tidyverse.\*

বিকল্পভাবে আপনি এর সাথে ig npm প্যাকেজ পাবেন:

nix-env -qaPA 'nixos.nodePackages'

pkgs অনুসন্ধানের জন্য একটি ওয়েবসাইটও রয়েছে


1
nix-env -v -qaP '*' | grep "nvim"

আমি nix-env -v -qaP '*'কোনও ফাইলে ফলাফল সংরক্ষণ করতে পারি (সাধারণত ফিরে আসতে কিছুটা সময় লাগে)।


মনে রাখবেন, নিক্স-এনভিভ মনে হয় haskellPackages(এবং সম্ভবত অন্যরা) এর অধীনে জিনিসগুলি উপেক্ষা করে ।


নিক্স-এনভিভি অনুসন্ধান বর্তমানে বেশ হতাশার কারণ এটি 5+ সেকেন্ড সময় নেবে এবং তারপরে আবার আসবে error: regex error...


0

মিরঝাঁস বিকল্পগুলিতে অতিরিক্ত : আপনি পছন্দ করতে /nix/storeপারেন grep -irw "programm-name" /nix/store। তবে এটি কিছুটা বিভ্রান্ত হতে পারে। এছাড়াও আপনার হোম ডিরেক্টরিতে আপনি .local/shareইনস্টল করা প্রোগ্রাম / অ্যাপ্লিকেশনগুলির জন্য ডিরেক্টরিটি পরীক্ষা করতে পারেন ।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.