মোম ইনস্টল বা RubyGems আপডেট করার অনুমতি অনুমতি ত্রুটি সঙ্গে




macos (17)

একটি মণ ইনস্টল করার চেষ্টা করুন ( gem install mygem ) অথবা RubyGems ( gem install mygem gem update --system 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.

যে কেউ এই সমাধান কিভাবে ধারণা আছে?


আপনার /Library/Ruby/Gems/1.8 ডিরেক্টরিতে লেখার অনুমতি নেই।

ঠিক যে মানে, আপনি সেখানে লিখতে অনুমতি নেই।

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

এর পরিবর্তে, আমি দৃঢ়ভাবে সুপারিশ করব যে আপনি রুবিকে পৃথক আলাদা রবি পরিচালনা করতে, আপনার হোম ডিরেক্টরিতে একটি স্যান্ডবক্সে ইনস্টল করার জন্য rbenv বা RVM ব্যবহার করতে দেখবেন, যেটি আপনি সিস্টেম রুবিকে আপোস করার বিষয়ে উদ্বেগ ছাড়াই / fold / spindle / পরিবর্তন করতে পারেন।

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


Rbenv ইনস্টল breb দ্বারা ইনস্টল করুন;

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

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


আপনি আপনার পাথ সংশোধন করতে হবে

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

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" "[email protected]"`;;
  *)
    command rbenv "$command" "[email protected]";;
  esac
}
  1. আপনার প্রোফাইলের পথটি অনুলিপি করুন এবং এটি সংরক্ষণ করুন

  2. আপনার প্রোফাইল পুনরায় লোড করুন (আমার জন্য উৎস ~ /। Zshenv)

  3. rbenv rehash

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

/Users/justin/.rbenv/shims/gem

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

sudo gem update --system

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

একটি সঠিকভাবে ব্যবহার করে একটি gem update কমান্ড কার্যকর করার সময় আপনার অনুমতি সমস্যা সমাধান এবং সমাধান করতে পারে।

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

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

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

$ echo $PATH আপনার লোড পাথের অর্ডার দেখাবে।

আপনার সিস্টেমে Ruby bin ডিরেক্টরিতে পরে আপনার Shims ডিরেক্টরি আসে, তাহলে আপনার ~/.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 এর একটি নতুন সংস্করণ ব্যবহার করছি (সম্ভবতঃ জেম :: ফাইলপার্মিশন ইরার কারণ হবে না)

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

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

Rbenv সম্পর্কে বিস্তারিত জানার জন্য নিম্নলিখিত দেখুন:


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

sudo gem uninstall cocoapods

sudo gem install cocoapods

আমি 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


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

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

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

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

    sudo gem install compass

আমি একটি rbenv rehash করতে হবে তাই এটা আমার স্থানীয় জহর গ্রন্থাগার নির্দেশ করবে।

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


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

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

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

আপনি ইতিমধ্যে রুট ব্যবহার টার্মিনাল টাইপ আপনার ম্যাক সক্রিয় আছে

$ su

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

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

একই রকম http://support.apple.com/kb/ht1528

অন্তত এটা কয়েক ঘন্টার জন্য আটকে পর আমার জন্য কাজ করে।


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

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' এর পরিবর্তে: rvm রান ইনস্টল করতে:

rvm install 2.1.2
rvm use 2.1.2
gem update --system

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


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

আমি এখানে যা বলি তা করো না, যখনই আপনি 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. নির্দেশিকা

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

[email protected]-desktop:~\Desktop

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

আসলে মালিকানা পরিবর্তন কমান্ড এই মত চেহারা হবে।

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

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


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

==> 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...

সেই ফোল্ডারে somethin তৈরি করতে user $ whoami কে দিন

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

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

gem install mygem --user-install

sudo gem update --system
sudo gem install (gemfile)




rubygems