কোনও মণি ইনস্টল করবেন বা রুবিগেমস আপডেট করবেন যদি এটি কোনও অনুমতি ত্রুটিতে ব্যর্থ হয়


559

আমি ব্যবহার করে একটি রত্ন ইনস্টল করার gem install mygemবা রুবিগেমস আপডেট করার চেষ্টা করছি gem update --systemএবং এটি এই ত্রুটির সাথে ব্যর্থ হয়:

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

কীভাবে এটি সমাধান করবেন সে সম্পর্কে কারও কি ধারণা আছে?


5
: এখানে আমার সমাধান stackoverflow.com/questions/34071868/...
LanceP

2
আমার ত্রুটি ঘটেছে কারণ আমি করছি: রত্ন আপডেট কোকোপডস সঠিক: সুডো রত্ন আপডেট কোকোপডস
অভিষেক

60
sudo chown -R $USER /Library/Ruby/Gems/
ভাসকোর্ট

2
এই কমান্ডটি কেবল আমার জন্য ব্যবহার করা হয়েছে: sudo রত্নটি ইনস্টল করুন মাইগেম
জয়প্রকাশ দুবে

1
আমি zsh শেল ব্যবহার করছিলাম এবং এটি problem / .zshrc এ পাথ সমস্যা ছিল। আমি ফাইলটির শেষে এই লাইনটি ব্যবহার করেছি এবং এটি আমার জন্য কাজ করেছে: PATH = "export হোম / .rbenv / শিমস:
AT পথ

উত্তর:


317

আপনার কাছে / লাইব্রেরি / রবি / গেমস / ১.৮ ডিরেক্টরিতে লেখার অনুমতি নেই।

এর অর্থ হ'ল আপনার সেখানে লেখার অনুমতি নেই।

এটি অ্যাপল দ্বারা নিজের ব্যবহারের জন্য ইনস্টল করা রুবির সংস্করণ। এটিতে সামান্য পরিবর্তন করা ঠিক আছে যদিও আপনি যদি জানেন যে আপনি কী করছেন , কারণ আপনি অনুমতি সংক্রান্ত সমস্যা সম্পর্কে নিশ্চিত নন, আমি বলব যে এই ট্র্যাকটি অবিরত রাখা ভাল ধারণা নয়।

পরিবর্তে, আমি আপনাকে দৃ strongly়ভাবে পরামর্শ দিচ্ছি যে আপনি আপনার নিজের ডিরেক্টরিতে একটি স্যান্ডবক্সে ইনস্টল করা একটি পৃথক রুবি পরিচালনা করতে rbenv বা আরভিএম ব্যবহার করুন , যাতে আপনি রুবি সিস্টেমকে বিশৃঙ্খলা না করে চিন্তিত না করে পরিবর্তন / ভাঁজ / স্পিন্ডল / পরিবর্তন করতে পারেন।

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


176
যদিও আপনাকে আলাদা রুবি লাইব্রেরি ব্যবহার করার দরকার নেই। উপরে মাইকেলের পরামর্শ অনুসারে কেবল আপনার সামনে 'সুডো' রাখুন।
সেরোসায়েস

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

203
আমার মতো যারা প্রকৃতপক্ষে কোনও রুবি দেব করেন না এবং এই সমস্ত স্ফটিক জিনিসগুলি কী তা বোঝার চেষ্টা করার জন্য আধ ঘন্টা ধরে গন্ডগোল করতে চান না। brew install rubyআপনার নির্ভরতা সম্পর্কিত সমস্যাগুলি একটি পরিষ্কার উপায়ে সমাধান করবে যা আপেল ইনস্টলটিকে সামঞ্জস্য করে না। আপনি যদি ইতিমধ্যে sudoপ্রাথমিক ইনস্টলটির আপডেট পেয়ে থাকেন এবং আপনি যা করেছেন তা নিয়ে উদ্বিগ্ন হয়ে থাকেন তবে আপনার এটি দিয়ে এটি পূর্বাবস্থায় ফিরিয়ে নিতে সক্ষম হওয়া উচিত:cd /System/Library/Frameworks/Ruby.framework/Versions;sudo rm Current; sudo ln -s 1.8 Current;
লুই

21
" I did the sudo tangle and wound up modifying my pre-installed Ruby. I did your steps to try to fix the problem, but now when I do irb or ruby -v, I get command not found. What's going on and is there a fix" এবং এটি লোকেরা কেন ব্যবহার করবে না sudoবা ব্যবহার করবে না তার জন্য এটি আরও ওজন যুক্ত করে chown। দীর্ঘশ্বাস ....
টিন ম্যান

55
সমাধান করা হয়েছে: এল ক্যাপ্টেনের পরে brew install rubyটার্মিনালটি বন্ধ করে আবার খুলুন।
Fmessina

420

--user-installব্যবহারের পরিবর্তে যুক্ত করার চেষ্টা করুন sudo:

gem install mygem --user-install

4
আপনার উত্তর কেন আগে পোস্ট করা হয়নি তা আমি জানি না। --user-installবিকল্প দৃশ্যত হয়েছে কিছু সময়ের জন্য প্রায় হয়েছে। আমি কেবল ইচ্ছে করে আপনি এটি আগে লিখেছেন। =)
মাইকেল - ক্রে শিরকি

