ওএসএক্সে ইনস্টল করা সমস্ত রত্ন আনইনস্টল করবেন?


177

এমন উদাহরণ রয়েছে যেখানে আমি পূর্ববর্তী সমস্ত রত্ন ইনস্টলেশন পুনরায় স্থাপন ও আনইনস্টল করতে চাই।

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

আমি কীভাবে তার ওএসএক্স সিস্টেমে সমস্ত রত্নকে মার্জিতভাবে আনইনস্টল করতে পারি?


1
আজকাল এটি অপ্রয়োজনীয়। আরভিএম জানে যে আপনি সঠিক রুবি সংস্করণে স্যুইচ করার পরে রত্নগুলি কোথায় সন্ধান করবেন।
ফ্র্যাঙ্কলিন ইউ

1
yes Y | gem uninstall -a -I
স্টপানকো

@ ফ্র্যাঙ্কলিনইউতে কেবলমাত্র একটি দ্রুত নোট - এটি সর্বদা ক্ষেত্রে হয় না। আমার এমন উদাহরণ রয়েছে যেখানে বিশ্বব্যাপী নোকোগিরির অনুলিপি করা একটি অনুলিপি আরভিএম রত্নটির চেয়ে সর্বদা নজরে রয়েছে এবং বিশ্বব্যাপী এটি আনইনস্টল করতে হয়েছিল
নাথান ক্রুজ

@ নাথানক্রাউস তারপরে এটি আরভিএম-এ একটি বাগ আছে এবং এটি রিপোর্ট করা উচিত। আমি নিশ্চিত যে এটি আরভিএমের উদ্দেশ্যমূলক আচরণ নয়।
ফ্রাঙ্কলিন ইউ

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

উত্তর:


427

রুবিজেমস> = 2.1.0

gem uninstall -aIx

aসমস্ত সংস্করণ অপসারণ
Iনির্ভরতা নির্বাহী
xঅন্তর্ভুক্ত উপেক্ষা

রুবেজ <2.1.0

for i in `gem list --no-versions`; do gem uninstall -aIx $i; done

1
দুহ, আপনি আমাকে গতিতে পরাজিত করেছেন :)
রোমেন

3
তবে অবশ্যই, আপনি আমার জন্য ডিফল্ট রত্নগুলির একটি বুদ্ধিমান তালিকাটি পুনরায় ইনস্টল করতে চান যা হ'ল: "রত্ন ইনস্টল বান্ডলার জসন মিনিটেস্ট রেক আরডোক"
উইল মুর তৃতীয়

5
রত্ন তালিকা | কাট-ডি "" -ফ 1 | sudo xargs রত্ন আনইনস্টল করুন -আমাক্রম-আমার জন্য কাজ করেছেন
lesyk

5
কাজ করে না: ERROR: While executing gem ... (Gem::InstallError) gem "test-unit" cannot be uninstalled because it is a default gem(মণি 2.0.3)
এম অ্যান্টনি আইলো

@ অ্যান্টনি যদিও এটি কিছুটা বিপজ্জনক তবে আপনি এর মাধ্যমে ত্রুটিগুলি দমন করতে পারেনfor i in `gem list --no-versions`; do gem uninstall -aIx $i 2>/dev/null; done
ড্যারেন চেং

46

আপনি একটি নতুন জেমফিল তৈরি করতে এবং রান করতে পারেন bundle clean --force। এটি নতুন জেমফাইলে অন্তর্ভুক্ত নয় এমন সমস্ত রত্ন সরিয়ে ফেলবে।


3
এটি খুব দরকারী :)
ব্যবহারকারী 1190286

1
সর্বোত্তম উত্তর কারণ পরীক্ষা-ইউনিটটি আনইনস্টল করা যায় না এবং প্রক্রিয়াটি মেরে ফেলে।
ওয়েস্টনপ্লাটার

2
হ্যাঁ, এটি সেরা উত্তর। আমি মনে করি ওপির এই পোস্টটি 2.0.0.0 নির্বাচন করা উচিত।
TheTuxRacer

