নিক্স - লিনাক্সের জন্য বিশুদ্ধ কার্যকরী প্যাকেজ ম্যানেজার


নিক্স নির্ভরযোগ্য এবং পুনরুত্পাদনযোগ্য প্যাকেজ পরিচালনার জন্য ডিজাইন করা একটি শক্তিশালী, খাঁটিভাবে কার্যকরী প্যাকেজ ম্যানেজমেন্ট সিস্টেম, GNU LGPLv2.1 এর শর্তাবলীতে প্রকাশিত। এটি নিক্সস-এর প্রাথমিক প্যাকেজ পরিচালন সিস্টেম, এটি একটি কম পরিচিত লিনাক্স বিতরণ।

বিকাশকারী কোন প্রোগ্রামিং ভাষা এবং সরঞ্জাম ব্যবহার করছেন তা নির্বিশেষে নিক্স পারমাণবিক আপগ্রেড এবং রোলব্যাকস, প্যাকেজ ইনস্টলেশনের একাধিক সংস্করণ, বহু-ব্যবহারকারী প্যাকেজ পরিচালনা এবং একটি প্যাকেজের জন্য বিল্ড এনভায়রনমেন্টগুলির অনায়াস সেটআপ অফার করে।

নিক্সের অধীনে প্যাকেজগুলি "নিক্স এক্সপ্রেশন" নামক একটি কার্যকরী প্যাকেজ ভাষা থেকে তৈরি করা হয়। প্যাকেজ পরিচালনার এই কার্যকরী পদ্ধতির গ্যারান্টি রয়েছে যে একটি প্যাকেজ ইনস্টল বা আপগ্রেড করা অন্য প্যাকেজগুলি ভেঙে ফেলতে পারে না।

নিক্সের মাল্টি-ইউজার সমর্থনও রয়েছে, যা সূচিত করে যে স্বাভাবিক (বা অ-সুবিধাবঞ্চিত) সিস্টেম ব্যবহারকারীরা নিরাপদে প্যাকেজ ইনস্টল করতে পারে এবং প্রতিটি ব্যবহারকারী একটি প্রোফাইল দ্বারা চিহ্নিত করা হয় (ব্যবহারকারীর পাথে প্রদর্শিত নিক্স স্টোরের প্যাকেজগুলির সংগ্রহ)।

যদি কোনও ব্যবহারকারী কোনও প্যাকেজ ইনস্টল করে থাকে, অন্য ব্যবহারকারী যদি একই প্যাকেজটি ইনস্টল করার চেষ্টা করে তবে প্যাকেজটি দ্বিতীয়বার নির্মিত বা ডাউনলোড হবে না।

এটি বর্তমানে লিনাক্স (i686, x86_64) এবং ম্যাক ওএস এক্স (x86_64) সমর্থন করে। তবে এটি মোটামুটি বহনযোগ্য, আপনি বেশিরভাগ প্ল্যাটফর্মগুলিতে এটি চেষ্টা করতে পারেন যা পসিক্স থ্রেড সমর্থন করে এবং একটি সি ++ 11 সংকলক রয়েছে have

এই নিবন্ধে, আমরা কীভাবে ইনস্টল করব (মাল্টি ইউজার মোডে) এবং লিনাক্সে নিক্স প্যাকেজ ম্যানেজারটি ব্যবহার করব তা দেখাব। আমরা সাধারণত ব্যবহৃত সরঞ্জামগুলির সাথে সম্পর্কিত কয়েকটি বুনিয়াদি প্যাকেজ পরিচালনার কাজগুলি নিয়ে আলোচনা করব।

কীভাবে লিনাক্সে নিক্স প্যাকেজ ম্যানেজার ইনস্টল করবেন

আমরা নিক্সের সর্বশেষতম সংস্করণটি (লেখার সময় v2.1.3) বহু ব্যবহারকারী মোডে ইনস্টল করব। ভাগ্যক্রমে, একটি প্রস্তুত প্রস্তুত ইনস্টলেশন স্ক্রিপ্ট রয়েছে যা আপনি আপনার শেল থেকে আপনার সিস্টেমে নিম্নলিখিত কার্ল কমান্ডটি ব্যবহার করে সাধারণ ব্যবহারকারী হিসাবে চালাতে পারবেন।

