'সুডো রত্ন ইনস্টল' বা 'রত্ন ইনস্টল' এবং রত্নের অবস্থানগুলি


140

' sudo gem list --local' এবং ' gem list --local' চালানো আমাকে আলাদা ফলাফল দেয়। আমার রত্ন পাথটি আমার বাড়ির ফোল্ডারে সেট করা আছে এবং এতে কেবল ' gem list --local' রত্ন রয়েছে ।

আমার কম্পিউটারে রত্নগুলি বিভিন্ন ডিরেক্টরিতে ইনস্টল করা সম্ভবত ভাল নয়, তাই আমারও কি রত্নের পথটি আলাদাভাবে সেট করা উচিত এবং sudoকিছু ইনস্টল করার সময় আমার সবসময় ব্যবহার করা উচিত ?

my ~/.profile
export PATH=/opt/local/bin:/opt/local/sbin:$PATH
export PATH="/usr/local/bin:/usr/local/sbin:/usr/local/mysql/bin:$PATH"

~ / .bash_ প্রোফাইলে খালি।


1
আমি মনে করি আমাদের মধ্যে যাদের জন্য মূল সুযোগগুলির প্রয়োজন এমন একটি রত্ন ব্যবহার করতে হবে তাদের জন্য এটি একটি বৈধ প্রশ্ন।
কেলি

সম্পর্কিত: স্ট্যাকওভারফ্লো . com / প্রশ্নগুলি / ২১১৪১৫৪৪ / / । আমি রুবি সংস্করণ পরিচালনার জন্য আরবিএনভ ব্যবহার করি এবং একটি ইস্যুতে চলে এসেছি কারণ আমি sudo gem install railsপরিবর্তে ব্যবহার করেছি gem install rails
ডেনিস

3
"আমি মনে করি আমাদের মধ্যে যাদের জন্য মূল সুযোগগুলির প্রয়োজন এমন একটি মণি ব্যবহার করতে হবে এটি একটি বৈধ প্রশ্ন is" আমি মনে করি যে কোনও রত্নের জন্য মূল অধিকার প্রয়োজন, এটি ইনস্টল করা বা চালানো, অত্যন্ত সন্দেহজনক। রত্নগুলি একটি স্যান্ডবক্সে চালানো এবং ব্যবহারকারীর অনুমতি নিয়ে চালাতে সক্ষম হওয়া উচিত।
টিন ম্যান

1
sudoআপনার পায়ের দিকে বোঝা একটি বোঝা বন্দুক। এটি কী করে এবং এটি আপনার সিস্টেমে কীভাবে প্রভাব ফেলতে পারে তা না বুঝে এটি ব্যবহার করা আপনার চোখ বন্ধ করে ট্রিগারটি টানানোর মতো। আপনি আপনার পায়ের কোনও ছিদ্র অঙ্কুর করতে পারেন, আপনি নাও পারেন, তবে কোনওভাবেই আপনি কীভাবে ক্ষতিটিকে পূর্বাবস্থায়িত করতে পারবেন তা না জানলে আপনি ঝুঁকিটি চালাতে চান না। sudoসিস্টেমের মালিকানাধীন রুবিতে লেখার ব্যবহার , ম্যাক ওএস-এ, অ্যাপল তাদের নিজস্ব ব্যবহারের জন্য ইনস্টল করেছিল। আমরা এটিতে পিগিব্যাক করতে পারি, তবে ভুল জিনিস পরিবর্তন করা তাদের কোডটি ভেঙে দিতে পারে। সে কারণেই আমরা উত্স থেকে ইনস্টল করি বা ইনস্টল করতে অন্য কিছু ব্যবহার করি যেখানে আমরা নিরাপদে এটি টুইট করতে পারি।
টিন ম্যান

উত্তর:


146

অন্যান্য সমস্ত পোস্টের বিপরীতে আমি sudoরত্ন ইনস্টল করার সময় ব্যবহার না করার পরামর্শ দিই ।

পরিবর্তে আমি আপনাকে আরভিএম ইনস্টল করার এবং পোর্টেবল রত্ন ঘর এবং রুবির বিভিন্ন সংস্করণ সহ সবাইকে এক ছাদের নীচে বসবাস করে সুখী জীবন শুরু করার পরামর্শ দিচ্ছি ।

নিরবচ্ছিন্ন জন্য, ডকুমেন্টেশন থেকে :

আরভিএম হ'ল একটি কমান্ড লাইন সরঞ্জাম যা আমাদের একাধিক রুবি পরিবেশ এবং রত্নগুলির সেটগুলির সাথে সহজেই ইনস্টল, পরিচালনা এবং কাজ করতে দেয়।

কারণ সঙ্গে রত্ন ইনস্টল sudoমাত্র চেয়েও কঠিন অপরাধ gem installকরা হয়েছে কারণ এটি জন্য রত্ন ইনস্টল হয় সমস্ত ব্যবহারকারী হিসাবে root। আপনি মেশিনটি ব্যবহার করছেন এমন একমাত্র ব্যক্তি যদি এটি ঠিক থাকে তবে আপনি যদি তা না হন তবে অদ্ভুততার কারণ হতে পারে।

