বিভিন্ন এপিটি প্যাকেজ অপসারণের আদেশগুলি কীভাবে আলাদা হয়?


17

এই আদেশের মধ্যে পার্থক্য কি?

  1. sudo apt-get autoremove --purge packagenames
  2. sudo apt-get remove --purge packagenames
  3. sudo apt-get purge purge packagenmaes
  4. sudo apt-get remove packagenames
  5. sudo apt-get autoremove

উত্তর:


24

দ্রুত উত্তর

  • remove এর নাম অনুসারে প্যাকেজ আনইনস্টল করে।
  • autoremoveআর প্রয়োজন নেই এমন সমস্ত স্বয়ংক্রিয়ভাবে ইনস্টল হওয়া প্যাকেজ আনইনস্টল করে। এর পরে প্যাকেজের নাম তালিকাভুক্ত করা ভুল autoremove; এগুলি উপেক্ষা করা হবে (এবং সমস্ত যোগ্য প্যাকেজ সরিয়ে দেওয়া হবে), যা সম্ভবত আপনি চান তা নয়।
  • --purgeপ্যাকেজগুলির সাথে সম্পর্কিত সিস্টেমভিত্তিক কনফিগারেশন ফাইলগুলিও অপসারণের কারণ ঘটায়। এটি অবশ্যই একটি কমান্ডের সাথে থাকতে পারে, যেমন removeবা autoremove--purgeপতাকা কমান্ড কর্ম পরিবর্তন; এটি নিজস্বভাবে কাজ করে না।
  • purgeএর অর্থ একই জিনিস --purge remove(যা একইরকম remove --purge)। purgeদু'বার বলা ভুল ; দ্বিতীয়টি purgeপ্যাকেজের নাম হিসাবে ব্যাখ্যা করা হবে purge, যা সম্ভবত আপনি চান তা নয়।

সম্পূর্ণ উত্তর

এই আদেশগুলি কী করে এবং সেগুলি কীভাবে আলাদা তা বোঝার জন্য এটি দুটি ধারণা বুঝতে সহায়তা করে (এবং সম্ভবত এটি অপরিহার্যও):

  1. ম্যানুয়ালি ইনস্টল করা এবং স্বয়ংক্রিয়ভাবে ইনস্টল হওয়া প্যাকেজগুলির মধ্যে পার্থক্য
  2. প্যাকেজের প্যাকেজ ফাইল এবং এর কনফিগারেশন ফাইলগুলির মধ্যে পার্থক্য

ম্যানুয়ালি ইনস্টল করা বনাম। স্বয়ংক্রিয়ভাবে ইনস্টল করা

একটি ইনস্টল করা প্যাকেজটি ম্যানুয়ালি বা স্বয়ংক্রিয়ভাবে ইনস্টল করা হয়।

আপনি যখন ইনস্টলেশনের জন্য কোনও প্যাকেজ নির্দিষ্ট করেন এবং এটি ইনস্টল করা হয়, এটি ম্যানুয়ালি ইনস্টল করা হয়।

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

যখন কোনও প্যাকেজ ইনস্টল করার জন্য আপনাকে নির্দিষ্ট করা হয় না, তবে পরিবর্তে আপনি যে প্যাকেজটি ইনস্টল করার জন্য নির্দিষ্ট করেছেন তা নির্ভরতা হিসাবে ইনস্টল করা হয়, এটি স্বয়ংক্রিয়ভাবে ইনস্টল হয়ে যায়।

দয়া করে মনে রাখবেন যে আপনার যখন দুটি প্যাকেজ ইনস্টল করা আছে এবং সেগুলির একটি অন্যটির নির্ভরতা, তার মানে এই নয় যে নির্ভরতা স্বয়ংক্রিয়ভাবে ইনস্টল হয়ে যায়। এটাও সম্ভব যে নির্ভরতা ম্যানুয়ালি ইনস্টল করা হয়েছিল (যেমন, আপনি দ্বারা নির্দিষ্ট করা, উদাহরণস্বরূপ, প্যাকেজের উপর নির্ভর করে বা একই সময়ে ইনস্টল করা হয়েছে)।