7
এটি শীর্ষে যেতে হবে! Sudo বা su এর সাথে ইনস্টল করা একটি খারাপ ধারণা কারণ আপনি মডিউলগুলিতে কোনও অনুমতি সিস্টেম প্রয়োগ করছেন এবং সম্ভবত বিশ্বব্যাপী ইনস্টল করা প্যাকেজগুলি অন্যথায় ইনস্টল করা প্যাকেজগুলি বা অন্যান্য প্রকল্পের নির্ভরতার সাথে সংঘর্ষে পড়তে পারে। আরবেএনভ ব্যবহারের জন্য আপনাকে অন্য একটি সফ্টওয়্যার ইনস্টল করতে হবে এবং জটিলতার একটি স্তর যুক্ত করতে হবে।
হুবার্ট গ্রেজস্কোয়িয়াক

7
এটি কাজ করে, তবে সতর্ক করে দেয়: 'সতর্কতা: আপনার PATH- এ / ব্যবহারকারীর / << ব্যবহারকারীর নাম / গেম / রবি / ২.০.০/২০ নেই, মণি এক্সিকিউটেবল চলবে না।' নিম্নলিখিত লিঙ্কটি কীভাবে আপনার পথে আপডেট করতে হবে (vi ব্যবহার না করে) আপডেট নির্দেশাবলী সরবরাহ করে hathaway.cc/post/69201163472/…
দাউদ

4
এটি সহজ এবং যৌক্তিক। আপনার বাশার্কে না থাকলে রুবি পাথ যুক্ত করুন if which ruby >/dev/null && which gem >/dev/null; then PATH="$(ruby -rubygems -e 'puts Gem.user_dir')/bin:$PATH" fi <br> সূত্র: guides.rubygems.org/faqs/#user-install
ইন্দার কুমার রাঠোর

1
এই অ্যাপল এর (রুবি ইনস্টল) সিস্টেম দিয়ে স্ক্রু আপ করতে পারেন?
ড্যানিয়েল স্প্রিঞ্জার

93

আপনার সত্যই একজন রুবি সংস্করণ পরিচালক ব্যবহার করা উচিত।

একটি যথাযথভাবে ব্যবহার করা আপনার gem updateআদেশ প্রতিরোধের সময় আপনার অনুমতি সমস্যার সমাধান করতে পারে would

আমি rbenv সুপারিশ ।

তবে, আপনি যখন কোনও রুবি সংস্করণ পরিচালক ব্যবহার করেন, আপনি এখনও একই ত্রুটি বার্তাটি পেতে পারেন।

যদি আপনি এটি করেন এবং আপনি rbenv ব্যবহার করছেন, কেবলমাত্র ~/.rbenv/shimsরুবি সিস্টেমের পথের আগে ডিরেক্টরিটি রয়েছে কিনা তা যাচাই করুন ।

$ echo $PATH আপনাকে আপনার লোড পাথের ক্রমটি প্রদর্শন করবে।

যদি আপনি দেখতে পান যে আপনার শিমস ডিরেক্টরিটি আপনার সিস্টেম রুবি বিন ডিরেক্টরিটির পরে আসে, তবে আপনার ~/.bashrcফাইলটি সম্পাদনা করুন এবং এটি আপনার শেষ রফতানি PATH কমান্ড হিসাবে রাখুন: export PATH=$HOME/.rbenv/shims:$PATH

$ ruby -v আপনি রুবির কোন সংস্করণ ব্যবহার করছেন তা আপনাকে দেখায়

এটি দেখায় যে আমি বর্তমানে রুবির সিস্টেম সংস্করণ ব্যবহার করছি (সাধারণত ভাল না)

$ ruby -v
ruby 1.8.7 (2012-02-08 patchlevel 358) [universal-darwin12.0]

$ rbenv global 1.9.3-p448 আমাকে একটি নতুন, প্রাক ইনস্টল করা সংস্করণে স্যুইচ করে (নীচে উল্লেখ দেখুন)।

এটি দেখায় যে আমি রুবির একটি নতুন সংস্করণ ব্যবহার করছি (এটি সম্ভবত মণিটির কারণ হবে না: ফাইলপ্রেমিশনর)

$ ruby -v
ruby 1.9.3p448 (2013-06-27 revision 41675) [x86_64-darwin12.4.0]

আপনার সাধারণত কোনও মণি কমান্ড সুডো দিয়ে প্রফেস করতে হবে না। আপনি যদি এটি করার প্রয়োজন বোধ করেন তবে কোনও কিছু সম্ভবত ভুল কনফিগার করা হয়েছে।

আরবেনভ সম্পর্কে বিস্তারিত জানতে নিম্নলিখিতটি দেখুন:


7
আপনি যদি ব্যবহার করছেন তবে আপনাকে নিজের পাসের সাথে গোলমাল করা উচিত নয় rbenv, আপনি যদি হোমব্রিউ ইনস্টলেশন সংক্রান্ত নির্দেশাবলী অনুসরণ করেন তবে আপনাকে যা করতে হবে তা হ'ল eval "$(rbenv init -)"আপনার শেল কনফিগারেশনে যুক্ত করা rbenvউচিত এবং আপনার PATHজন্য সেট আপ করার যত্ন নেওয়া উচিত ।

ধন্যবাদ। আমি 'rbenv গ্লোবাল' ভুলে গিয়েছিলাম তাই আমি এখনও সিস্টেম রুবি ব্যবহার করছিলাম, এবং রত্ন ইনস্টল ব্যর্থ হয়েছিল।
গ্রাহাম পার্কস

