উইন্ডোজ, ম্যাকওএস এবং অ্যান্ড্রয়েডের বিপরীতে, উবুন্টু-এবং লিনাক্সের সফ্টওয়্যার সাধারণভাবে-একক প্যাকেজ হিসাবে বিতরণ করা হয় না। পরিবর্তে, যখন আপনি একটি অ্যাপ্লিকেশন ইনস্টল করেন, তখন আপনার সিস্টেমের প্যাকেজ ম্যানেজার একাধিক প্যাকেজ ডাউনলোড করে, যার মধ্যে প্রধান অ্যাপ প্যাকেজ এবং এর নির্ভরতা রয়েছে। যাইহোক, এটি শুধুমাত্র লিনাক্সে প্রথাগত প্যাকেজ ইন্সটলেশনের ক্ষেত্রে সত্য, অর্থাৎ প্যাকেজ ম্যানেজার ব্যবহার করে।
একটি ইনস্টলেশনের সময় কোন অতিরিক্ত নির্ভরতা ডাউনলোড করা হয় তা জানা শিক্ষানবিশ এবং উন্নত ব্যবহারকারীদের জন্য একইভাবে উপকারী হতে পারে। এইভাবে, একজনের তাদের সিস্টেমে ইনস্টল করা প্যাকেজগুলির উপর সম্পূর্ণ নিয়ন্ত্রণ থাকে৷
চলুন দেখে নেওয়া যাক কিভাবে আপনি উবুন্টুতে একটি প্যাকেজের নির্ভরতা পরীক্ষা করতে পারেন।
প্যাকেজ নির্ভরতা কি?
নির্ভরশীলতাগুলি লিনাক্সে একটি অ্যাপ্লিকেশনের সঠিকভাবে কাজ করার জন্য প্রয়োজনীয় প্যাকেজগুলিকে সমর্থন করে৷ উদাহরণস্বরূপ, আপনি যদি উবুন্টুতে ভিএলসি মিডিয়া প্লেয়ার ডাউনলোড করতে চান, APT কিছু অতিরিক্ত প্যাকেজ যেমন libc6 ইনস্টল করবে এবং gcc , প্রাথমিক "vlc ছাড়াও " প্যাকেজ৷ একটি নির্ভরতা এর নির্ভরতা হিসাবে অন্যান্য প্যাকেজও থাকতে পারে, তাই, একটি শ্রেণীবদ্ধ কাঠামো গঠন করে৷
যেহেতু লিনাক্স প্যাকেজগুলি পরস্পর নির্ভরশীল, প্রায় প্রতিটি সফ্টওয়্যারের জন্য অতিরিক্ত প্যাকেজ প্রয়োজন যা আপনাকে আপনার সিস্টেমে ইনস্টল করতে হবে৷
যদিও এপিটি-এর মতো প্যাকেজ ম্যানেজাররা উল্লিখিত নির্ভরতাগুলির পরিচালনা এবং ইনস্টলেশন স্বয়ংক্রিয়ভাবে পরিচালনা করে, আপনি যখন উত্স থেকে ম্যানুয়ালি প্যাকেজ তৈরি করার চেষ্টা করেন তখন ত্রুটি ঘটে। যাইহোক, আপনি apt install ব্যবহার করে আপনার সিস্টেমে প্রয়োজনীয় নির্ভরতা ইনস্টল করে এই ধরনের ত্রুটিগুলি সমাধান করতে পারেন আদেশ।
কিভাবে লিনাক্সে প্যাকেজ নির্ভরতা পরীক্ষা করবেন
সৌভাগ্যবশত, উবুন্টুতে, একটি প্যাকেজের নির্ভরতার তালিকা পাওয়ার বিভিন্ন উপায় রয়েছে। APT, উবুন্টু এবং ডেবিয়ান-ভিত্তিক ডিস্ট্রোতে ডিফল্ট প্যাকেজ ম্যানেজার, একটি প্যাকেজের নির্ভরতা-সম্পর্কিত তথ্য পেতে একাধিক কমান্ড অফার করে।
এপিটি প্যাকেজ ম্যানেজার ব্যবহার করা
আপনি একটি প্যাকেজের সাথে সম্পর্কিত নির্ভরতাগুলির একটি তালিকা পেতে উবুন্টুতে APT ব্যবহার করতে পারেন। কমান্ডের মৌলিক সিনট্যাক্স হল:
sudo apt depends packagename
উদাহরণস্বরূপ, রিদমবক্স-এর জন্য নির্ভরতা পরীক্ষা করতে প্যাকেজ:
sudo apt depends rhythmbox
নির্ভরতাগুলির তালিকা ছাড়াও, আউটপুটে প্রস্তাবিত এবং প্রস্তাবিত প্যাকেজগুলিও অন্তর্ভুক্ত থাকবে যা আপনি রিদমবক্স এর পাশাপাশি ইনস্টল করতে পারেন .
বিকল্পভাবে, আপনি apt-cacheও ব্যবহার করতে পারেন একই আউটপুট পেতে কমান্ড।
sudo apt-cache depends rhythmbox
একটি নির্দিষ্ট প্যাকেজ সম্পর্কিত অতিরিক্ত তথ্য পেতে, শো ব্যবহার করুন পদ্ধতির পরিবর্তে নির্ভর করে .
sudo apt show rhythmbox
sudo apt-cache show rhythmbox
আউটপুট:
dpkg ব্যবহার করে লিস্টিং নির্ভরতা
আপনি যদি আপনার সিস্টেমে একটি DEB প্যাকেজ ডাউনলোড করে থাকেন এবং প্যাকেজের সাথে কোন নির্ভরতাগুলি ইনস্টল করা হবে তা জানতে চান, আপনি -I ব্যবহার করতে পারেন (কপিটালাইজড i, ছোট হাতের L নয়) অথবা --তথ্য কমান্ড সহ পতাকা।
sudo dpkg -I /path/to/package.deb
sudo dpkg --info /path/to/package.deb
...যেখানে /path/to/package.deb DEB ফাইলের পরম বা আপেক্ষিক পথ।
আউটপুট প্যাকেজের আকার, উৎস এবং অন্যান্য প্রয়োজনীয় তথ্য এবং নির্ভরতার তালিকা প্রদর্শন করবে।
একটি ইনস্টল করা প্যাকেজের নির্ভরতার তালিকা পেতে, -s ব্যবহার করুন dpkg সহ পতাকা। যেমন:
sudo dpkg -s firefox
আউটপুট:
apt-rdepends ব্যবহার করা
আরো বিস্তারিত আউটপুট পেতে, আপনি apt-rdepends ইউটিলিটি ব্যবহার করতে পারেন। যেহেতু এটি বেশিরভাগ লিনাক্স ডিস্ট্রিবিউশনে আগে থেকে ইনস্টল করা হয় না, তাই আপনাকে এটিকে APT ব্যবহার করে উবুন্টুতে ম্যানুয়ালি ইনস্টল করতে হবে।
sudo apt install apt-rdepends
একটি প্যাকেজের জন্য নির্ভরতা ট্রি পেতে নিম্নলিখিত কমান্ড বিন্যাসটি ব্যবহার করুন:
apt-rdepends packagename
যেমন:
apt-rdepends vlc
আউটপুট:
উত্পন্ন আউটপুট সাধারণত দীর্ঘ হয় যতক্ষণ না apt-rdepends নির্ভরতার একটি সম্পূর্ণ শ্রেণিবিন্যাস ট্রি প্রদর্শন করে, যার মানে আপনি একটি নির্ভরতার নির্ভরতার তালিকাও পাবেন।
আপনি প্যাকেজগুলির একটি তালিকাও পেতে পারেন যা একটি নির্দিষ্ট প্যাকেজের উপর নির্ভর করে। উদাহরণস্বরূপ, কোন প্যাকেজগুলির libc প্রয়োজন তা পরীক্ষা করতে নির্ভরতা হিসাবে:
apt-rdepends -r libc
আউটপুট:
উল্টো-নির্ভর ইউটিলিটি
যদিও বিপরীত নির্ভরতা বৈশিষ্ট্য (-r apt-rdepends এর flag) প্রত্যাশিত থেকে ভালো কাজ করে, একটি প্যাকেজের বিপরীত নির্ভরতা বের করতে আপনি ব্যবহার করতে পারেন এমন আরেকটি ইউটিলিটি রয়েছে। বিপরীত-নির্ভর কমান্ড হল ubuntu-dev-tools-এর একটি অংশ প্যাকেজ, এবং ব্যবহার করে ডাউনলোড করা যেতে পারে:
sudo apt install ubuntu-dev-tools
কমান্ডের ডিফল্ট সিনট্যাক্স হল:
reverse-depends options packagename
...যেখানে বিকল্প আপনি কমান্ড এবং প্যাকেজের নাম ব্যবহার করতে পারেন এমন পতাকা আপনি যে প্যাকেজটির জন্য নির্ভরতা পরীক্ষা করতে চান সেটির নাম।
আপনি আউটপুট পরিবর্তন করতে পূর্বোক্ত কমান্ডে বিভিন্ন পতাকা যোগ করতে পারেন। এখানে সবচেয়ে দরকারী বিকল্পগুলির একটি তালিকা রয়েছে:
- -R :শুধুমাত্র সরাসরি নির্ভরতা তালিকাভুক্ত করুন (কোন প্রস্তাবিত বা প্রস্তাবিত প্যাকেজ নেই)
- -s :প্রস্তাবিত প্যাকেজ অন্তর্ভুক্ত করুন
- -l :আউটপুটটিকে একটি ক্লিনার ফর্ম্যাটে উপস্থাপন করুন, স্ক্রিপ্টে ব্যবহারের জন্য উপযুক্ত
আপনি যদি টুলটি ব্যবহার করতে না পারেন এবং কমান্ড-লাইন সাহায্যের প্রয়োজন হয়, তাহলে --help ব্যবহার করুন অথবা -h পতাকা৷
৷reverse-depends -h
reverse-depends --help
একটি সিমুলেটেড ইনস্টলেশন/রিমুভাল ব্যবহার করে নির্ভরতা তালিকা পান
যারা বর্তমানে সিস্টেমে ইনস্টল করা নেই এমন সমস্ত নির্ভরতার একটি সংক্ষিপ্ত তালিকা চান, আপনি একটি নির্দিষ্ট প্যাকেজের একটি সিমুলেটেড ইনস্টলেশন (বা আনইনস্টল) চালাতে পারেন৷
পিএইচপি প্যাকেজের জন্য প্রয়োজনীয় নির্ভরতা পরীক্ষা করতে, উদাহরণস্বরূপ, নিম্নলিখিত কমান্ডটি চালান:
sudo apt install -s php
আউটপুটে একটি "নিম্নলিখিত অতিরিক্ত প্যাকেজ ইনস্টল করা হবে" বিভাগ থাকবে। আরও তালিকাভুক্ত সমস্ত প্যাকেজের নামগুলি নির্ভরতা যা আপনার সিস্টেমে পাওয়া যায়নি৷
আপনি যদি উবুন্টুতে ইতিমধ্যে ইনস্টল করা একটি প্যাকেজের জন্য নির্ভরতার একটি তালিকা পেতে চান, তাহলে এটির সাথে কোন অতিরিক্ত প্যাকেজগুলি সরানো হবে তা পরীক্ষা করার জন্য আপনি একটি সিমুলেটেড আনইনস্টল করতে পারেন৷
sudo apt remove -s packagename
উদাহরণ:
sudo apt remove -s rhythmbox
আউটপুট:
লিনাক্স প্যাকেজগুলি পরস্পর নির্ভরশীল
আপনি এই গাইড থেকে মোটামুটি অনুমান করতে পারেন, প্রায় প্রতিটি লিনাক্স প্যাকেজ অন্য প্যাকেজের উপর নির্ভর করে। এই ধারণার পিছনে প্রাথমিক নীতি হল যে লিনাক্স-ভিত্তিক অপারেটিং সিস্টেমে, প্রতিটি প্যাকেজ একটি একক কাজ করতে অনুমিত হয়, এবং এটি ভাল করে।
যদি অডিও পরিষেবাগুলি পরিচালনা করার জন্য একটি প্যাকেজ তৈরি করা হয়, তবে অন্যান্য প্রোগ্রামগুলি কেবলমাত্র উল্লিখিত প্যাকেজটিকে তাদের নির্ভরতা হিসাবে তালিকাভুক্ত করবে এবং তাদের অডিও প্রয়োজনীয়তাগুলি পূরণ করতে এটি ব্যবহার করবে৷
এছাড়াও, একাধিক অ্যাপ্লিকেশান একই প্যাকেজের দাবি করলে, এটি শুধুমাত্র একবার সিস্টেমে ইনস্টল করা হয়, ডেটা অপ্রয়োজনীয়তা রোধ করে এবং ডিস্কে সঞ্চয়স্থান সংরক্ষণ করে। আপনি APT ব্যবহার করে আপনার সিস্টেমে বর্তমানে ইনস্টল করা সমস্ত প্যাকেজগুলির একটি তালিকাও পেতে পারেন৷