pacman (বাংলা)

From ArchWiki

pacman প্যাকেজ ম্যানেজার হচ্ছে আর্চ লিনাক্সের একমাত্র সবচেয়ে অনন্য একটি উপাদান। এটি প্যাকেজের সাধারণ বাইনারি অবস্থাকে একটি সহজে ব্যবহারযোগ্য বিল্ড সিস্টেমে একত্রিত করে। প্যাকম্যান এর উদ্দেশ্য হচ্ছে প্যাকেজ ব্যবহারকে সহজলভ্য করা, হোক সেগুলো ওফিশিয়াল রিপোজিটরি থেকে অথবা ব্যবহারকারীর নিজস্ব তৈরি। প্যাকম্যান প্রধান সার্ভাররের সাথে প্যাকেজগুলোর সিঙ্ক্রোনাইজেশনের মাধ্যমে সিস্টেমকে হালনাগাদ রাখে। এছাড়া এই সার্ভার/ক্লায়েন্ট মডেল ব্যবহারকারীকে সাধারণ একটি কমান্ডের মাধ্যমে প্যাকেজসমূহ ডাউনলোড/ইন্সটল করার অনুমতি দেয়, এমনকি দরকারি নির্ভরশীল প্যাকেজগুলো (Package dependencies) সহ।

প্যাকম্যান প্যাকেজ ম্যানেজার লিখা/তৈরি করা হয়েছে সি প্রোগ্রামিং ল্যাঙ্গুয়েজ দ্বারা এবং এটি প্যাকেজিংয়ের জন্য bsdtar(1) টার ফরমেট ব্যবহার করে।

Tip: pacman প্যাকেজটিতে makepkg এবং vercmp(8) মতো টুলস রয়েছে। এছাড়াও pactree[broken link: invalid section] এবং checkupdates নামের দরকারি টুলস pacman-contrib প্যাকেজটিতে পাওয়া যায়। প্যাকম্যান এর সব টুলসগুলো দেখার জন্য pacman -Ql pacman pacman-contrib | grep -E 'bin/.+' কমান্ডটি ব্যবহার করুন।

ব্যবহার

প্যাকম্যান হচ্ছে আর্চ লিনাক্সের প্যাকেজ ম্যানেজার বা ব্যবস্থাপক, যা সিস্টেমে নতুন প্যাকেজ ইন্সটল, হালনাগাদ এবং প্যাকেজ মুছে ফেলার কাজ সম্পাদন করে। আরে জানতে পড়ুন pacman(8)

Tip: এখানে যারা লিনাক্সের অন্যান্য ডিস্ট্রিবিউশন ব্যবহার করেছেন, তারা প্যাকম্যানের সাথে অন্যান্য প্যাকেজ ম্যানেজারের তুলনা সম্পর্কিত Pacman Rosetta প্রবন্ধটি দেখতে পারেন।

প্যাকেজ ইন্সটল করা

একটি প্যাকেজ হচ্ছে এমন সংরক্ষণাগার যেখানে রয়েছে:

  • সফটওয়্যারটির সকল সংকলিত (কম্পাইলড) ফাইলসমূহ।
  • সফটওয়্যারটির সকল খুঁটিনাটি তথ্য, যেমন সফটওয়্যারটির নাম, সফটওয়্যারটির সংস্করণ (ভার্সন) এবং সফটওয়্যারটি কোন কোন প্যাকেজগুলোর ওপর নির্ভরশীল (Dependency)।
  • ইন্সটলেশন ফাইল এবং প্যাকম্যানের জন্য দিকনির্দেশনা সমূহ।
  • (ঐচ্ছিক) অতিরিক্ত কিছু ফাইলস (Optional dependency) যা সফটওয়্যারটির ব্যবহারকে সহজ করতে পারে।