75

আপনি কেন করবেন না:

sudo gem update --system

39
মূল হিসাবে রত্ন ইনস্টল করা ভাল ধারণা নয়। stackoverflow.com/questions/2119064/...
spuder

সমস্যা ছিল brew upgrade Error: Permission denied...। এটি এটি স্থির করে। ধন্যবাদ!
ওস্তাপ আন্ড্রুসিভ

12
কখনও SUDO ব্যবহার করবেন না, যদি এটি করতে হয় তবে আপনি আপনার সেটআপে কিছু ভুল করেছেন। দয়া করে rbenv বা rvm ব্যবহার করুন।
ক্রিস হাফ

14
কেন সবসময় কোনও আদেশের সামনে sudo নিক্ষেপ করার জন্য অনুমতিগুলির সমস্যার উত্তরগুলি দেওয়া হয়? কিভাবে এই সেরা অনুশীলন?
স্টিভেন

hyh: qzc.xcodeproj ylgwhyh m gem cocoapods ERROR ইনস্টল করুন: রত্ন সম্পাদন করার সময় ... (রত্ন :: ফাইলপ্রিমারেশন) আপনার / লিবারি / রবি / জিমেস / ২.০.০ ডিরেক্টরিটির জন্য লেখার অনুমতি নেই।
ylgwhyh

40

এটি ম্যাকওস মোজাভে এবং ম্যাকও ক্যাটালিনায় একটি পরিষ্কার উপায়ে সমস্যার সমাধান করবে:

brew install ruby

তারপরে আপনার ব্যবহারকারী ডিরেক্টরিতে GEM_Home সেট করুন। টার্মিনালে:

Bash:

echo '# Install Ruby Gems to ~/gems' >> ~/.bashrc
echo 'export GEM_HOME=$HOME/gems' >> ~/.bashrc
echo 'export PATH=$HOME/gems/bin:$PATH' >> ~/.bashrc
source ~/.bashrc

বা যদি চালু থাকে Zsh:

echo '# Install Ruby Gems to ~/gems' >> ~/.zshrc
echo 'export GEM_HOME=$HOME/gems' >> ~/.zshrc
echo 'export PATH=$HOME/gems/bin:$PATH' >> ~/.zshrc
source ~/.zshrc

2
আপনি এটি কিভাবে খুঁজে পেলেন? কাজ করছে!
কুজডু

2
তুমি সেই লোক! উচ্চ পাঁচ, এটি সত্যিই একটি মোহন মত কাজ করে। অনেক ধন্যবাদ.
mrDinkelman

1
আমি দৌড়ে যাওয়া পর্যন্ত এটি আমার পক্ষে কাজ করে না xcode-select --install। এটি এক্সটেনশনগুলি সংকলন করতে প্রয়োজনীয়।
মার্ক পেরিন-পেলেটিয়ার

আমি এটি চালিয়েছি এবং আমি এর দ্বারা করা পরিবর্তনগুলি পুনরায় সেট করতে সক্ষম হতে চাই, আপনি কীভাবে এটি পুনরায় ফিরিয়ে আনতে জানেন? @ ফমেসিনা
কারেনআনে

~/.bashrc~/.zshrcsource ~/.bashrc
এটির

34

আমার জন্য সমস্যাটি rbenvবিশ্বব্যাপী সঠিক সংস্করণটি ব্যবহার করতে এবং ভুলে যাওয়ার কারণে হয়েছিল was

সুতরাং আমি এটি সেট ছিল rbenv global xxx

আমার ক্ষেত্রে আমি ইনস্টল করেছি 2.0.0-p247তাই আমাকে কমান্ডটি জারি করতে হয়েছিল:

rbenv global 2.0.0-p247
rbenv rehash

তারপর সব ঠিকঠাক কাজ ছিল।


3
আপনারা যারা ইতিমধ্যে rbenv ব্যবহার করেছেন এবং OSX কে নতুন সংস্করণে আপগ্রেড করার পরে রত্ন ইনস্টল করার সময় অনুমতি ত্রুটি পাওয়া শুরু করেছেন: rbenv global 2.1.1উদাহরণস্বরূপ আপনাকে rbenv সংস্করণ সেট করে শুরু করা উচিত এবং তারপরে অনুসরণ করুন rbenv rehash। এখন আপনার gem installকমান্ড পুনরায় চলমান ।
njappboy

1
+ এই + টার্মিনাল পুনরায় আরম্ভ।
XåpplI'-I0llwlg'I -

1
ভবিষ্যতের অন্বেষণকারী: rbenv
পুনঃস্থাপন github.com/rbenv/rbenv-gem-rehash

আমার জন্য নিখুঁতভাবে কাজ করেছেন! মনে হচ্ছিল rbenv rehashআমি অনুপস্থিত ছিল।
jamesmarkcook

লক্ষণীয় যে এটির সিস্টেম রুবি যে অনুমতিগুলির অভাব ছিল এবং rbenv সিস্টেম রুবি ব্যবহার করে যদি কোনও বিশ্ব রুবি সেট না করা হত। এটি দিয়ে যাচাই করা উচিত rbenv versions
ডেনিস

23

আপনার নিজের পথগুলি সংশোধন করা দরকার।

