আমি কীভাবে সমস্ত পার্ল মডিউলগুলির একটি দুর্ঘটনাজনিত ইনস্টলেশন পূর্বাবস্থায় ফেরা করব?


8

আমি CPAN মাধ্যমে আমার পার্ল মডিউল আপগ্রেড করার প্রয়াস করার সময়, কিন্তু আমি আপগ্রেড করতে একটি Regex / মডিউল নাম সরবরাহ করা হয়নি: perl -MCPAN -e 'upgrade'; আমি কেবলমাত্র খারাপটি ধরে নিতে পারি (যা এর আউটপুট দ্বারা সমর্থিত বলে মনে হয় perldoc perllocal), অর্থাৎ সিপিএএন থেকে সমস্ত পার্ল মডিউল ইনস্টল করা আছে।

কীভাবে আমি এই জগাখিচুড়ি ফিরিয়ে আনব? আমি মনে করি আমি মুছে ফেলতে পারি /usr/local/share/perl, তবে এর কী কী প্রভাব রয়েছে?

সম্পাদনা করুন: আমার হার্ড ড্রাইভে আমার এখনও 95% ফ্রি স্পেস রয়েছে, সুতরাং এটি কোনও বিশাল উদ্বেগ নয়। আমি কেবল প্রচুর অপ্রয়োজনীয় কোলাহল চাই না। আমি rmসেই ডিরেক্টরিটি অন্তর্ভুক্ত করার বিষয়ে বিবেচনা করছি , এবং সিপিএএন ইনস্টল প্রক্রিয়াটি করছেন dpkg --purge perlএবং পুনরায় করছেন apt-get। তবে এটি কি সত্যিই প্রয়োজনীয়, বা আমি কেবল অপ্রয়োজনীয় মডিউলগুলি এখান থেকে সরাতে পারি /usr/local/share/perl?


কিছু লোক মনে করে যে সরাসরি সিস্টেম ফাইল (এবং ফোল্ডার) মুছে ফেলা সত্যিই ভাল ধারণা নয়apt-getসিনাইপটিকের মতো জিনিসগুলি ব্যবহার করা আরও ভাল হবে যাতে সিস্টেম মুছে ফেলার কাজটি পুরোপুরি করে এবং প্রয়োজনীয় ডেটাবেস আপডেট করে।

4
@ সিএনএএন এর অধীনে ইনস্টল করা পার্স মডিউলগুলিকে @ vasa1 পার্ক করা হয়নি। মডিউলগুলি যে ডিরেক্টরিটিতে থাকে সম্ভবত মুছে ফেলা দরকার। অথবা একজনকে অবশ্যই সিপিএএন এর মাধ্যমে সেগুলি ম্যানুয়ালি মুছে ফেলতে হবে এবং যদি তারা একটি আনইনস্টল নির্দেশনা, এমনকি কোনও আদেশেরও আনুগত্য করে তবে এটি একটি cr * pshoot make uninstall। দুর্ভাগ্যক্রমে এটি সম্পূর্ণ ভিন্ন প্যাকেজ পরিচালন সিস্টেম। stackoverflow.com/questions/2626449/…
কেভিন বোয়েন

@ ম্যাগগোটব্রাইন, ধন্যবাদ! আমি এটা জানতাম না। (আমি ছোট জিনিসগুলির জন্য কেবলমাত্র পার্ল ব্যবহার করি ওএস নিয়ে আসে))

উত্তর:


5

এটিকে কিছুটা কাছাকাছি দেখলে, আমি মনে করি না যে আপনার সিস্টেমে কোনও ডিরেক্টরি বা ফাইল মুছে ফেলা দরকার বা হওয়া উচিত should

perl -MCPAN -e 'upgrade'কমান্ড লাইন থেকে কমান্ড চালানো আপনার সিস্টেমে অতিরিক্ত মডিউল ইনস্টল করবে না

এটা করবে না শুধুমাত্র CPAN প্যাকেজ ম্যানেজমেন্ট সিস্টেম মাধ্যমে, ইনস্টল মডিউল আপগ্রেড করার প্রচেষ্টা, এবং Synaptic মাধ্যমে

এটি 'r' কমান্ড চালানো এবং তারপরে cpan[1]>প্রম্পটে আপগ্রেড কমান্ড চালানোর অনুরূপ । এখানে দেখুন ।