সফটওয়্যার নিজে সংকলন (কম্পাইল) ও ইন্সটল না করে শুধুমাত্র প্যাকেজ ব্যবহারে রয়েছে বিভিন্ন সুবিধা:

  • সহজেই হালনাগাদ করা যায়: প্যাকম্যান সিস্টেমে বিদ্যমান প্যাকেজগুলোকে যত তাড়াতাড়ি হালনাগাদ আসে সেগুলোকে হালনাগাদ করে।
  • নির্ভরশীল প্যাকেজগুলো (Dependency) সামলানো: প্যাকম্যান স্বয়ংক্রিয়ভাবে সফটওয়্যারের ডিপেন্ডেন্সিগুলো সামাল দেয়, অর্থাৎ কোন প্যাকেজগুলো এই প্রোগ্রামটির জন্য প্রয়োজন। আপনাকে শুধুমাত্র প্রোগ্রামটির নাম বলে দিতে হবে এবং প্যাকম্যান প্রোগ্রামটিসহ এর সকল প্রয়োজনীয় প্যাকেজগুলো ইন্সটল করে নিবে।
  • পুরোপুরি মুছে ফেলা: একটি প্যাকেজে কতগুলো ফাইল রয়েছে প্যাকম্যানের কাছে সেটির সব তালিকা রয়েছে; এজন্য, কোনো প্যাকেজ মুছে ফেলার সময় অনাকাঙ্ক্ষিতভাবে এর কোনো ফাইল সিস্টেমে থেকে যাওয়ার সম্ভাবনা থাকে না।
Note:
  • প্যাকেজের হঠাৎ হঠাৎ অপশনাল ডিপেন্ডেন্সি থাকতে পারে, যেগুলো আ্যপলিকেশনটিকে বাড়তি কিছু সুবিধা দিয়ে থাকে কিন্তু আ্যপলিকেশনটি ব্যবহার করার জন্য অবশ্যই যে লাগবে তা না। যখন প্যাকেজ ইন্সটল করবেন, প্যাকম্যান প্যাকেজটির অপশনাল ডিপেন্ডেন্সিগুলোর তালিকা দেখাবে, কিন্তু সেগুলো pacman.log ফাইলে পাওয়া যাবে না। প্যাকেজের অপশনাল ডিপেন্ডেন্সি দেখার জন্য #প্যাকেজ ডেটাবেজ কুয়েরি করা[broken link: invalid section] কমান্ড ব্যবহার করুন।
  • কিছু কিছু ক্ষেত্রে দেখা যায় যে, আপনি একটি প্যাকেজ ইন্সটল করছেন যেটি আপনার বিশেষভাবে কোনো দরকার নেই, দরকার অন্যান্য প্যাকেজের (অপশনাল) ডিপেন্ডেন্সি হিসেবে, সেক্ষেত্রে ইন্সটল করার সময় --asdeps অপশনটি ব্যবহার করবেন। বিস্তারিত জানতে #ইন্সটলেশনের কারণ[broken link: invalid section] অংশটি দেখুন।
Warning: যখন আর্চ লিনাক্সে প্যাকেজ ইন্সটল করবেন, তখন সিস্টেম আপগ্রেড না করে প্যাকেজ তালিকা সিংক্রোনাইজ না করাই ভালো (উদাহরণস্বরূপ, যখন একটি প্যাকেজ আর রিপোজিটরিতে খুজে পাওয়া যায় না)। বাস্তবক্ষেত্রে, pacman -Syu package_name কমান্ড ব্যবহার না করে pacman -Sy package_name কমান্ড ব্যবহার করবেন না, কেননা এক্ষেত্রে ডিপেন্ডেন্সি সমস্যা তৈরি হতে পারে। চাইলে দেখতে পারেন System maintenance#Partial upgrades are unsupported এবং BBS#89328.

প্যাকেজ ইন্সটল করার পদ্ধতি

নির্দিষ্ট একটি প্যাকজ অথবা প্যাকেজের তালিকা (ডিপেন্ডেন্সি সহ) ইন্সটল করার জন্য এই কমান্ডটি ব্যবহার করুন:

# pacman -S package_name1 package_name2 ...

regex (Regular Expression) দিয়ে প্যাকেজসমূহ ইন্সটল করতে (আরো জানতে এই ফোরাম থ্রেডটি দেখুন):

# pacman -S $(pacman -Ssq package_regex)

কখনও কখনও একটি প্যাকেজের একাধিক ভার্শন বিভিন্ন রিপোজিটরিতে (e.g extra and testing) থাকতে পারে। ধরা যাক, extra রিপোজিটরির ভার্শনটি ইন্সটল করতে প্যাকেজের নামের আগে রিপোজিটরি অবশ্যই সংজ্ঞায়িত থাকতে হবে:

# pacman -S extra/package_name

একই প্যাটার্নযুক্ত নামের প্যাকেজ ইন্সটল করার জন্য