এই ফিক্সটি কার্যকর হবে কিনা তা নির্ধারণ করতে নিম্নলিখিত চালনা করুন:

which gem

এটি এমন একটি ডিরেক্টরি আউটপুট করবে যা আপনার কাছে অনুমতি নেই:

/usr/bin/gem

এটি নীচের পদক্ষেপগুলি সম্পাদন করতে ঠিক করতে:

  1. আপনার প্রোফাইলে কপি করার জন্য আপনার প্রয়োজনীয় পথটি নির্ধারণ করুন:

    rbenv init -

    আউটপুটটির প্রথম লাইনটি আপনাকে আপনার প্রোফাইলে অনুলিপি করতে হবে সেই লাইনটি:

    export PATH="/Users/justin/.rbenv/shims:${PATH}" #path that needs to be copied
    source "/usr/local/Cellar/rbenv/0.4.0/libexec/../completions/rbenv.zsh"
    rbenv rehash 2>/dev/null
    rbenv() {
      typeset command
      command="$1"
      if [ "$#" -gt 0 ]; then
        shift
      fi
    
      case "$command" in
      rehash|shell)
        eval `rbenv "sh-$command" "$@"`;;
      *)
        command rbenv "$command" "$@";;
      esac
    }
  2. আপনার প্রোফাইলে পাথটি অনুলিপি করুন এবং এটি সংরক্ষণ করুন।

  3. আপনার প্রোফাইলটি পুনরায় লোড করুন ( source ~/.zshenvআমার জন্য)।

  4. চালান rbenv rehash

এখন আপনি যখন চালান তখন আপনার which gemএকটি স্থানীয় পাথ পাওয়া উচিত যাতে আপনার অনুমতি রয়েছে:

/Users/justin/.rbenv/shims/gem

আমার পরিস্থিতিতে সমস্যা ছিল। সমস্ত প্রয়োজনীয় পরিবর্তন করতে eval "$(rbenv init -)"আপনার এতে অন্তর্ভুক্ত থাকতে সক্ষম হওয়া উচিত ~/.bash_profile
এনআইআই

সেরা উত্তর. আমার প্রোফাইলটির নাম .bash_profile ছিল এবং আপনি ফাইলটি এইভাবে খুলতে পারেন: touch / .bash_profile টাচ করুন; ~ /
.bash_profile


17

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

sudo chown -R `whoami` /Library/Ruby/Gems

1
বড় না! /Libraryফোল্ডারে অনুমতি কখনও পরিবর্তন করবেন না , ভবিষ্যতে আপডেটগুলিতে সিস্টেমটি ভেঙে যেতে পারে। (দেরিতে জবাবের জন্য দুঃখিত)
র‌্যাপ্টর

@ র্যাপ্টর আমি একটি সাবফোল্ডারে অনুমতিগুলি পরিবর্তন করছি, "/ লাইব্রেরি" নয়। আমার ক্ষেত্রে, আমি ভুল করে রত্নগুলি রুট হিসাবে ইনস্টল করেছি, তাই আমি এটিকে পূর্বাবস্থায় ফেরাতে চাইছিলাম। আমি তাত্ত্বিকভাবে ভাবতে পারি এমন কোনও নেতিবাচক পরিণতি নেই বা আমি এর মধ্যে পর্যবেক্ষণ করেছি। আমি কৌতূহলী - আপনি কেন এটি একটি খারাপ ধারণা বলে মনে করেন?
thebiggestlebowski

পথ সিস্টেমের জন্য। ম্যাকোসের আরও আপডেটগুলি ভেঙে যেতে পারে।
র‌্যাপ্টর

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

15

দুটি রুট রয়েছে: rbenv বা আরভিএম হয় ব্যবহার করুন। নীচে উভয় জন্য রেসিপি আছে। আপনি করার আগে, আপনি সম্ভবত রত্নগুলির জন্য স্থানীয় নথিগুলির ইনস্টলেশন বন্ধ করতে চান।

echo "gem: --no-ri --no-rdoc" >> ~/.gemrc

তারপর:

install rbenv

install ruby-build

সঞ্চালন করুন:

rbenv install 2.1.2 (or whatever version you prefer)
rbenv global 2.1.2
gem update --system

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

পরিবর্তে 'আরভিএম' ব্যবহার করুন: আরভিএম রান ইনস্টল করতে :

rvm install 2.1.2
rvm use 2.1.2
gem update --system

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


13

আমি কম রত্নের জন্যsudo এটি কীভাবে খুঁজে পেয়েছি :

  1. brew install rbenv ruby-build
  2. sudo gem update --system
  3. এতে রফতানি যুক্ত করুন .bashrc:

    export RBENV_ROOT="$(brew --prefix rbenv)"
    export GEM_HOME="$(brew --prefix)/opt/gems"
    export GEM_PATH="$(brew --prefix)/opt/gems"
  4. এবং অবশেষে এটি আপনার যুক্ত করুন ~/.gemrc:

    gem: -n/usr/local/bin
  5. gem update --system


আমি ব্যবহার করেছি brew install rebenv ruby-build, তারপর systemআমার ডিরেক্টরি পরে আছে ? কোনও ধারণা কী কারণে এটি ঘটেছে, এবং কীভাবে এ থেকে মুক্তি পাবেন system?
7537247

13