অবশেষে:

  • আপনি যদি ইতিমধ্যে ইনস্টল করা প্যাকেজটি ম্যানুয়ালি ইনস্টল করার চেষ্টা করেন তবে এটি ইনস্টল থেকে যায়। তবে এটি স্বয়ংক্রিয়ভাবে ইনস্টল করা থাকলে একটি পরিবর্তন করা হয় - ম্যানুয়ালি ইনস্টল করার চেষ্টা করলে এটি ম্যানুয়ালি ইনস্টল হিসাবে চিহ্নিত হবে।
  • আপনি যে কোনও প্যাকেজটিকে ম্যানুয়ালি বা স্বয়ংক্রিয়ভাবে ইনস্টল ( apt-markকমান্ড সহ) হিসাবে চিহ্নিত করতে পারেন , কীভাবে বা কোন পরিস্থিতিতে তারা প্রকৃতপক্ষে ইনস্টল করা হয়েছিল তা নির্বিশেষে।
  • আপনার উবুন্টু সিস্টেমের সাথে পূর্বনির্ধারিত প্যাকেজগুলি সমস্ত স্বয়ংক্রিয়ভাবে ইনস্টল হয় না; এর মধ্যে কয়েকটি স্বয়ংক্রিয়ভাবে ইনস্টল হয়ে চিহ্নিত হয়ে আসে এবং অন্যেরা ম্যানুয়ালি ইনস্টল হওয়া চিহ্নিত হয়ে থাকে। এটি হ'ল ম্যানুয়ালি এবং স্বয়ংক্রিয়ভাবে ইনস্টল হওয়া প্যাকেজগুলির মধ্যে পার্থক্য করার পেছনের যুক্তি পূরণ করতে - এই ধারণাটি যে কিছু প্যাকেজ কেবল অন্যের সেবায় প্রয়োজন।

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

apt-get autoremove স্বয়ংক্রিয়ভাবে ইনস্টল হওয়া প্যাকেজগুলি সরিয়ে দেয় যার উপর নির্ভর করে আর কোনও ম্যানুয়ালি ইনস্টল করা প্যাকেজ নেই।

প্যাকেজ ফাইল এবং কনফিগারেশন ফাইল

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

তবে একটি প্যাকেজ অন্যান্য ফাইলও সরবরাহ করে, যা (সম্ভবত) পরিবর্তিত হওয়ার উদ্দেশ্যে are এগুলিকে বৈশ্বিক (বা সিস্টেমওয়াইড) কনফিগারেশন ফাইল বলা হয়। এগুলি প্রায়শই /etcডিরেক্টরিতে ইনস্টল করা থাকে এবং ইনস্টলড প্রোগ্রামগুলির আচরণ পরিবর্তন করতে এগুলি স্বয়ংক্রিয়ভাবে এবং ম্যানুয়ালি পরিবর্তিত হতে পারে। উদাহরণস্বরূপ, sudoএকটি কনফিগারেশন ফাইল রয়েছে /etc/sudoersএবং আরও কনফিগারেশন ফাইলের জন্য একটি ডিরেক্টরি রয়েছে /etc/sudoers.d। এই ফাইলটি এবং সেই ডিরেক্টরিতে যুক্ত হওয়া যে কোনও ফাইল, sudoকীভাবে কোন উপায়ে ব্যবহারের অনুমতিপ্রাপ্ত তা নির্দিষ্ট করে।

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

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

আপনি যখন প্যাকেজটি আনইনস্টল করেন তখন আপনি যদি কোনও প্যাকেজের সিস্টেমওয়াইড কনফিগারেশন ফাইলগুলি মুছতে চান তবে তাকে প্যাকেজটিকে "পিউরিজিং" বলা হয়।

apt-get removeএকটি প্যাকেজ অপসারণ করা হবে; এটি হ'ল এটি প্যাকেজটি আনইনস্টল করবে তবে এর সিস্টেমওয়াইড কনফিগারেশন ফাইলগুলি ছেড়ে যাবে।

apt-get purgeএকটি প্যাকেজ শুদ্ধ করা হবে; এটি হ'ল এটি প্যাকেজটি আনইনস্টল করবে এবং এর সিস্টেমওয়াইড কনফিগারেশন ফাইলগুলি মুছে ফেলার বিষয়টি নিশ্চিত করবে।

প্যাকেজগুলি মুছে ফেলার আরেকটি উপায় হ'ল --purgeপতাকা ব্যবহার করা । বলুন না যে apt-getকি করতে হবে তা; পরিবর্তে এটি কী পদগুলিতে (বা "আদেশগুলি") removeকরতে চায় তা পরিবর্তিত করে । --purgeজাতীয় পতাকার কোনো প্যাকেজ uninstallations প্যাকেজ (গুলি) আনইনস্টল হচ্ছে Systemwide কনফিগারেশন ফাইল মুছে ফেলার দ্বারা অনুষঙ্গী করা কারণ। অন্য কথায়, --purgeপতাকা অপসারণগুলি পুরোধিতে পরিণত করে।

--purgeআমাদের purgeকমান্ড থাকলে পতাকাটি কেন ? সর্বোপরি, এর sudo apt-get --purge remove packagenameসমতুল্য নয় sudo apt-get purge packagename। তারা সমতুল্য। কোথায় --purgeসুবিধাজনক আসে যখন আপনি কমান্ড আচরণ পরিবর্তন করতে চান অন্যান্য তুলনায় remove

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