$ sh <(curl https://nixos.org/nix/install) --daemon

উপরের কমান্ডটি চালনা করা সর্বশেষতম নিক্স বাইনারি টারবাল ডাউনলোড করবে এবং স্ক্রিনশটটিতে প্রদর্শিত হিসাবে আপনি বহু-ব্যবহারকারী নিক্স ইনস্টলেশন স্ক্রিনে উঠবেন।

ইনস্টলেশন প্রক্রিয়া চলাকালীন কী ঘটবে তার বিশদ তালিকা দেখতে y টাইপ করুন এবং এন্টার টিপুন। আপনি যদি সন্তুষ্ট হন এবং চালিয়ে যাওয়ার জন্য প্রস্তুত হন তবে y টাইপ করুন এবং এন্টার টিপুন।

স্ক্রিপ্টটি প্রয়োজন হিসাবে অনেকবার sudo কমান্ডের আবেদন করবে। আপনাকে y জবাব দিয়ে এবং এন্টার টিপে সুডো ব্যবহার করার অনুমতি দেওয়া দরকার।

তারপরে ইনস্টলারটি কয়েকটি পরীক্ষা চালাবে এবং একটি নিক্স কনফিগারেশন প্রতিবেদন তৈরি করবে, ব্যবহারকারী আইডি 30001 এবং 30032 এর মধ্যে বিল্ড ব্যবহারকারী তৈরি করবে এবং 30000 গ্রুপের আইডি সহ একটি গোষ্ঠী তৈরি করবে p এটি বিভিন্ন বিল্ড ব্যবহারকারীদের জন্য বিল্ড গ্রুপগুলি সেট আপ করবে, নিক্সের প্রাথমিক ডিরেক্টরি কাঠামো তৈরি করবে।

এটি/etc/bashrc, এবং zsh- এর জন্য/etc/zshrc) ফাইল উপস্থিত থাকলে তা সংশোধন করবে। নোট করুন যে এটি প্রথমে উল্লিখিত ফাইলগুলিকে একটি .bc------এর আগে এক্স এক্সটেনশন দিয়ে ব্যাক আপ করে এবং ইনস্টলারটি /etc/profile.d/nix.sh ফাইলটিও তৈরি করে।

ইনস্টলারটি নিক্স-ডেমন সার্ভিস এবং নিক্স-ডেমন সকেট পরিষেবাও সেটআপ করবে, নিক্স-ডেমনের জন্য সিস্টেমড ইউনিট লোড করবে এবং দুটি বর্ণিত পরিষেবা শুরু করবে।

ইনস্টলেশনটি সম্পূর্ণ হয়ে গেলে, নিক্স ব্যবহার শুরু করতে আপনাকে একটি নতুন টার্মিনাল উইন্ডো খুলতে হবে। বিকল্পভাবে, সাম্প্রতিক পরিবর্তনগুলি প্রয়োগ করতে আপনার শেলটি বন্ধ করুন এবং আবার খুলুন। তারপরে ফাইলটি /etc/profile.d/nix.sh উত্স করুন (কারণ এটি শেল স্টার্টআপ ফাইল নয়, একটি নতুন শেল খোলার ফলে এটি উত্সপ্রাপ্ত হবে না)।

$ source /etc/profile.d/nix.sh

এরপরে, নিক্স পরিচালনার জন্য প্রয়োজনীয় অফিসিয়াল প্রকল্প ওয়েবসাইট থেকে কয়েকটি পাথ ডাউনলোড করতে নিম্নলিখিত কমান্ডটি চালান। সমস্ত পাথগুলি ডাউনলোড করে সঠিক জায়গাগুলিতে অনুলিপি করার পরে, আপনি স্ক্রিনশটটিতে প্রদর্শিত সিস্টেম এবং নিক্স ইনস্টলেশন টাইপের সারাংশ দেখতে পাবেন।