নীচে আমার আসল উত্তরটি ব্যবহার করার আগে নাথান্ধির উত্তর চেষ্টা করুন । তাঁর প্রস্তাবনাটি --user-installএকই উদ্দেশ্য অর্জন করতে .bash_profileহবে আপনার সাথে কৌতুক করা বা আপনার রুবি সংস্করণ নির্ধারণ না করে।


আপনি যদি কোনও নির্দিষ্ট রুবি সংস্করণ সম্পর্কে উদ্বিগ্ন না হন, তবে আপনি ভারী-লিফটে রুবি পরিবেশগত পরিচালকের বিকল্পগুলি এড়িয়ে যেতে পারেন এবং কেবল এই লাইনগুলিতে যুক্ত করতে পারেন ~/.bash_profile:

export GEM_HOME="$HOME/.gem/ruby/2.0.0"
export GEM_PATH="$HOME/.gem/ruby/2.0.0"

এর মূল আউটপুট থেকে পথটি চুরি হয়ে গেছে gem env:

RubyGems Environment:
  - RUBYGEMS VERSION: 2.0.14
  - RUBY VERSION: 2.0.0
  - INSTALLATION DIRECTORY: /Library/Ruby/Gems/2.0.0
  - RUBY EXECUTABLE: /System/Library/.../2.0/usr/bin/ruby
  - EXECUTABLE DIRECTORY: /usr/bin
  - RUBYGEMS PLATFORMS:
    - ruby
    - universal-darwin-14
  - GEM PATHS:
     - /Library/Ruby/Gems/2.0.0
     - /Users/mylogin/.gem/ruby/2.0.0 # <-- This guy, right here.
     - /System/Library/.../usr/lib/ruby/gems/2.0.0
  ...

কোনও sudoআইং লাগবে না, এবং আপনি ইতিমধ্যে ইনস্টল করা রুবি ব্যবহার করতে পারেন, অ্যাপলের সৌজন্যে।


3
+1: এটি আমার পক্ষে দুর্দান্ত কাজ করেছে। প্রত্যেকেই তারা যে মেশিনটি ব্যবহার করছে তার সিস্টেম প্রশাসক নয় এবং তাই প্রত্যেকেরই 'সুডো', 'ছাউনাম' বা অনুরূপ সরঞ্জামগুলিতে অ্যাক্সেস নেই। অনুরূপ শিরাতে, লোকদের "রত্ন ইনস্টল - ব্যবহারকারী-ইনস্টল" সম্পর্কে সচেতন হওয়া উচিত যা মণিটি ব্যবহারকারীর হোম ডিরেক্টরিতে কোনও ব্যবহারকারীর দ্বারা ভাগ করা পরিবর্তে ডিরেক্টরিতে ইনস্টল করে।
কিছু লোক

12

আমার একটা করা দরকার ছিল rbenv rehash যাতে এটি আমার স্থানীয় রত্ন গ্রন্থাগারের দিকে ইঙ্গিত করে।

দেখে মনে হচ্ছে আপনি আপনার রত্ন ব্যবস্থাপককে সিস্টেম লাইব্রেরির দিকে ইঙ্গিত করেছেন, সুতরাং অনুমতিগুলি নিয়ে বিশৃঙ্খলা না করে, স্থানীয়ভাবে জিনিস নির্দেশ করার জন্য আপনার ম্যানেজারের জন্য "রিহ্যাশ" এর সমতুল্য করুন।


3
ভবিষ্যতের অন্বেষণকারী: rbenv পুনর্বাসিত
TCannadySF

12

প্রবীণ এবং বুদ্ধিমান

আমি এখানে যা বলছি তা করবেন না, আপনি যে কোনও সময় ব্যবহার করবেন না কেন সতর্ক থাকতে জানেন sudo। আপনি সম্ভবত যা কিছু rbenvকাজ করছেন তা আলাদা করার মতো কিছু ব্যবহার করতে চান ।


একটি উপায়

সম্পর্কে জানতে chown

আপনি কমান্ড লাইনটি পছন্দ করেন কিনা তা আমি জানি না তবে এটি আপনার সিস্টেমে প্যাকেজগুলি ইনস্টল করার জন্য যে কোনও সরঞ্জাম দিয়ে কোনও প্রকল্পে কাজ করতে সক্ষম হবে।

chown যতদূর আমি বলতে পারি, মালিকানা পরিবর্তনের জন্য দাঁড়িয়েছে।

আমি এই উত্তরটি অনুসন্ধান করার কারণটি হ'ল কারণ gem installআজ এই ত্রুটিটি আমার দিকে ফেলেছিল:

ERROR:  While executing gem ... (Gem::FilePermissionError)
    You don't have write permissions into the /var/lib/gems/1.9.1 directory.

এটি ব্যবহারের একটি নিখুঁত সুযোগ chown । আপনি দেখুন রুবি আমাদের এটির জন্য প্রয়োজনীয় ডিরেক্টরিটি দিয়েছেন এবং এটি মনে হয় এটি এটি এমন ডিরেক্টরি যা প্রায়শই ব্যবহার করবে।

এই ক্ষেত্রে, সমস্যাটি সমাধান করার জন্য একটি মাত্র তিনটি বিষয় জানা দরকার, তবে chownএটি আরও শক্তিশালী এবং আমি এখন যে প্রদর্শিত হবে তার চেয়ে অনেক বেশি নমনীয়তা আপনাকে দেয়। আরও তথ্যের জন্য নীচে উত্স দেখুন।