sudo apt-get --purge autoremove

এর আরও একটি ব্যবহার বিবেচনা করা যাক --purge। নামক একটি পতাকা রয়েছে --reinstall, যা ইনস্টলেশনগুলি পুনরায় প্রতিষ্ঠানে পরিণত করে। এর অর্থ এটি হ'ল, সাধারণত, আপনি ইতিমধ্যে ইনস্টল থাকা প্যাকেজটি ইনস্টল করার চেষ্টা করার পরে, কিছুই হবে না, বা (যদি প্যাকেজটি স্বয়ংক্রিয়ভাবে ইনস্টল করা চিহ্নিত করা হয়) প্যাকেজটি ম্যানুয়ালি ইনস্টল করা হবে। তবে --reinstallপতাকাটির মাধ্যমে, ইতিমধ্যে ইনস্টল থাকা একটি প্যাকেজ ইনস্টল করার কারণে এটি সরিয়ে ফেলা হবে এবং তারপরে ফিরে ইনস্টল করা হবে :

sudo apt-get --reinstall install packagename

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

sudo apt-get --purge --reinstall install packagename

--reinstallপুনরায় ইনস্টলেশন মধ্যে সক্রিয় ইনস্টলেশন (অর্থাত, অপসারণ ইনস্টলেশন দ্বারা অনুসরণ), এবং --purgeশুদ্ধিকরণ মধ্যে পুনরায় ইনস্টলেশন অপসারণের অংশ সক্রিয়।

আপনার উদাহরণের আচরণ

আপনার প্রতিটি উদাহরণের apt-getআদেশ কমান্ডটি ঠিক কী করবে তা এখন পরিষ্কার হওয়া উচিত :

  • sudo apt-get autoremove --purge packagenames

    এটি পূর্বে স্বয়ংক্রিয়ভাবে ইনস্টল হওয়া প্যাকেজগুলি মুছে দেয় যা তাদের উপর নির্ভর করে কোনও ম্যানুয়ালি ইনস্টল করা প্যাকেজ নেই। এটি হ'ল এটি সেই প্যাকেজগুলি আনইনস্টল করে (যার ফলে তাদের প্যাকেজ ফাইলগুলি মুছে ফেলা হয়), এবং এটি তাদের সিস্টেমডওয়াইড কনফিগারেশন ফাইলগুলিও মুছে দেয়।

    এখানে, packagenamesকিছুই না। বিশেষত, আপনি যদি কেবল প্যাকেজগুলি মুছে ফেলতে চেয়েছিলেন যাদের নাম সেখানে তালিকাবদ্ধ রয়েছে, তবে এটি আপনার ইচ্ছার সাথে আচরণ করবে না।

  • sudo apt-get remove --purge packagenames

    এই purges packagenames; ধরে packagenamesনেওয়া প্যাকেজ নামের একটি সাদা স্থান-বিচ্ছিন্ন তালিকা, এটি তাদের সমস্তকে শুদ্ধ করবে। এটি হ'ল এটি তাদের আনইনস্টল করবে (যার ফলে তাদের প্যাকেজ ফাইলগুলি মুছতে পারে), এবং তাদের সিস্টেমডওয়াইড কনফিগারেশন ফাইলগুলি মুছবে।

    তালিকাভুক্ত প্যাকেজগুলির মধ্যে packagenamesযদি কোনও ইনস্টল না করা থাকে তবে তালিকার উপস্থিতিতে কোনও প্রভাব পড়বে না (বাদে আপনাকে জানানো হবে এটি ইনস্টল করা হয়নি)। আপনি যদি প্যাকেজের নাম তালিকাভুক্ত করেন যা কোনও প্রকৃত প্যাকেজের নাম নয় তবে কমান্ডটি ত্রুটিযুক্ত হয়ে ব্যর্থ হবে ।unable to locate packagename

  • sudo apt-get purge purge packagenmaes

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

  • sudo apt-get remove packagenames

    এটি তালিকাভুক্ত প্যাকেজগুলি সরিয়ে দেয় packagenames, যা তাদের প্যাকেজ ফাইলগুলি মুছতে বাধ্য করে। এটি তাদের সিস্টেমব্যাপী কনফিগারেশন ফাইলগুলি মুছবে না (কারণ এটি নিছক অপসারণ, খাঁটি নয়)।

  • sudo apt-get autoremove

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

কীভাবে ব্যবহার করবেন সে সম্পর্কে আরও তথ্যের জন্য apt-get, আমি এর ম্যানুয়াল পৃষ্ঠাটি সুপারিশ করছি । আরও সাধারণ তথ্যের জন্য এই গাইডটি দেখুন

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