কিভাবে অব্যবহৃত MacPorts প্যাকেজ অপসারণ করবেন?


91

যখনই আমি ম্যাকপোর্টের মাধ্যমে একটি প্রোগ্রাম ইনস্টল করি, এটি অনেক নির্ভরশীলতা পায় এবং ইনস্টল করে। যখন আমি প্রোগ্রামটি আনইনস্টল করি, তখন আমি কীভাবে ম্যাকপোর্টগুলিকে সব অব্যবহৃত নির্ভরতাগুলি তার সাথে পুনরাবৃত্তি করবো?

উত্তর:


102

আপনি অনুরোধ করা জিনিস হতে পারে যে ঘটনাক্রমে কাটা পাতা এড়ানোর জন্য আপনি ইনস্টল করা উচিত port_cutleaves প্যাকেজ তারপর রান sudo port_cutleaves https://guide.macports.org/#using.common-tasks.keeplean


MacPorts 1.9.0 যোগ করা হয়েছে sqlite portdbformat এবং MacPorts 2.0.0 পুরাতন ফেলেছে flat বিন্যাস । দ্য sqlite পোর্ট ডি বি বিন্যাস নতুন ইনস্টলেশনের জন্য ডিফল্ট হয়; পুরানো ইনস্টলেশনের যে 1.9.x আপগ্রেড করা হয়েছে ব্যবহার চালিয়ে যেতে হবে flat বিন্যাস 1 । আপনি একটি 1.9.x রূপান্তর করতে পারেন flat সিস্টেম sqlite ম্যাকপোর্ট 2.0 বা আপগ্রেড করে আপগ্রেড করে বিন্যাস করুন portdbformat মান /opt/local/etc/macports/macports.conf এবং তারপর একটি প্রদানকারী বন্দর রুট হিসাবে কমান্ড (উদাঃ। sudo port installed )।

নতুন বিন্যাসের বৈশিষ্ট্যগুলির একটি হল যে এটি "অনুরোধ করা" বনাম "অনিবার্য" পোর্ট ইনস্টলেশনের ট্র্যাক রাখে। একটি অননুমোদিত পোর্ট কেবলমাত্র ইনস্টল করা হয়েছিল কারণ এটির উপর অন্য কোনও পোর্ট নির্ভর করে। দ্য leaves pseudo-portname সমস্ত অনির্দিষ্ট পোর্টে প্রসারিত হয় যার উপর অন্য কোনো ইনস্টল করা পোর্ট নির্ভর করে না। আপনি মূলত আনইনস্টল না করে থাকলেও এটি আনইনডেড পোর্টগুলি "পরিষ্কার করতে" ব্যবহার করতে পারেন sudo port uninstall --follow-dependencies portname (যা আপনি চান তা করতে হবে, কিন্তু আপনি এটি আনইনস্টল করার সময় প্রতিবার ব্যবহার করার কথা মনে রাখবেন)।


আপনি তাদের আনইনস্টল করার আগে আপনার বিদ্যমান পাতা পরীক্ষা করা উচিত।

port echo leaves

কিছু সাধারণ পাতা ( automake, gperf, libtool, pkgconfig ) হল সাধারণ পোর্টগুলির বিল্ড-টাইম নির্ভরতা, তাই আপনি তাদের "অনুরোধ" করতে চাইতে পারেন ( sudo port setrequested port1 port2 port3 … ) তাদের আনইনস্টল এড়াতে শুধুমাত্র পরে তাদের পুনরায় ইনস্টল করতে হবে।

আপনি সহজেই যে কোনো অবশিষ্ট পাতা আনইনস্টল করতে পারেন:

sudo port uninstall leaves

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

sudo port uninstall inactive

সেখানে বিভিন্ন বিভাগ মধ্যে ম্যাকপোর্ট গাইড যে ব্যবহার প্রক্রিয়ার বর্ণনা leaves unneeded পোর্ট আনইনস্টল করতে।