দুই জিনিস

  1. ব্যবহারকারীর নাম
  2. নির্দেশিকা

আপনি যদি শেলটিতে থাকেন তবে ব্যবহারকারীর নাম খুঁজে পাওয়া সহজ। শুধু প্রম্পট তাকান। আমার দেখতে দেখতে:

breadly@breadly-desktop:~\Desktop

বর্তমান ব্যবহারকারীর ঠিক আগে নাম @। ত্রুটি বার্তাগুলি থেকে আমরা ডিরেক্টরিটি জানি, তবে আপনার দুটি পছন্দ আছে। আপনি হয় ব্যবহার করে বর্তমান সংস্করণে আপনার অনুমতি সীমাবদ্ধ করতে পারেন ../gems/1.9.1, বা ব্যবহার করে নিজেকে সমস্ত সংস্করণের রত্নগুলির জন্য লেখার অনুমতি দিতে পারেন../gems

প্রকৃতপক্ষে মালিকানা পরিবর্তন করার আদেশটি এর মতো দেখতে পাবে।

chown -R $(whoami) /absolute/path/to/directory

-Rএকটি পতাকা হিসাবে পরিচিত হয় এবং -Rপতাকা সাধারণত কমান্ড বলে কিছু recursively করতে, অথবা অন্য কথায় যে জিনিস যে ডিরেক্টরির মধ্যে অন্তর্ভুক্ত করা হয় কমান্ড সঞ্চালন, আর সব কিছুই ডিরেক্টরি অন্তর্ভুক্ত মধ্যে অন্তর্ভুক্ত, এবং তাই পর্যন্ত উপর অন্য কিছু নেই।


এছাড়াও, আপনি যদি আপনার ব্যবহারকারী কোন গ্রুপের অন্তর্ভুক্ত তা জানতে চান তবে আপনি এটি উল্লেখ করতে পারেন। stackoverflow.com/questions/350141/...
Breedly

3
যাইহোক, মালিকানা পরিবর্তন করতে যদি আপনি এটি / usr / স্থানীয় / বিন ডিরেক্টরিতে ইনস্টল করতে হয় তবে আপনি যত্নবান হতে চাইতে পারেন।
শুক্রবার

16
অন্যদের মধ্যে / usr, / গ্রন্থাগার বা / var পাথের যে কোনও কিছুর মালিকানা পরিবর্তন করা একটি খারাপ ধারণা। ফাইল এবং ড্রাইভারদের আর অ্যাক্সেসযোগ্য না হওয়ার কারণে সিস্টেমটি থামতে পারে এবং ইনস্টলার যদি বুঝতে পারে যে পাথগুলি আর মূল: চক্রের মালিকানাধীন নয়। ক্ষতি সংশোধন করা সত্যিই কঠিন হতে পারে এবং সাধারণত ওএস পুনরায় ইনস্টল করে সেরা করা হয়। কোন ফাইল / ডিরেক্টরি সম্ভবত নিরাপদ থাকতে পারে এবং ঘরে বসে এটি চেষ্টা না করার বিষয়ে সতর্ক হওয়া উচিত, নিষ্পাপ / অনভিজ্ঞ ব্যবহারকারীরা ওএস সম্পর্কে যথেষ্ট জানেন না।
টিন ম্যান

লোল এটি একটি বিব্রতকর উত্তর। :) বয়স্ক এবং জ্ঞানী এখন আমার ধারণা।
শুক্রবার

11

আমি আমার ম্যাক ফর্ম্যাট করেছি এবং অনেক প্রস্তাবিত সমাধান আমার পক্ষে কার্যকর হয়নি। আমার জন্য যা কাজ করেছে তা হ'ল সঠিক আদেশে এই আদেশগুলি:

  1. হোমব্রিউ ইনস্টল করুন:

    /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
  2. রুবি ইনস্টল করুন:

    brew install ruby
  3. কম্পাস ইনস্টল করুন:

    sudo gem install compass

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


6

আমার জন্য কাজ:

sudo gem uninstall cocoapods

sudo gem install cocoapods

আমার জন্য আশ্চর্যজনক কাজ করেছে! ধন্যবাদ।
Rbenv

5
ডাউনভোটিং কারণ, অন্যান্য মন্তব্যে যেমন উল্লেখ করা হয়েছে, রত্ন হিসাবে রত্ন স্থাপন করা একটি বিপজ্জনক অভ্যাস। ইনস্টলারটি আপনার সিস্টেমে আক্ষরিকভাবে কিছু করতে পারে।
কিছু লোক

@ সোমগুয়ে: "ইনস্টলারটি আক্ষরিকভাবে কিছু করতে পারে" ... সম্ভবত ব্যবহারকারীরা কমান্ডটি ফ্যাট-আঙুল দিয়ে সিস্টেমকে ম্যাঙ্গেল করতে পারে more কোনও ইনস্টলার আমার সিস্টেমে বিশৃঙ্খলা সৃষ্টি করার সময়টির কথা ভাবতে পারি না, তবে আমি কীভাবে করেছি তা স্পষ্টভাবে মনে করতে পারি। sudoএমন একটি কমান্ড যা নবজাতকরা ভালোবাসে কারণ এটি এত সহজেই ভুল কাজটি করা সম্ভব করে তোলে এবং এটি ব্যবহার করার সময় যথাযথভাবে অসম্পূর্ণ হতে শিখতে কয়েক বছর সময় লাগে।
টিন ম্যান