$ nix-shell -p nix-info --run "nix-info -m"

লিনাক্সে কীভাবে নিক্স প্যাকেজ ম্যানেজার ব্যবহার করবেন

নিক্সের অধীনে, প্যাকেজ পরিচালনা nix-env ইউটিলিটি দ্বারা সম্পন্ন হয়। এটি প্যাকেজ ইনস্টল করতে, আপগ্রেড করতে এবং মুছে ফেলার জন্য/মুছে ফেলার জন্য এবং কোন প্যাকেজ ইনস্টল করা আছে বা ইনস্টলেশনের জন্য উপলব্ধ তা অনুসন্ধান করতে ব্যবহৃত হয়।

সমস্ত প্যাকেজগুলি একটি নিক্স চ্যানেলে অবস্থিত, যা একটি ইউআরএল যা নিক্স এক্সপ্রেশনগুলির সংকলন এবং বাইনারি ক্যাশে একটি পয়েন্টার উভয় সমন্বিত একটি সংগ্রহস্থলকে নির্দেশ করে।

ডিফল্ট চ্যানেলটি নিক্সপেকস এবং সাবস্ক্রাইব করা চ্যানেলগুলির তালিকা ~/.nix- চ্যানেলে সংরক্ষণ করা হয়, আপনি নিম্নলিখিত কমান্ডটি ব্যবহার করে তাদের তালিকাভুক্ত করতে পারেন (কোনও আউটপুট মানে চ্যানেল নয়)।

$ nix-channel --list

নিক্স চ্যানেল যুক্ত করতে নিম্নলিখিত কমান্ডটি ব্যবহার করুন।

$ nix-channel --add https://nixos.org/channels/nixpkgs-unstable

কোনও প্যাকেজ ইনস্টল করার আগে, নিক্স চ্যানেল আপডেট করে শুরু করুন; এটি এপিটি প্যাকেজ ম্যানেজারের অধীনে অ্যাপ্ট আপডেট চালানোর অনুরূপ।

$ nix-channel --update

নিম্নলিখিত কমান্ডটি ব্যবহার করে ইনস্টলেশনের জন্য কোন প্যাকেজ উপলব্ধ রয়েছে তা জানতে পারেন।

$ nix-env -qa

এই উদাহরণে, আমরা গ্রেপ ইনস্টল করব প্যাকেজটি প্রদর্শিত হিসাবে ইনস্টল করার জন্য উপলব্ধ এটি সন্ধান করতে।

$ nix-env -qa | grep "apache-tomcat"

প্যাকেজ ইনস্টল করতে, প্যাকেজ সংস্করণ উল্লেখ করে নিম্নলিখিত কমান্ডটি ব্যবহার করুন, উদাহরণস্বরূপ অ্যাপাচি-টমক্যাট -9.0.2।

$ nix-env -i apache-tomcat-9.0.2

স্থানীয় সিস্টেমে নিক্স স্টোরটিতে প্যাকেজগুলি সঞ্চয় করে, এটি ডিফল্টরূপে/nix/store ডিরেক্টরিতে থাকে, যেখানে প্রতিটি প্যাকেজের নিজস্ব অনন্য সাব ডিরেক্টরি রয়েছে। উদাহরণস্বরূপ, অ্যাপাচি-টমক্যাট প্যাকেজগুলি এতে সংরক্ষণ করা হয়:

/nix/store/95gmgnxlrcpkhlm00fa5ax8kvd6189py-apache-tomcat-9.0.2

এই পথে, 95gmgnxlrcpkhlm00fa5ax8kvd6189py এলোমেলো অক্ষর প্যাকেজটির জন্য একটি অনন্য সনাক্তকারী যা এটির সমস্ত নির্ভরতা বিবেচনা করে।

নিম্নলিখিত কমান্ডের সাহায্যে ইনস্টল করা প্যাকেজ তালিকাভুক্ত করতে পারেন।

$ nix-env -q