2
এটি অবশ্যই আমার জন্য কাজ করছে এবং অন্যান্য সংস্করণগুলির তুলনায় অনেক বেশি মার্জিত
ক্রিসপেন স্মিথ

29

একটি সহজতম সংস্করণ, '- কোন সংস্করণ' বিকল্পের সুবিধা নিয়ে কাটা পদক্ষেপটি এড়িয়ে চলেছে:

gem list --no-version |xargs gem uninstall -ax

আপনি যেহেতু সবকিছু মুছে ফেলছেন তাই আমি 'আই' বিকল্পের প্রয়োজন দেখছি না। যখনই রত্নটি সরানো হয়, ঠিক আছে।


1
sudoকোনও সাধারণ ব্যবহারকারীর দ্বারা রত্নগুলি ইনস্টল করা থাকলে প্রয়োজনীয় হবে না।
সাম্পব্লুকপার

আমি উত্তরকে কেন হতাশ করেছি তার কারণ হিসাবে আমার উত্তর দেখুন। আমি এখানে মন্তব্য করতে চেয়েছিলাম কিন্তু মন্তব্যগুলি লাইনের অনুমতি দেয় না ...
এরকোলিনো

ভাল, প্রচুর রত্ন মুছে ফেলতে পারে তবে কিছু এটি বান্ডিল, রেক, আরভিএমের মতো করে না
শীঘ্রই

খুব মার্জিত তবে ডিফল্ট রত্নগুলি অপসারণ করতে অক্ষমতার কারণে ব্যর্থ হয়। পরিবর্তে crftr এর সমাধান সুপারিশ
Freedom_Ben

11

প্রথমে আপনার কমপক্ষে রত্ন সংস্করণ ২.১.০ রয়েছে তা নিশ্চিত করুন

gem update --system
gem --version
# 2.6.4

খালি আনইনস্টল করতে:

gem uninstall --all

আপনার sudoকমান্ডটি ব্যবহার করতে হতে পারে :

sudo gem uninstall --all

10

হয় ব্যবহার করুন

$ gem list --no-version | xargs gem uninstall -ax

অথবা

$ sudo gem list --no-version | xargs sudo gem uninstall -ax

আপনি যা চান তার উপর নির্ভর করে আপনার উভয়কেই কার্যকর করতে হবে কারণ "রত্ন তালিকা" এবং "সুডো রত্ন তালিকা" স্বাধীন তালিকা সরবরাহ করে।

একটি সুডো-এড "রতী আনইনস্টল" বা অন্য কোনও উপায়ে কোনও সাধারণ "রত্ন তালিকা" মিশ্রণ করবেন না অন্যথায় আপনি সুডো-ইনস্টলড রত্নগুলি (প্রাক্তন) আনইনস্টল করে শেষ করতে পারেন বা প্রচুর ত্রুটি পেয়েছেন (আধুনিক)।


আপনি ঠিক বলেছেন, sudo বাদে আমি আমার উত্তর সম্পাদনা করেছি। উভয় সংস্করণের জন্য ব্যবহারকারীরা আপনার উত্তরের উপর নির্ভর করতে পারে।
থিয়াগো গঞ্জারোল্লি

9

আপনি Rubygems সংস্করণ 2.1.0 অথবা পরে ব্যবহার করে থাকেন, আপনি চেষ্টা করতে পারেন: gem uninstall --all


3
এটি 'রত্ন' নয় 'রত্ন' হওয়া উচিত।
সংগ্রহ করুন

6

আপনি যদি রুবি ব্যবহার করে এটি করতে পছন্দ করেন:

ruby -e "`gem list`.split(/$/).each { |line| puts `gem uninstall -Iax #{line.split(' ')[0]}` unless line.strip.empty? }"

চিয়ার্স


আমি এটির সাথে একটি ত্রুটি পাচ্ছি: ত্রুটি: রত্ন সম্পাদন করার সময় ... (রত্ন :: কমান্ডলাইনার) দয়া করে কমপক্ষে একটি রত্নের নাম উল্লেখ করুন (যেমন রত্ন জেমেএনএম বিল্ড)
এমবিদেব