11
ধন্যবাদ। এটি বেশ সহায়ক। মনে হচ্ছে আপনি ইকো পাতাগুলি চালাতে এবং পাতার আনইনস্টল করতে পারবেন যাতে একাধিকবার সমস্ত পাতা পরিষ্কার করা হয় তা নিশ্চিত করতে। ইকো পাতা খালি ফলাফল ফেরত দেওয়ার আগে আমি কমপক্ষে 4 বার উভয় কমান্ড চালাচ্ছিলাম
Antony

6
আপনি ভালো কিছু বলতে পারে while sudo port uninstall leaves; do :; done যে স্বয়ংক্রিয় করতে।
Tom Anderson

2
@ChrisJohnsen sudo port uninstall --follow-dependents portname ভুল, কারণ --follow-dependents "নির্দিষ্ট পোর্টের উপর নির্ভর করে সমস্ত পোর্ট পুনরায় আনইনস্টল করবে"। এখানে সঠিক বিকল্প --follow-dependencies, যা "নির্দিষ্ট পোর্টের উপর নির্ভরশীল সমস্ত পোর্টগুলিকে আনুমানিকভাবে আনইনস্টল করবে। এটি অনুরোধ হিসাবে চিহ্নিত করা বা অন্যান্য নির্ভরশীলদের নির্ভরশীলতা আনইনস্টল করবে না।"
TachyonVortex

8

ডক্স থেকে :

আনইনস্টল কর্ম একটি আনইনস্টল হবে   ইনস্টল পোর্ট।

%% sudo port uninstall vile Note

এছাড়াও recursively আনইনস্টল   প্রদত্ত পোর্ট যে উপর নির্ভর করে পোর্ট,   ব্যবহার ‑‑follow‑dependencies পতাকা।   এই নির্ভরতা আনইনস্টল করা হবে না   যে অনুরোধ বা যে হিসাবে চিহ্নিত করা হয়   অন্যান্য নির্ভরশীল আছে।

Recursively সব পোর্ট আনইনস্টল করতে   যে আগে দেওয়া পোর্ট উপর নির্ভর করে   পোর্ট নিজেই আনইনস্টল, ব্যবহার করুন ‑‑follow‑dependents flag

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

%% sudo port -f uninstall vile

শেষ অনুচ্ছেদের প্রধান ক্যাভিট নোট করুন। নির্ভরতাগুলি ঠিক সেই নির্ভরশীলতা-এবং বিভিন্ন অ্যাপ্লিকেশনগুলি (একই) নির্ভরতাগুলি একই রকম করতে পারে।


আমি এই প্রশ্নের উত্তর মনে করি না। OP একটি প্রোগ্রাম এবং এটি প্রয়োজনীয় জিনিসগুলি সরাতে চায়, একটি প্রোগ্রাম এবং এটির প্রয়োজন এমন জিনিসগুলি সরাবে না।

2
@mankoff: ‑‑follow‑dependencies বনাম ‑‑follow‑dependents; উদ্ধৃত উত্তরণ উভয় বর্ণনা করে, কিন্তু শুধুমাত্র প্রথম প্রশ্ন প্রযোজ্য
Chris Johnsen

3
ব্যক্তিগতভাবে, আমি মনে করি টিপু মহান যে ফিলিপ উভয় পরামিতি ব্যাখ্যা করে, তাই আমরা এই কমান্ডটি প্রদানের পর পরামিতি এবং তাদের প্রভাব সম্পর্কে সম্পূর্ণরূপে সচেতন
Antony

3

একটি বন্দর এবং তার নির্ভরশীল অপসারণ করার কমান্ড হল:

sudo port uninstall foo --follow-dependents

যাইহোক, যদি আপনি আনইনস্টল করা পোর্ট নির্ভরশীল আছে এটি ছাড়া আনইনস্টল করা হবে না -f (বল) পতাকা।

অবশ্যই আপনি উপর পড়া দ্বারা শুরু করা উচিত ম্যাকপোর্ট গাইড বিশেষ করে মধ্যে খুঁজছেন আনইনস্টল গাইড অধ্যায়।


3