1
সেরা উত্তর !!!! এই 2 কমান্ডটি চালানোর পরে, দয়া করে টার্মিনালটি পুনরায় চালু করুন এবং এটিই !!! অনেক ধন্যবাদ!!!
নসকিওয়েপনার

4

আপনার রুবি সংস্করণটি ঠিক আছে কিনা তা পরীক্ষা করে দেখুন। যদি না হয়, এটি পরিবর্তন করুন।

এটি আমার পক্ষে কাজ করে:

$ rbenv global 1.9.3-p547
$ gem update --system

এটি আরও ভাল সমাধান: update> chown। ধন্যবাদ! । আমাকেও দৌড়াতে হয়েছিলbrew install ruby
জোসে ল্লাউসাস

4

দ্বারা rbenv ইনস্টল করুন brew install rbenv;

তারপরে eval "$(rbenv init -)"~ / .bash_profile (অথবা MacOS এর ~ / .zshrc) এর শেষে রাখুন;

একটি নতুন টার্মিনাল খুলুন এবং রান gem install ***কাজ করবে!


আমার পক্ষে কাজ করেনি ❯ brew install rbenv -q Warning: rbenv 1.1.1 is already installed and up-to-date To reinstall 1.1.1, run `brew reinstall rbenv` ~/.gem/ruby/2.3.0/gems/colorls-1.1.1 ❯ eval "$(rbenv init -)" ~/.gem/ruby/2.3.0/gems/colorls-1.1.1 ❯ gem update Updating installed gems Updating CFPropertyList ERROR: While executing gem ... (Gem::FilePermissionError) You don't have write permissions for the /Library/Ruby/Gems/2.3.0 directory.
ম্যাক্স কপলান

2

ববডডসোল দ্বারা চিহ্নিত হিসাবে, র্যাশ আমার জন্য কাজ করেছে:

==> which ruby
/usr/bin/ruby

==> rbenv install 1.9.3-p551
Downloading ruby-1.9.3-p551.tar.bz2...
-> https://cache.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p551.tar.bz2
Installing ruby-1.9.3-p551...
Installed ruby-1.9.3-p551 to /Users/username/.rbenv/versions/1.9.3-p551


==> which ruby
/Users/username/.rbenv/shims/ruby

==> which gem
/Users/username/.rbenv/shims/gem

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


==> ruby -v
ruby 2.0.0p648 (2015-12-16 revision 53162) [universal.x86_64-darwin15]


==> rbenv global 1.9.3-p551


==> ruby -v
ruby 2.0.0p648 (2015-12-16 revision 53162) [universal.x86_64-darwin15]


==> rbenv global 1.9.3-p551


==> rbenv rehash


==> ruby -v
ruby 1.9.3p551 (2014-11-13 revision 48407) [x86_64-darwin15.4.0]


==> gem install compass
Fetching: sass-3.4.22.gem (100%)
Fetching: multi_json-1.11.3.gem (100%)
Fetching: compass-core-1.0.3.gem (100%)
Fetching: compass-import-once-1.0.5.gem (100%)
Fetching: chunky_png-1.3.5.gem (100%)
Fetching: rb-fsevent-0.9.7.gem (100%)
Fetching: ffi-1.9.10.gem (100%)
Building native extensions.  This could take a while...
Fetching: rb-inotify-0.9.7.gem (100%)
Fetching: compass-1.0.3.gem (100%)
    Compass is charityware. If you love it, please donate on our behalf at http://umdf.org/compass Thanks!
Successfully installed sass-3.4.22
Successfully installed multi_json-1.11.3
Successfully installed compass-core-1.0.3
Successfully installed compass-import-once-1.0.5
Successfully installed chunky_png-1.3.5
Successfully installed rb-fsevent-0.9.7
Successfully installed ffi-1.9.10
Successfully installed rb-inotify-0.9.7
Successfully installed compass-1.0.3
9 gems installed
Installing ri documentation for sass-3.4.22...
Installing ri documentation for multi_json-1.11.3...
Installing ri documentation for compass-core-1.0.3...
Installing ri documentation for compass-import-once-1.0.5...
Installing ri documentation for chunky_png-1.3.5...
Installing ri documentation for rb-fsevent-0.9.7...
Installing ri documentation for ffi-1.9.10...
Installing ri documentation for rb-inotify-0.9.7...
Installing ri documentation for compass-1.0.3...
Installing RDoc documentation for sass-3.4.22...
Installing RDoc documentation for multi_json-1.11.3...
Installing RDoc documentation for compass-core-1.0.3...
Installing RDoc documentation for compass-import-once-1.0.5...
Installing RDoc documentation for chunky_png-1.3.5...
Installing RDoc documentation for rb-fsevent-0.9.7...
Installing RDoc documentation for ffi-1.9.10...
Installing RDoc documentation for rb-inotify-0.9.7...
Installing RDoc documentation for compass-1.0.3...

sooo বন্ধ তবুও "ত্রুটি: রত্ন সম্পাদন করার সময় ... (রত্ন :: ফাইলপিরমিশন এরর) আপনার / লাইব্রেরি / রুবি / জিমেস / ২.০.০ ডিরেক্টরিটির জন্য লেখার অনুমতি নেই" "
জেগালার্ডো

