নির্দিষ্ট প্যাকেজের জন্য, কেন এটি ইনস্টল করা হয়েছে তা আমি জানতে পারি?
সুতরাং, আমি দেখতে পাচ্ছি বা এটি ম্যানুয়ালি ইনস্টল করা আছে, বা এটি অন্য প্যাকেজের নির্ভরতা হিসাবে ইনস্টল করা আছে? বা এটি ডিস্ট্রোর অংশ হিসাবে ইনস্টল করা আছে?
নির্দিষ্ট প্যাকেজের জন্য, কেন এটি ইনস্টল করা হয়েছে তা আমি জানতে পারি?
সুতরাং, আমি দেখতে পাচ্ছি বা এটি ম্যানুয়ালি ইনস্টল করা আছে, বা এটি অন্য প্যাকেজের নির্ভরতা হিসাবে ইনস্টল করা আছে? বা এটি ডিস্ট্রোর অংশ হিসাবে ইনস্টল করা আছে?
উত্তর:
একটি দ্রুত সমাধান হল টার্মিনালে নিম্নলিখিত কমান্ডটি প্রবেশ করানো:
aptitude why $package
বা, যদি আপনি কেবল চূড়ান্ত কারণটিতে আগ্রহী হন:
aptitude why $package --show-summary
প্যাকেজটির নামের সাথে প্যাকেজটি প্রতিস্থাপন করুন এবং আপনাকে aptitude
প্রথমে প্যাকেজ ইনস্টল করতে হবে ।
এখানে আপনি পেতে পারেন আউটপুট aptitude why aspell --show-summary
Packages requiring aspell:
inkscape
আরও বিশদ জন্য আপনি চালানো হবে aptitude why aspell
। আপনি নীচে উদাহরণ আউটপুটটি পড়তে পারেন: "আপনি ম্যানুয়ালি ইনস্টল করেছেন inkscape
, যা প্রয়োজন libgtkspell
, যা প্রয়োজন libenchantic2a
, যা প্রয়োজন aspell
"। ( i
চিহ্নিতকারী ইনস্টল করা প্যাকেজগুলি নির্দেশ করে; A
চিহ্নিতকারীগুলি স্বয়ংক্রিয়ভাবে ইনস্টল হওয়া প্যাকেজগুলি নির্দেশ করে))
i inkscape Depends libgtkspell0 (>= 2.0.10)
i A libgtkspell0 Depends libenchant1c2a (>= 1.6.0)
i A libenchant1c2a Depends aspell-en | myspell-dictionary | aspell-dictionary | ispell-dictionary | hunspell-dictionary
i A aspell-en Depends aspell (>= 0.60.3-2)
অবশেষে, নিম্নলিখিত কমান্ড
apt-cache rdepends --installed $package
আপনার কম্পিউটারে ইনস্টল করা অন্যান্য প্যাকেজগুলি তালিকাবদ্ধ করে যা সরাসরি $ প্যাকেজের উপর নির্ভর করে । আপনি --recurse
সরাসরি বা অপ্রত্যক্ষভাবে নির্ভর করে এমন সমস্ত প্যাকেজ তালিকাবদ্ধ করতে বিকল্প যুক্ত করতে পারেন ।
apt-cache rdepends --recurse $package
সম্ভবত অনেকগুলি প্যাকেজ দেয়। আমি --installed
ইনস্টলড প্যাকেজগুলিতে সীমাবদ্ধ করার জন্য বিকল্প যুক্ত করব । -i
বিকল্প প্রাক নির্ভরতা এবং নির্ভরতা সম্পর্কিত প্যাকেজগুলিতে সীমাবদ্ধ করে। তবে একটি প্যাকেজ ইনস্টল করা হতে পারে কারণ এটি অন্য প্যাকেজ দ্বারা প্রস্তাবিত। এই জাতীয় সুপারিশ সম্পর্কিত প্যাকেজগুলি অন্তর্ভুক্ত করার জন্য, আমি মনে করি এটি সঠিকভাবে দেবে:apt-cache rdepends --no-suggests --no-conflicts --no-breaks --no-replaces --no-enhances --installed --recurse $package
apt-cache rdepends --no-{suggests,conflicts,breaks,replaces,enhances} --installed --recurse $package
একটি নির্দিষ্ট প্যাকেজ কেন ইনস্টল করা হয়েছিল তার একটি দ্রুত এবং সংক্ষিপ্ত যুক্তি টার্মিনাল ( Applications -> Accessories -> Terminal
) এ নিম্নলিখিত কমান্ডটি টাইপ করে খুঁজে পাওয়া যাবে :
aptitude why <package-name>
আপনার আগ্রহী প্যাকেজটির নামটি প্রতিস্থাপন করুন example উদাহরণস্বরূপ, টাইপিংয়ের aptitude why libgoo-canvas-perl
ফলে নিম্নলিখিতটি আউটপুট দেয়:
i shutter Suggests libgoo-canvas-perl
এর মূল অর্থ এই যে প্যাকেজটি shutter
এই ক্ষেত্রে libgoo-canvas-perl
ইনস্টল করার পরামর্শ দিয়েছে । তারপরে টাইপ করে aptitude why shutter
আমি নির্ভরশীলতা চেইনটি উপরে যেতে পারি।
তবে, একটি সতর্কতা আছে। আমি প্রায়শই লক্ষ্য করি যে পরিস্থিতিটির প্রকৃত ঘটনাটি নাও হতে পারে তার জন্য উপযুক্ততাটি সবচেয়ে প্রশংসনীয় ব্যাখ্যা খুঁজে পেয়েছে, তবে তবুও আপনাকে আরও সন্ধান করার জন্য একটি ধারণা দেবেন।
আমার ক্ষেত্রে, shutter
প্রস্তাব দেয় libgoo-canvas-perl
- তবে প্রস্তাবিত প্যাকেজগুলি স্বয়ংক্রিয়ভাবে ডিফল্টরূপে ইনস্টল হয় না। তবুও, এটি আমার "স্মৃতি" অভিজ্ঞতার স্মৃতি জাগিয়ে তোলে shutter
যা স্ক্রিনশটগুলি সম্পাদনা করতে সক্ষম না হওয়ায় আমাকে নিজেই ইনস্টল করতে পরিচালিত করেছিলligbgoo-canvas-perl
পরিশেষে, নিম্নলিখিত কমান্ডটি চালিয়ে আপনি প্যাকেজটি স্বয়ংক্রিয়ভাবে ইনস্টল করা হয়েছে কিনা (অর্থাত প্যাকেজ পরিচালন ব্যবস্থার দ্বারা সিদ্ধান্ত নেওয়া অন্যান্য প্যাকেজগুলির যে নির্ভরতা এবং আপনি যে প্যাকেজ ইনস্টল করতে বলেছিলেন সেগুলি দেখতে বাধ্যতামূলক হিসাবে সিদ্ধান্ত নেওয়া হয়েছে) তা জানতে পারবেন following
aptitude show <package-name>
এটি নীচের মতো একটি লাইন আউটপুট দেবে (আউটপুটটির তৃতীয় লাইন):
Automatically installed: no
আরও তথ্যের জন্য রান করুন info aptitude
(একটি টার্মিনালে) বা প্রবণতা উইকি পৃষ্ঠাতে যান
খুঁজে বের করতে যখন একটি নির্দিষ্ট প্যাকেজ ইনস্টল করা ছিল, সেখানে 2 বিকল্প রয়েছে:
Install
ইনস্টলেশন সংক্রান্ত সমস্ত এন্ট্রি তালিকার জন্য আপনি (কেসটি মনে রাখবেন) অনুসন্ধান করতে পারেন । তবে এটি কেবল সিনাপটিক ব্যবহার করে ইনস্টল হওয়া প্যাকেজগুলি প্রদর্শন করবেটার্মিনালে নিম্নলিখিত কমান্ডটি চালান। এটি ইনস্টলেশন ইতিহাসের এন্ট্রিগুলির জন্য dpkg লগগুলি সন্ধান করবে। তবে, এই লগগুলির কতটুকু রক্ষণাবেক্ষণের সীমাবদ্ধতা রয়েছে তাই আপনি যে প্যাকেজটি সন্ধান করছেন এটি যদি দীর্ঘকাল আগে ইনস্টল করা থাকে তবে আপনি এটি সন্ধান করতে পারেন না। আরও বিশদ এখানে
zcat -f /var/log/dpkg.log* | grep "\ install\ " | grep -i <package-name>
zcat -f /var/log/dpkg.log* | grep -i PackageName | egrep “\ install\ |\ upgrade\ “
হ্যাঁ, আপনি এটি করতে পারেন, এবং এটি একটি বাস্তব সুস্পষ্ট আদেশ। ধরে নিই যে আপনি প্রবণতা ইনস্টল করেছেন, আপনি একটি টার্মিনাল উইন্ডো বিজ্ঞাপন প্রকারটি খুলতে পারেন:
aptitude why package
এটি সেই নির্দিষ্ট প্যাকেজের উপর নির্ভর করে এমন প্যাকেজগুলির একটি তালিকা দেয়। যদি এটি ম্যানুয়ালি ইনস্টল করা প্যাকেজ হয় তবে এটি এমন কিছু বলবে যে "প্যাকেজ ইনস্টল করার কারণ খুঁজে পাওয়া সম্ভব ছিল না"।
এখানে একটি সহজ উপায় যা নির্ভর করে না aptitude
, যা 10.10 ডিফল্টরূপে শিপ করে না।
সিন্যাপটিক খুলুন এবং এটি অপসারণ করার চেষ্টা করুন।
যদি কোনও ডায়ালগ আপনাকে অন্যান্য প্যাকেজগুলি মুছে ফেলার জন্য জিজ্ঞাসা করে, তবে এটি সেই প্যাকেজগুলি যা (পুনরাবৃত্তভাবে) এর উপর নির্ভর করে।
apt-get remove package_name_goes_here -s
আবার, প্যাকেজগুলির ফলে যেগুলি মুছে ফেলা হবে সেগুলি হ'ল এটি (পুনরুক্তি) এর উপর নির্ভর করে। ( -s
প্যারামিটারটি apt-get
আসলে প্যাকেজটি অপসারণ করতে বলে না))
y/N
জন্য আপনার টাইপ করার পরে একটি অতিরিক্ত নিশ্চয়তার অনুরোধও রয়েছে -s
। আমি তবে একটি সতর্কতা যুক্ত করেছি।