Port_cutleaves নামক ম্যাকপোর্টস কন্ট্রোল ডিরেক্টরিতে একটি স্ক্রিপ্ট রয়েছে যা আপনি অনির্বাচিত নির্ভরতাগুলি সরাতে চালাতে পারেন: http://trac.macports.org/browser/contrib/ । এটি প্রতিটি টু আনইনস্টল করা পোর্টের জন্য আপনাকে জিজ্ঞাসা করবে এবং কিছু রাখতে, আপনি চান।


1

আমি অন্য উত্তর, এবং মনে করি --follow-dependents পতাকা, আপনি কি চান না। যদি আপনি ইনস্টল A, এবং A প্রয়োজন B, তারপর চমৎকার প্যাকেজ ম্যানেজমেন্ট সিস্টেম ধন্যবাদ, B আপনার জন্য ইনস্টল করা হবে। আপনি আনইনস্টল করতে পারেন B এবং --follow-dependents পতাকা সচেতন হতে হবে এবং অপসারণ করা হবে A। কিন্তু আপনি আনইনস্টল যদি কি A, যা সম্ভবত, কারণ A আপনি নিজে প্রথম স্থানে ইনস্টল কি? এক্ষেত্রে, B পিছনে বাকি আছে।

আপনি যদি ফিনক ব্যবহার করেন, দী debfoster প্যাকেজ আপনার সিস্টেম সাফ করার জন্য এবং অব্যবহৃত নির্ভরতা অপসারণ করার জন্য ডিজাইন করা হয়।

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

যদিও debfoster MacPorts জন্য কাজ করবে না, সেখানে পোর্ট প্রদর্শিত হবে debfoster, উদাহরণ স্বরূপ, portsfosterযদিও এটি বন্ধ করা হচ্ছে বলে মনে হচ্ছে ...

সম্ভবত কোন সমাধান বর্তমানে MacPorts জন্য বিদ্যমান।


কিন্তু ডেবিয়ান ভিত্তিক সিস্টেমে ডিবি ফাইলগুলির জন্য ডিবাফস্টার নেই? ম্যাক ওএস এক্স এর ম্যাকপোর্ট পোর্টের জন্য আমি কিভাবে এটি ব্যবহার করব?
hpy

এটি OS X এবং MacPorts এ পোর্ট করা হয়েছে এবং ফিনকগুলি ভিত্তি করে তৈরি করা হয়েছে apt ডেবিয়ান দ্বারা ব্যবহৃত সিস্টেম। আমি ম্যাকপোর্ট ব্যবহার করি না, কিন্তু আমি করেছি fink install debfoster এবং এটা আমার জন্য ঠিক সূক্ষ্ম কাজ।

ম্যাকপোর্টস সম্পর্কিত নয় apt সিস্টেম এবং ব্যবহার করে না deb নথি পত্র. ম্যাকপোর্টগুলির ধারণা ফ্রিBSD পোর্ট বা নেটবিএসডি পিকেএসআরসিসি সম্পর্কিত, তবে বাস্তবায়নটি খুব ভিন্ন।
Chris Johnsen

1
ঠিক আছে. সংশোধনীর জন্য ধন্যবাদ. তথাপি, debfoster মাধ্যমে জরিমানা কাজ পোর্ট করা হয়েছে fink। আরও অনুসন্ধান এটা দেখায় যে না MacPorts সঙ্গে কাজ, কিন্তু ক্লোন আছে, প্রাক্তন জন্য, দেখুন portsfoster

1

আমি পোর্ট ক্লিনআপ স্বয়ংক্রিয় করতে কিছু স্ক্রিপ্ট লিখেছি: https://github.com/vasi/macports-tools

'ম্যাকপোর্টফস্টার' স্ক্রিপ্ট সমস্ত পোর্টগুলির একটি আউটপুট আউটপুট করবে যা অনুরোধকৃত তালিকাতে কোনও প্রয়োজন নেই, যাতে 'পোর্ট নিষ্ক্রিয় করা $ (ম্যাকপোর্টফস্টার)' এক শট এটিকে সরাতে পারে।

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