1

সাফল্যের সাথে ম্যাকস মোজাভেতে পরীক্ষিত:

  1. আপনার সমস্ত পুরানো রুবি সংস্করণ আনইনস্টল করুন (ধরা যাক আপনার কাছে 2.00 এবং 2.3.0 রয়েছে):

    $ rvm uninstall 2.0.0

    $ rvm uninstall 2.3.0

  2. ব্র্যান্ডের নতুন রুবি সংস্করণ ইনস্টল করুন:

    $ brew install ruby

  3. আপনার সংস্করণে একটি ডিফল্ট উপন্যাস সেট করুন:

    $ rvm alias create default ruby

  4. আপনার সিস্টেমটি পুনরায় বুট করুন কারণ আপনার কম্পিউটারটি সম্প্রতি ইনস্টল হওয়া নতুন রুবি সংস্করণটি লোড করা এটি সবচেয়ে নিরাপদ।

উপরের পদ্ধতিটি সম্পন্ন করার পরে, আপনি কোনও gemকমান্ড সফলভাবে চালাতে পারবেন ।


-2

সিডি / লাইব্রেরি / রুবি / গেমস / ২.০.০

খোলা

তথ্য পেতে ডান ক্লিক করুন

লক ক্লিক করুন

পাসওয়ার্ড রাখুন

সবকিছু পড়তে এবং লিখতে তৈরি করুন।


1
পাঠযোগ্যতার জন্য আপনার উত্তরটি ফর্ম্যাট করতে সময় দিন। আপনি গবেষণায় এবং ব্যাখ্যা করার জন্য যে প্রচেষ্টা করেছিলেন সেটির ফলস্বরূপ।
টিন ম্যান

-2

ব্যবহারকারীদের - হোয়ামি সেই ফোল্ডারে কিছু তৈরি করতে দিন give

sudo chown -R user /Library/Ruby/Gems/2.0.0

না। এই ফোল্ডারটি কোনও ভাল কারণে সিস্টেমের মালিকানাধীন, সিস্টেম এটি নিজস্ব উদ্দেশ্যে ব্যবহার করে। এটি নির্দেশ করে এমন কোনও স্ক্রিপ্ট চালানো ঠিক আছে তবে আপনি যদি এটির সাথে গোলযোগ করতে চান তবে স্যান্ডবক্সযুক্ত রুবি তৈরি করুন এবং ব্যবহার করুন।
টিন ম্যান

-3

আপনি ব্যবহার করতে পারেন: মণি কোকোপডগুলি ইনস্টল করুন --প্রেস - ব্যবহারকারী


-4

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

sudo gem install cocoapods

1
এটি অন্যান্য উত্তরে hasাকা পড়েছে। আপনার নতুন কিছু প্রস্তাব দেয় তা নিশ্চিত করার জন্য দয়া করে একটি উত্তর তৈরি করার আগে অন্যান্য উত্তরগুলি পড়ুন।
টিন ম্যান


-18

ত্রুটির কারণ হ'ল আপনি যদি টার্মিনালে মূল ব্যবহারকারী হিসাবে লগ ইন করেন নি।

আপনার যদি ইতিমধ্যে টার্মিনাল ধরণে ম্যাকটি সক্ষম করে থাকে root

$ su

আপনার যদি রুট ব্যবহারকারী না থাকে তবে আপনাকে নিম্নলিখিত পদক্ষেপগুলি ব্যবহার করে এটি সক্ষম করতে হবে

  1. অ্যাপল মেনু থেকে সিস্টেম পছন্দগুলি নির্বাচন করুন…।
  2. ভিউ মেনু থেকে ব্যবহারকারী এবং গোষ্ঠী নির্বাচন করুন।
  3. লকটি ক্লিক করুন এবং প্রশাসক অ্যাকাউন্ট হিসাবে প্রমাণীকরণ করুন।
  4. লগইন অপশন ক্লিক করুন…।
  5. নীচে ডানদিকে "সম্পাদনা ..." বা "যোগদান করুন ..." বোতামটি ক্লিক করুন।
  6. "ওপেন ডিরেক্টরি ইউটিলিটি ..." বোতামটি ক্লিক করুন।
  7. ডিরেক্টরি ইউটিলিটি উইন্ডোতে লক ক্লিক করুন।
  8. প্রশাসকের অ্যাকাউন্টের নাম এবং পাসওয়ার্ড লিখুন, তারপরে ওকে ক্লিক করুন।
  9. সম্পাদনা মেনু থেকে রুট ব্যবহারকারী সক্ষম করুন চয়ন করুন।
  10. পাসওয়ার্ড এবং যাচাই উভয় ক্ষেত্রে আপনি যে মূল পাসওয়ার্ডটি ব্যবহার করতে চান তা প্রবেশ করুন, তারপরে ওকে ক্লিক করুন।

Http://support.apple.com/kb/ht1528 এ একই আরও

কমপক্ষে কয়েক ঘন্টা আটকে থাকার পরে এটি আমার পক্ষে কাজ করে।


ভোট কেন? আপনি কি দয়া করে এর কারণ লিখতে পারেন?
মোহাম্মদ আরিফ

8
মূল হিসাবে রত্ন ইনস্টল করা একটি খারাপ ধারণা। stackoverflow.com/questions/2119064/...
spuder
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.