অ্যাপাচি-টমক্যাট প্যাকেজটি আপগ্রেড করতে আপনি প্রদর্শিত হিসাবে -u আপগ্রেড সুইচটি ব্যবহার করতে পারেন।

$ nix-env -u apache-tomcat

আপনি যদি অ্যাপাচি-টমক্যাটটি মুছে/মুছতে চান তবে -e পতাকাটি ব্যবহার করুন। এখানে, প্যাকেজটি তাত্ক্ষণিকভাবে সিস্টেম থেকে মুছে ফেলা হয় না, এটি কেবল অব্যবহৃত হিসাবে রেন্ডার করা হয়। এটি দরকারী কারণ আপনি কোনও রোলব্যাক করতে চান, বা এটি অন্য ব্যবহারকারীর প্রোফাইলে থাকতে পারে।

$ nix-env -e apache-tomcat

একটি প্যাকেজ অপসারণ করার পরে, আপনি নিক্স-সংগ্রহ-আবর্জনা ইউটিলিটি দিয়ে কিছু আবর্জনা সংগ্রহ করতে পারেন।

$ nix-collect-garbage

কীভাবে লিনাক্সে নিক্স প্যাকেজ ম্যানেজার সরান

নিক্স আনইনস্টল করতে, একসাথে সমস্ত নিক্স সম্পর্কিত ফাইল সরান।

$ sudo rm -rf /etc/profile/nix.sh /etc/nix /nix ~root/.nix-profile ~root/.nix-defexpr ~root/.nix-channels ~/.nix-profile ~/.nix-defexpr ~/.nix-channels

সিস্টেমেডযুক্ত সিস্টেমে সমস্ত নিক্স সম্পর্কিত পরিষেবাগুলি বন্ধ করতে এবং সেগুলি অক্ষম করতে নিম্নলিখিত কমান্ডগুলি চালান।

$ sudo systemctl stop nix-daemon.socket
$ sudo systemctl stop nix-daemon.service
$ sudo systemctl disable nix-daemon.socket
$ sudo systemctl disable nix-daemon.service
$ sudo systemctl daemon-reload

এছাড়াও, আপনার এই ফাইলগুলিতে নিক্সের কোনও রেফারেন্স মুছে ফেলতে হবে:/etc/প্রোফাইল,/etc/bashrc, এবং/etc/zshrc।

আরও তথ্যের জন্য উপরোক্ত ইউটিলিটিগুলির ম্যান পেজগুলি আমরা দেখেছি।

$ man nix-channel
$ man nix-env

আপনি প্রকল্পের ওয়েবসাইটে নিক্স প্যাকেজ ম্যানেজার ডকুমেন্টেশনগুলি পেতে পারেন: https://nixos.org/nix/।

নিক্স নির্ভরযোগ্য এবং পুনরুত্পাদনযোগ্য প্যাকেজ পরিচালনার জন্য ডিজাইন করা খাঁটি কার্যকরী প্যাকেজ ম্যানেজার। এটি প্যাকেজ পরিচালনার একটি আকর্ষণীয় ধারণা সরবরাহ করে, লিনাক্সে সাধারণত ব্যবহৃত সরঞ্জাম যেমন এপিটি এবং অন্য অনেকের কাছে খুব স্বতন্ত্র।

এই নিবন্ধে, আমরা দেখলাম যে কীভাবে মাল্টি ইউজার মোডে নিক্স ইনস্টল করতে হয় এবং নিক্সের সাথে কীভাবে প্যাকেজ পরিচালনা করতে হয় তা নিয়ে আলোচনা করেছি। আমাদের সাথে আপনার চিন্তাভাবনা ভাগ করুন বা নীচের মন্তব্য ফর্মের মাধ্যমে কোনও প্রশ্ন জিজ্ঞাসা করুন। শেষ অবধি, একটি আসন্ন নিবন্ধে, আমরা আরও নিক্স প্যাকেজ পরিচালনার আদেশগুলি ব্যাখ্যা করব। ততক্ষণ, সংযুক্ত থাকুন।