1
@ এমএমদেব স্থির, তিনি স্ট্যাক ওভারফ্লোতে আমার উত্তরগুলিতে সহায়তা প্রদান করছেন :)
হারিস ক্রাজিনা

এটি উইন্ডোতে কাজ করে যেখানে কমান্ড শেলটি ... ভাল নয় hand
অ্যাডামসি

5

রুবিজেমস> = 2.1.0

gem uninstall -aIx

যদি টার্মিনাল ত্রুটির নীচে ফিরে আসে

ERROR:  While executing gem ... (Gem::FilePermissionError)
You don't have write permissions for the /Library/Ruby/Gems/2.0.0 directory.

তারপরে নীচের মত উপরে কমান্ড লিখুন

sudo gem uninstall -aIx

এবং আপনার ম্যাক ওএস অ্যাকাউন্টের পাসওয়ার্ড প্রবেশ করুন !!


5

এবং আপনারা যারা এখানে আছেন তাদের জন্য কারণ আপনি একটি নির্দিষ্ট উপসর্গ দিয়ে সমস্ত রত্নগুলি মুছে ফেলতে চান ( আহেমে আমি আপনাকে অ্যাডস-এসডিকে দেখছি!) আপনি এই জাতীয় কিছু চালাতে পারেন:

gem list --no-version | grep "aws-sdk-" | xargs gem uninstall -aIx

স্পষ্টত পরিবর্তে আপনার প্রশ্নের মধ্যে রাখুন aws-sdk-। আপনি প্রয়োজন -Iনির্ভরতা উপেক্ষা করার সেখানে।

অ্যান্ডোর পূর্বের উত্তরটি গৃহীত হয়েছে


4

একমাত্র কমান্ড আমাকে সমস্ত রত্ন পরিষ্কার করতে সহায়তা করেছিল এবং ডিফল্ট রত্নগুলি উপেক্ষা করে, যা আনইনস্টল করা যায় না

for x in `gem list --no-versions`; do gem uninstall $x -a -x -I; done

2

আমি খুব বেশিদিন আগে এটি করেছি (একই পোস্টার-চাইল্ড আরভিএম সুইচারের পরিস্থিতি):

gem list | cut -d" " -f1 | sudo xargs gem uninstall -Iax

সমস্ত রত্নের তালিকা (সংস্করণ স্টাফ সহ) নেয়, কেবল রত্নের নাম রাখতে এটি কেটে দেয়, তারপরে এই জাতীয় রত্নগুলির সমস্ত সংস্করণ আনইনস্টল করে।

এটি কেবল sudoতখনই কার্যকর যখন আপনার হাতে সিস্টেম জুড়ে রত্ন ইনস্টল থাকে এবং প্রয়োজন ব্যতীত অন্তর্ভুক্ত করা উচিত নয়।


1

রুট হিসাবে ইনস্টল করা রত্নগুলি অপসারণ করার চেষ্টা করার সময়, ডিফল্ট রত্ন আনইনস্টল করার চেষ্টা করার সময় কোনও ত্রুটি দেখা দিলে xargs থামবে বলে মনে হয়:

sudo gem list | cut -d" " -f1 | xargs gem uninstall -aIx
# ERROR:  While executing gem ... (Gem::InstallError)
#    gem "test-unit" cannot be uninstalled because it is a default gem


এটি সবার জন্য কাজ করবে না, তবে আমি পরিবর্তে যা ব্যবহার করেছি তা এখানে:

sudo for gem (`gem list | cut -d" " -f1`); do gem uninstall $gem -aIx; done

1
gem list --no-version | grep -v -e 'psych' -e 'rdoc' -e 'openssl' -e 'json' -e 'io-console' -e 'bigdecimal' | xargs sudo gem uninstall -ax

গ্রেপ এখানে ডিফল্ট রত্ন বাদ দিচ্ছে। অন্য সমস্ত রত্নগুলি আনইনস্টল করা হবে। আপনি sudoযদি অনুমতি সংক্রান্ত সমস্যা পান তবে আপনি এটির আগেও যেতে পারেন ।

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