সিপিএএন এবং সিনাপটিক দুটি পৃথক এবং স্বতন্ত্র প্যাকেজ পরিচালন সিস্টেম।

এটি সিপিএএন থেকে সমস্ত সম্ভাব্য পার্ল মডিউল ইনস্টল করবে না । বা এটি বিদ্যমান সিস্টেম প্যাকেজ ডিবি সংশোধন করবে না। সুতরাং, আপনি অবশ্যই নিরাপদে এটি পিছনে রোল করতে পারেন।

তবে কোনও অ্যাপ্লিকেশন বা আপনার সিস্টেম পার্ল মডিউলটির একটি নির্দিষ্ট সংস্করণের উপর নির্ভর করে যদি এটি এখনও সম্ভাব্য ঝুঁকিপূর্ণ।

আপনি যদি আপগ্রেড প্রক্রিয়াটিতে বাধা সৃষ্টি করেন তবে সম্ভাবনা ভাল যে আপনি আপনার সিস্টেমের ক্ষতি করতে এড়িয়ে গেছেন।

পুনরুদ্ধার বিকল্পগুলি:

একটি কমান্ড লাইন থেকে, ইনস্টল করা মডিউলগুলির তালিকা এবং উপলভ্য আপগ্রেডগুলির তালিকা দেখতে rcpan কমান্ডটি চালু করুন এবং চালান । উদাহরণস্বরূপ, এখানে আমার সিপিএন থেকে সংক্ষিপ্ত আউটপুট:

cpan[7]> r

Package namespace         installed    latest  in CPAN file
App::Cpan                    1.5701      1.61  BDFOY/App-Cpan-1.61.tar.gz
DBD::mysql                    4.020     4.022  CAPTTOFU/DBD-mysql-4.022.tar.gz
DBI                           1.616     1.623  TIMB/DBI-1.623.tar.gz
DB_File                       1.821     1.827  PMQS/DB_File-1.827.tar.gz
Error                       0.17010   0.17019  SHLOMIF/Error-0.17019.tar.gz
Eval::Closure                  0.06      0.08  DOY/Eval-Closure-0.08.tar.gz
....

Eval::Closureএই উদাহরণস্বরূপ, মডিউলটি ধরুন । ধরা যাক যে আপনি perl -MCPAN -e 'upgrade'কমান্ডটি সম্পূর্ণ করতে দিন এবং আপনার এখন সংস্করণ 0.08 ইনস্টল করা আছে।

সিনাপটিকের দিকে তাকালে, এক্ষেত্রে এটি প্রদর্শিত হবে যে সংগ্রহস্থলের সর্বশেষ সংস্করণটি এখনও 0.06 (0.01-1, বিশেষত, আমার উদাহরণে) থাকবে।

নিম্নলিখিত কমান্ডটি চালিয়ে আপনি আপনার সিস্টেম সংস্করণে ফিরে যেতে পারেন:

sudo apt-get install --reinstall libeval-closure-perl

আপনি যদি কোনও পার্ল মডিউল ম্যানুয়ালি ইনস্টল করে রেখেছেন এবং সেগুলি আবার আগের সংস্করণে রোল করতে চান তবে আপনার সেগুলি আবার ডাউনলোড করতে হবে (হয় সোর্স.ক্যাপ্যান.আর.অর্গ.অর্গ থেকে অন্য কোথাও) এবং সেগুলি ম্যানুয়ালি পুনরায় ইনস্টল করতে হবে।

সংক্ষিপ্তসার হিসাবে: সিপিএনের মধ্যে পার্ল মডিউলগুলি আপগ্রেড করা আপনার সিস্টেমের সংগ্রহস্থলকে প্রভাবিত করবে না

শুভকামনা করছি. আতঙ্কিত হবেন না।


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

0

আমি এটি করার পরামর্শ দিচ্ছি: apt-get remove <installed-packages> && apt-get autoremove(নির্ভরতা অপসারণের জন্য) && apt-get purge <installed-packages>(কনফিগার ফাইল পুনর্বিবেচনা মুছে ফেলার জন্য) তারপরে আপনি যে ফোল্ডারগুলির প্রয়োজন নেই সেগুলি সরাতে পারেন, তবে এটি ইতিমধ্যে আপনার জন্য করা উচিত :)


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