যদি আপনি স্থির করেন যে আপনি আপনার সমস্ত রত্নগুলি উড়িয়ে দিতে এবং আবার শুরু করতে চান তবে এটি কোনও নির্মূলের ব্যবহারকারী হিসাবে না করা অনেক সহজ এবং নিরাপদ।

আপনি যদি সিদ্ধান্ত নিতে চান যে আপনি ব্যবহার করতে চান RVMতবে ব্যবহার করা sudoসমস্ত ধরণের অদ্ভুততার কারণ ঘটবে কারণ আপনি যে প্রতিটি রুবি সংস্করণটি ইনস্টল করেন RVMতার নিজস্ব জিইএমহোম রয়েছে।

এছাড়াও, আপনি যদি আপনার উন্নয়নের পরিবেশটিকে যতটা সম্ভব আপনার পরিবেশের পরিবেশের কাছাকাছি তৈরি করতে পারেন তবে এটি দুর্দান্ত এবং উত্পাদনে আপনি সম্ভবত অ-মূল ব্যবহারকারী হিসাবে রত্ন ইনস্টল করবেন।


12
আরভিএমের পরামর্শের জন্য +1, তবে -1 কেবলমাত্র সুডো ব্যবহারের বিকল্প সম্ভাবনার বিভ্রান্তিকর নিন্দার জন্য
tfwright

10
ঠিক আছে, তবে আপনার সমস্ত কারণগুলি "আরভিএম এত বড় কারণ" এ সিদ্ধ হয়ে গেছে কারণ সুডো ব্যবহার বিশেষত ক্ষতিকারক নয়। আপনি যে অংশটি ভাগ করা কম্পিউটারে রয়েছেন সেই নির্দিষ্ট পরিস্থিতিতে আপনি কেবল একবারই চান না। আপনি যদি আরভিএমের সুপারিশ করতে চান তবে এটি করুন। এফইউডিডি অবলম্বন করার দরকার নেই।
tfwright

6
আমি এফইউডি ছড়িয়ে দেওয়ার চেষ্টা করি না, এবং আরভিএমবিহীন কারণ দেওয়ার চেষ্টা করেছি, যদি মনে হয় তবে আমি ক্ষমা চাইছি।
jonnii

9
আরভিএম একটি ভাল বিকল্প। তবে আপনার আরও ভাল চেষ্টা করা উচিত, আরবিএনভি। এটি আরভিএমের চেয়ে কম অনুপ্রবেশকারী।
আন্দ্রেস

4
@ হন্টভেরিজিজেজএফ লেভেন্তে আপনার সমস্ত প্রশ্নের একটি মন্তব্যে সম্বোধন করা কঠিন, তবে এর সংক্ষিপ্ততাটি হ'ল আপনি চান যে আপনার বিকাশের পরিবেশ যতটা সম্ভব উৎপাদনের নিকটবর্তী হোক। আপনি যদি দুটি অ্যাপ্লিকেশনে কাজ করছেন, যার মধ্যে একটি রুবি ২.১ এবং অন্যটি ১.৯ ব্যবহারকারী ব্যবহার করে তবে আপনার স্থানীয় পরিবেশটি সঠিক সংস্করণটি ব্যবহার করছে কিনা তা নিশ্চিত করতে হবে। আরভিএম বা আরবিএনভি এটি আপনার জন্য করে। আপনি যে কোনও স্যান্ডবক্স পরিবেশ ব্যবহার করবেন একই কারণে আপনি এটি ব্যবহার করবেন তবে এই ক্ষেত্রে প্রধান সুবিধা হ'ল বিচ্ছিন্নতা। আশা করি এটা কাজে লাগবে!
jonnii

128

আপনি আপনার স্থানীয় পরিবেশে (ছাড়াই sudo) রত্নও ইনস্টল করতে পারেন

gem install --user-install <gemname>

আমি প্রস্তাব দিচ্ছি যাতে আপনি আপনার সিস্টেম-স্তরের কনফিগারেশনের সাথে ঝামেলা করবেন না এমনকি এটি যদি একক ব্যবহারকারী কম্পিউটারও হয়।

রত্নগুলি জ্যামপ্যাথগুলি দেখে কোথায় যায় তা পরীক্ষা করতে পারেন gem environment। আমার ক্ষেত্রে এটি "~ / .gem / রুবি / 1.8"।

আপনার যদি আপনার পাথে স্থানীয় ইনস্টলগুলি থেকে কিছু বাইনারি যুক্ত হয় তবে আপনি আপনার বাশার্কে কিছু যুক্ত করতে পারেন যেমন:

if which ruby >/dev/null && which gem >/dev/null; then
    PATH="$(ruby -r rubygems -e 'puts Gem.user_dir')/bin:$PATH"
fi

( http://guides.rubygems.org/faqs/#user-install থেকে )


23
উপরের "তবুও অন্য একটি কনফিগারেশন সরঞ্জাম" সমাধানগুলির চেয়ে এই বিকল্পটির জন্য +1 করুন, আরবিএনভি / আরভিএম।
jjpe

আমি একটি রত্ন তৈরি করছি এবং ম্যানুয়ালগুলি অনুসারে আমাকে করতে হবে rake installএবং সুডো আইসিকে ঠিক করতে, আমাকে সেখানে /Library/Ruby/Gems/2.0.0/gems/bundler-1.7.3/lib/bundler/gem_helper.rbযোগ করার জন্য ম্যানুয়ালি প্যাচ করতে --user-installহয়েছিল। এর চেয়ে ভাল সমাধান খুঁজে পাওয়া যায় না, কারণ দেখে মনে হচ্ছে rake installঅতিরিক্ত পরামিতি গ্রহণ করা হয় না।
নাকিলন

আমি প্রথম আদেশটি দিয়ে একেবারে শিহরিত। আমি রত্নগুলি ইনস্টল করার চেষ্টা করছি এবং আমার সমস্যা হচ্ছে কারণ আমার সুডোর সুবিধা নেই। সেই আদেশ কাজ করেছে !!!!
কালেব ক্লেভেটার

34

আরও ভাল, --user-installআপনার ~ / .gemrc ফাইলটিতে রাখুন যাতে আপনার এটি প্রতিবার টাইপ করতে না হয়

gem: --user-install

13

যদি তুমি

  • sudo সঙ্গে রুবি রত্ন ইনস্টল
  • sudo ছাড়া রত্ন ইনস্টল করতে চান
  • আরভিএম / আরবেনভ ইনস্টল করতে চান না

আপনার সাথে নিম্নলিখিতগুলি যুক্ত করুন .bash_profile:

export GEM_HOME=/Users/your_user›/.gem
export PATH="$GEM_HOME/bin:$PATH"

টার্মিনাল OR এ একটি নতুন ট্যাব খুলুন source ~/.bash_profileএবং আপনি যেতে ভাল!


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

9

সম্পর্কিত (বান্ডলার ব্যবহারকারীদের জন্য), আপনি যদি আরভিএমের একটি হালকা বিকল্প চান যা ব্যবহারকারী-নির্দিষ্ট সুপরিচিত ডিরেক্টরিতে সমস্ত কিছু রাখবে, আমি এটি ব্যবহার করার পরামর্শ দিচ্ছি:

bundle install --path $HOME/.gem

আপনি যদি একই জায়গায় রত্ন ইনস্টল করতে চান

gem install --user-install GEMNAME

এগুলি .gem/ruby/RUBYVERSIONআপনার হোমডিরে ইনস্টল করবে । (সম্পর্কে এই প্রশ্নের অন্যান্য মন্তব্য দেখুন --user-install।)

এটি রত্নগুলিকে অ্যাক্সেসের প্রয়োজন ছাড়াই gem list, আনইনস্টলযোগ্য মাধ্যমে to রত্ন বা বান্ডলারের দ্বারা ইনস্টল করা চলমান স্ক্রিপ্টগুলি যুক্ত করে আপনার পথে রাখা যেতে পারেgem uninstallsudo

$HOME/.gem/ruby/RUBYVERSION/bin

তোমার $PATHgemআপনি যখন এটি সেট না করে থাকেন তবে নিজেই আপনাকে এ সম্পর্কে বলে gem install --user-install


এর জন্য ধন্যবাদ. বান্ডলারটি ডিফল্টরূপে এটি করা কি সম্ভব? (এবং যদি তা হয় তবে এটি কী ভাল ধারণা হবে?)
জোশটচ

6
sudo gem install --no-user-install <gem-name>

আপনার রত্ন বিশ্বব্যাপী ইনস্টল করবে , অর্থাত্ এটি ব্যবহারকারীর সমস্ত প্রসঙ্গে উপলব্ধ।


1
এটি কোনও বিক্রেতা ইনস্টল করা মণিও ওভাররাইট করতে পারে, যা ওএস একটি নির্দিষ্ট সংস্করণে সেট করার আশা করতে পারে। এবং এটি এর উপর নির্ভর করে এমন কোডটি ভঙ্গ করতে পারে।
টিন ম্যান

1
... অথবা এটি কোনও এমন রত্ন ইনস্টল করতে পারে যা কোনও বিক্রেতা সরবরাহ করে না, এবং এমন পদ্ধতিতে এটি করতে পারে যা এটি সিস্টেমের সমস্ত ব্যবহারকারীর জন্য উপলভ্য করে। এটা তোলে আস্তে বিরক্তিকর যে সব উত্তর সর্বত্র পাঠক অনুমান একটি ডেভ V / SA sysadmin যারা আসলে না চান একটি মণি সকল ব্যবহারকারীর জন্য উপলব্ধ একটি নির্দিষ্ট সংস্করণ করা। : ডি
ড্যানিসাউয়ার

1

আপনি আপনার রেল অ্যাপ্লিকেশনগুলিতে কোনও নির্দিষ্ট ফোল্ডারে (উদাহরণস্বরূপ বিক্রেতা /) এ রত্নগুলি ইনস্টল করতে পারেন:

bundle install --path vendor

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