ওএস এক্স "এল ক্যাপিটান" এ রত্ন ইনস্টল করতে পারবেন না


182

আমি fakes3এল ক্যাপিটান বিটা 5 তে রত্ন ইনস্টল করতে এবং চালাতে পারছি না ।

আমি চেষ্টা করেছিলাম:

sudo gem install fakes3
ERROR:  While executing gem ... (Errno::EPERM)
    Operation not permitted - /usr/bin/fakes3

তারপরে আমি এটি কোকোপডস উপায়ে করার চেষ্টা করেছি। এটি কোকোপডগুলির জন্য কাজ করেছে তবে ফেকস 3 এর জন্য নয়।

mkdir -p $HOME/Software/ruby
export GEM_HOME=$HOME/Software/ruby
gem install cocoapods
[...]
1 gem installed
gem install fakes3
ERROR:  While executing gem ... (Gem::FilePermissionError)
    You don't have write permissions for the /Library/Ruby/Gems/2.0.0 directory.

3
sudoরুবি ইনস্টল করতে বা রত্ন পরিবর্তন করতে ব্যবহার করবেন না । পরিবর্তে রুবি ইনস্টল ও পরিচালনা করতে rbenv বা আরভিএম ব্যবহার করুন । তাদের নিজ নিজ সাইটে নির্দেশাবলী পড়ুন এবং অনুসরণ করুন। এবং, উভয় ক্ষেত্রেই ইনস্টল করার পরে, sudoআপনি কী পরিবর্তন করছেন এবং আপনি কেন এটি করতে চান তা না বুঝলে ব্যবহার করবেন না।
টিন ম্যান

উত্তর:


333

দাবি পরিত্যাগী: @theTinMan এবং অন্যান্য রুবি ডেভেলপারদের প্রায়ই ব্যবহার না করার নির্দেশ sudoযখন রত্ন এবং বিন্দু ভালো জিনিস ইনস্টল RVM । রুবি ডেভলপমেন্ট করার সময় এটি একেবারে সত্য। এগিয়ে যান এবং এটি ব্যবহার করুন।

যাইহোক, আমরা অনেকেই শুধু কিছু বাইনারি যে এরকম একটি মণি যেমন বিতরণ করা করতে চান (যেমন fakes3, cocoapods, xcpretty...)। আমি অবশ্যই আলাদা রুবি পরিচালনার জন্য বিরক্ত করতে চাই না। এখানে আপনার দ্রুত বিকল্পগুলি:

বিকল্প 1: sudo ব্যবহার চালিয়ে যান

sudoআপনি যদি এই সরঞ্জামগুলি বিশ্বব্যাপী ইনস্টল করতে চান তবে সম্ভবত ব্যবহার করা ভাল।

সমস্যাটি হ'ল এই বাইনারিগুলি ইনস্টল করা আছে /usr/binযা এল ক্যাপিটেনের পর থেকে সীমাবদ্ধ । তবে এর /usr/local/binপরিবর্তে আপনি এগুলি ইনস্টল করতে পারেন । সেখানেই হোমব্রু তার স্টাফ ইনস্টল করে, তাই এটি সম্ভবত ইতিমধ্যে বিদ্যমান।

sudo gem install fakes3 -n/usr/local/bin

রত্নগুলিতে ইনস্টল করা হবে /usr/local/binএবং আপনার সিস্টেমের প্রতিটি ব্যবহারকারী যদি তাদের প্যাথ-এ থাকে তবে সেগুলি সেগুলি ব্যবহার করতে পারে ।

বিকল্প 2: আপনার হোম ডিরেক্টরিতে ইনস্টল করুন (sudo ছাড়া)

নীচে রত্নগুলি ইনস্টল করবে ~/.gemএবং বাইনারিগুলি স্থাপন করবে ~/bin(যা আপনার নিজেরটি যুক্ত করতে হবে PATH)।

gem install fakes3 --user-install -n~/bin

এটি ডিফল্ট করুন

যে কোনও উপায়ে আপনি এই প্যারামিটারগুলি আপনার এতে যুক্ত করতে পারেন ~/.gemrcযাতে আপনার সেগুলি মনে রাখার দরকার নেই:

gem: -n/usr/local/bin

অর্থাত echo "gem: -n/usr/local/bin" >> ~/.gemrc

অথবা

gem: --user-install -n~/bin

অর্থাত echo "gem: --user-install -n~/bin" >> ~/.gemrc

( টিপ: আপনি --no-documentরুবি বিকাশকারী ডকুমেন্টেশন তৈরি করতে এড়াতেও পারেন ))


তোমাকে অনেক ধন্যবাদ! আমি ব্রিউ এবং রুবির নতুন সংস্করণগুলির সাথে লড়াই করেছি তবে এখনও / ইউএসআর / বিন সমস্যাটি পাস করতে পারিনি। চলমান সমস্যার gem installসমাধান করার সময় কাঙ্ক্ষিত পাথ নির্দিষ্ট করা।
ড্যানিয়েল সাইদী

এর .gemrcউচিত gem: -n /usr/local/bin(-n পরে স্থান প্রয়োজন)।
পল শ্রায়বার

@ পলশ্রাইবার ওয়েল, আমি এখন পাঁচ মাস ধরে জায়গা ছাড়াই এটি ব্যবহার করছি। :) তুমি কি নিশ্চিত?
nschum

2
বিকল্প # 2 এর জন্য প্লাস 1, এটি একটি কার্যকর এবং নিরাপদ বিকল্প যদি আপনি কেবল আলাদা রুবি ছাড়াই সেই বাইনারিগুলি চান। আমাদের হোম ডিরেক্টরিগুলি যুক্ত রত্নগুলির জন্য নিখুঁত জায়গা এবং PATH এ একটি দ্রুত টুইট করা তাদের অ্যাক্সেসযোগ্য করে তুলেছে। আমি বিকল্প # 1 টি সুপারিশ করতে পারি না কারণ কেউ কোনও রত্নকে ওভাররাইট করে শেষ করে তার সিস্টেম রুবি বা অ্যাপলের বিল্ট-ইন কোড ব্যবহার করে এটি ভেঙে দেবে এবং তারপরে তারা কীভাবে এটি ঠিক করবেন সে সম্পর্কে তারা আরও একটি প্রশ্ন জিজ্ঞাসা করবেন।
টিন ম্যান

1
এটি একটি দুর্দান্ত উত্তর, তবে সম্ভবত পুরানো। সিয়েরাতে, আমার যে বিকল্পটি প্রয়োজন ছিল তা হ'ল - ইনস্টল-দির / ইউএসআর / স্থানীয় / বিন
রায়ান বালান্টিনি

107

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

brew install ruby

এর পরে, আপনাকে গ্রাফিকভাবে বা আপনার টার্মিনালটি পুনরায় চালু করতে লগ আউট এবং আবার লগ ইন করতে হবে।


আমার জন্য ভাল কাজ! আমি মনে করি এটি বান্ডিল রুবি ইনস্টলের কোনও অদ্ভুততা থেকে মুক্তি পেয়েছে ... আইএমও এটিই সেরা সমাধান।
n13

Tell `` যা কোন রুবি দিয়ে চলছে তা আপনি বলতে পারেন যা আমার মেশিনে দেয়: rub `` $ যা -র রুবি / ইউএসআর / স্থানীয় / বিন / রুবি / ইউএস / স্থানীয় / বিন / রুবি / ইউএসআর / বিন / রুবি `` why কেন / ইউএসআর / স্থানীয় / বিন দু'বার PATH এ রয়েছে - দেখে মনে হচ্ছে brew install rubyএটি ইতিমধ্যে সেখানে থাকলেও। সম্ভবত / ইউএসআর / লোকাল-এ রুবি এমন একটি স্থানে এর রত্ন ইনস্টল করার জন্য কনফিগার করা আছে যাতে রুট অ্যাক্সেসের প্রয়োজন হয় না (যা বাস্তবে নিখুঁত ধারণা দেয়)।
ওয়ালস্টগ্রোগ

7
পিএস আপনাকে লগ আউট এবং পুনরায় লগ ইন করতে হবে (টার্মিনালের মাধ্যমে) অথবা gem installএখনও ব্যর্থ হবে।
ওয়ালস্টগ্রোগ

আমার জন্য ভাল কাজ করে। আমি এইটির সাথে স্বীকৃত উত্তরটি একত্রিত করেছি। আপনাকে উভয়কেই ধন্যবাদ
youssman

1
আপনাকে লগ আউট এবং আবার লগ ইন করতে হবে না। শুধু চালানোর rehashএকটি নতুন যে নিশ্চিত করুন যে আপনার শেল বুঝতে পারবেন করতে rubyউপর আগে $PATH। এমনকি rubyশেল অধিবেশনটিতে আপনি এখনও চালাননি এমন পরিস্থিতিতেও এটি প্রয়োজনীয় হবে না ।
রেডন রোসবারো

38

এটি ওএস এক্স "এল ক্যাপিটান" এর নতুন সুরক্ষা ফাংশনের কারণে। --user-installSudo ব্যবহার না করে যুক্ত করার চেষ্টা করুন :

$ gem install *** --user-install

উদাহরণস্বরূপ, আপনি জাল 3 ইনস্টল করতে চাইলে কেবল ব্যবহার করুন:

$ gem install fake3 --user-install

হ্যাঁ! তোমাকে অনেক ধন্যবাদ!
লুই ম্যাগন্টি

শেষ পর্যন্ত টার্মিনাল ইত্যাদি বন্ধ করার জন্য ৩০ মিনিট ব্যয় করার পরে এই সমাধানটি ১০.১০.৫ তে কাজ করেছে তবে এখনও নিশ্চিত হয়ে উঠবেন না যে ব্রিউয়ের পদ্ধতির কাজ হয়নি। পরিষ্কার করে বলো. যা রুবি পোস্ট ব্রিউ ইনস্টল / usr / বিন / রুবি
বিক্রমভি

1
বাহ এখন ইস্যুটি আবার রত্ন ইনস্টল -v '3.3.4' ইনস্টল করুন - ব্যবহারকারী-ইনস্টল নিক্ষেপ করার সময় ত্রুটি এক্সিকিউটেবল চলবে না। আগে আমি এই ত্রুটিটি
পাচ্ছিলাম

1
stackoverflow.com/questions/19579392/… , এটি আমাকে শেষ
অবধি


19

আপনাকে এক্সকোডটি সর্বশেষতম (v7.0.1) এ আপডেট করতে হবে এবং সবকিছু স্বাভাবিক হিসাবে কাজ করবে।

আপনি যদি নতুন এক্সকোড ইনস্টল করার পরেও কাজ করেন না তবে এইভাবে রত্নটি ইনস্টল করার চেষ্টা করুন:

sudo gem install -n /usr/local/bin GEM_NAME_HERE

উদাহরণ স্বরূপ:

sudo gem install -n /usr/local/bin fakes3
sudo gem install -n /usr/local/bin compass
sudo gem install -n /usr/local/bin susy

10

ওএস এক্স এল ক্যাপিটেনে আপগ্রেড করার সময় দেখে মনে হচ্ছে, / usr / স্থানীয় ডিরেক্টরিটি একাধিক উপায়ে পরিবর্তন করা হয়েছে:

  1. ব্যবহারকারীর অনুমতিগুলি পুনরায় সেট করা হয়েছে (হোমব্রিউ ব্যবহারকারী লোকদের জন্য এটিও সমস্যা)
  2. বাইনারি এবং সিমলিংকগুলি মুছে ফেলা বা পরিবর্তন করা যেতে পারে

[সম্পাদনা] এখানে আরও একটি প্রাথমিক কাজ করার আছে: এক্সকোড আপগ্রেড করুন ...

# 1 এর সমাধান:

$ sudo chown -R $(whoami):admin /usr/local

এই অনুমতি ঠিক করবে /usr/localডিরেক্টরির যা পরে উভয় সাহায্য করবে gem installএবং brew install|link|...সঠিক ভাবে কাজ করছে কমান্ড।

# 2 এর সমাধান:

রুবি ভিত্তিক সমস্যা

আপনি /usr/localডিরেক্টরিটির অনুমতিগুলি স্থির করেছেন তা নিশ্চিত করুন (উপরে # 1 দেখুন)

প্রথমে আপনার রত্নটি পুনরায় ইনস্টল করার চেষ্টা করুন:

sudo gem install <gemname>

দ্রষ্টব্য যে এটি নির্দিষ্ট রত্নটির সর্বশেষতম সংস্করণ ইনস্টল করবে।

আপনি যদি পশ্চাদপদ-সামঞ্জস্যের সমস্যার মুখোমুখি না হতে চান তবে আমি প্রস্তাব দিই যে আপনি প্রথমে কোন রত্নটি পেতে চান তার কোন সংস্করণ নির্ধারণ করুন এবং তারপরে এটি পুনরায় ইনস্টল করুন -v version। সিস্টেম ক্যাপিস্ট্রানো একটি নতুন সংস্করণ পাবে না তা নিশ্চিত করার জন্য নীচের উদাহরণটি দেখুন।

$ gem list | grep capistrano
capistrano (3.4.0, 3.2.1, 2.14.2)
$ sudo gem install capistrano -v 3.4.0

মিশ্রিত ভিত্তিক সমস্যা

ব্রিউ আপডেট করুন এবং আপনার সূত্রগুলি আপগ্রেড করুন

$ brew update
$ brew upgrade

আপনাকে সেগুলির কয়েকটি ম্যানুয়ালি পুনরায় লিঙ্ক করার প্রয়োজন হতে পারে

$ brew link <formula>

3

যেমনটি বলা হয়েছে, বিষয়টি "এল ক্যাপিটান" থেকে ম্যাক ওএসএক্সের একটি সুরক্ষা ফাংশন থেকে আসে।

ডিফল্ট সিস্টেম রুবি ব্যবহার করে ইনস্টল প্রক্রিয়াটি /Library/Ruby/Gems/2.0.0ডিরেক্টরিতে ঘটে যা ব্যবহারকারীর জন্য উপলব্ধ নয় এবং ত্রুটি দেয়।

কমান্ডটি দিয়ে আপনি আপনার রুবি এনভায়রনমেন্টস পরামিতিগুলি দেখতে পারেন

$ gem env

একটি ইনস্টলশন ডিরেক্টরী এবং একটি ব্যবহারকারী ইনস্টলমেন্ট ডাইরেক্টরি রয়েছে। ডিফল্ট ইনস্টলেশন ডিরেক্টরি ব্যবহারকারীর পরিবর্তে ব্যবহারকারীর ইনস্টলেশন ডিরেক্টরিটি ব্যবহার করার জন্য আপনি --user-installপ্যারামিটারটি ব্যবহার করে ব্যবহার করতে পারেন sudoযা কখনও কখনও পুনরুদ্ধার করার উপায় নয়।

$ gem install myGemName --user-install

প্রক্রিয়াটিতে আর কোনও অধিকারের সমস্যা থাকা উচিত নয়। রত্নগুলি পরে ব্যবহারকারী ডিরেক্টরিতে ইনস্টল করা হয়:~/.gem/Ruby/2.0.0/bin

তবে ইনস্টল করা রত্নগুলি উপলব্ধ করার জন্য, এই ডিরেক্টরিটি আপনার পথে পাওয়া উচিত available রুবির প্রায়শই জিজ্ঞাসিত অনুসারে আপনি নীচের লাইনটি আপনার ~/.bash_profileবা তে যুক্ত করতে পারেন~/.bashrc

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

তারপরে আপনার টার্মিনালটি বন্ধ এবং পুনরায় লোড করুন .bash_profileবা আপনার বা .bashrc( . ~/.bash_profile) পুনরায় লোড করুন


2

এই সমাধানটি আমি ব্যবহার করেছি:

দ্রষ্টব্য: এই ফিক্সটি কম্পাসের জন্য যেমনটি আমি অন্য এসও প্রশ্নে লিখেছিলাম তবে আমি সমস্ত টার্মিনাল প্রক্রিয়াগুলিতে কার্যকারিতা ফিরিয়ে আনতে একই প্রক্রিয়াটি ব্যবহার করেছি, সম্ভবত আপনি যে রত্নগুলি ইনস্টল করছেন তা ভিন্ন তবে প্রক্রিয়াটি একই।

আমারো একই ইস্যু ছিল. এটি অ্যাপল প্রয়োগকারী সিস্টেম ইন্টিগ্রিটি প্রোটেকশন (এসআইপি) এর কারণে। আপনাকে প্রথমে এটি অক্ষম করতে হবে ...

পুনরুদ্ধার মোডে রিবুট করুন:

আপনি অ্যাপলের লোগোটি না পাওয়া পর্যন্ত কমান্ড + আর রিবুট করুন এবং ধরে রাখুন ।

বুট করার পরে শীর্ষ বার থেকে ইউটিলিটিস> টার্মিনাল নির্বাচন করুন ।

টাইপ করুন: csrutil disable

তারপরে টাইপ করুন: reboot

একবার রিবুট

টার্মিনালটি ব্যাক আপ খুলুন এবং কমান্ডগুলি প্রবেশ করুন:

sudo gem uninstall bundler

sudo gem install bundler

sudo gem install compass

sudo gem install sass

sudo gem update --system

ব্যর্থ পৃথক রত্নগুলি ঠিক করা দরকার, সুতরাং প্রত্যেকের জন্য নিম্নলিখিতটি করা:

আমার মেশিনে এটি প্রথম নির্ভরতা কাজ করছে না তাই আমি এটি তালিকাভুক্ত করেছি :

sudo gem pristine ffi --version 1.9.3

যেসব রত্নগুলি মেরামত করা দরকার তার তালিকায় এগিয়ে যান। সব মিলিয়ে আপনি এটি ঠিক করতে প্রায় 10 মিনিটের দিকে তাকিয়ে রয়েছেন তবে কম্পাসের কাজের জন্য আপনার কাছে টার্মিনাল কমান্ড থাকবে।

স্ক্রিনশট


2

আপনি যে মণিটি ইনস্টল করতে চেষ্টা করছেন তা যদি এক্সএমএল লাইব্রেরিগুলির প্রয়োজন হয় তবে এটি চেষ্টা করুন:

sudo gem install -n /usr/local/bin  <gem_name> -- --use-system-libraries --with-xml2-include=/usr/include/libxml2 --with-xml2-lib=/usr/lib/

বিশেষত, ওএস এক্স এল ক্যাপিটেনে নোকোগিরি রত্ন বনাম 1.6.8 ইনস্টল করার সময় আমি একটি সমস্যায় পড়েছি

এবং এটি অবশেষে আমার পক্ষে কাজ করেছে:

sudo gem install -n /usr/local/bin  nokogiri -- --use-system-libraries --with-xml2-include=/usr/include/libxml2 --with-xml2-lib=/usr/lib/

আপনার কাছে libxML2 এবং libxslt ইনস্টল করা আছে তা নিশ্চিত করতে, আপনি এটি করতে পারেন:

brew install libxml2 libxslt
brew install libiconv

এবং তারপরে আপনার কাছে এক্সকোড কমান্ড লাইন সরঞ্জাম ইনস্টল করা আছে কিনা তা পরীক্ষা করে দেখুন:

xcode-select --install 

এই ত্রুটিটি ফিরিয়ে দেওয়া উচিত:

xcode-select: error: command line tools are already installed, use "Software Update" to install updates

1

পুনরায় ইনস্টল করা আরভিএম আমার পক্ষে কাজ করেছে, তবে পরে আমার সমস্ত রত্ন আমাকে পুনরায় ইনস্টল করতে হয়েছিল:

rvm implode
\curl -sSL https://get.rvm.io | bash -s stable --ruby
rvm reload

0

আমি এল ক্যাপিটান ইনস্টল করার পরে একই সমস্যাটি ছড়িয়ে দিয়েছি, আমি সিমফনি প্রকল্পে সাস এবং কম্পাস ইনস্টল করার চেষ্টা করেছি, নিম্নলিখিত কমান্ডটি নিম্নলিখিত ত্রুটিটি ফিরিয়ে দিয়েছে:

$ sudo রত্ন ইনস্টল কম্পাস

ত্রুটি: কম্পাস ইনস্টল করার সময় ত্রুটি: ত্রুটি: রত্নের নেটিভ এক্সটেনশন তৈরি করতে ব্যর্থ।

/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby extconf.rb 

ffi.h এর জন্য পরীক্ষা করা হচ্ছে ... / সিস্টেম / লাইব্রেরি / ফ্রেম ওয়ার্কস / রবি.ফ্রেমে ওয়ার্ক / সংস্করণ / ২.০/usr/lib/ruby/2.0.0/mkmf.rb:434:in `চেষ্টা_ডো ': সংকলক একটি উত্পন্ন করতে ব্যর্থ এক্সিকিউটেবল ফাইল. (RuntimeError)

সুতরাং আমি এর পরে স্যাস ইনস্টল করার চেষ্টা করেছি: do সুডো রত্ন ইনস্টল স্যাস

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

$ sudo রত্ন ইনস্টল -n / usr / স্থানীয় / বিন sass

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

$ sudo রত্ন ইনস্টল -n / usr / স্থানীয় / বিন কম্পাস

আমি তখন ass কম্পাস init চালাতে সক্ষম হয়েছি

আমার এখন আমার সমস্ত রত্ন কাজ করছে এবং কিছু সুন্দর সাস স্টাফ তৈরি করতে এগিয়ে যেতে পারি :)


0

আমাকে rm -rf ./vendorতখন bundle installআবার দৌড়াতে হয়েছিল ।


-1

আমি sudo দিয়ে স্টাফ ইনস্টল করতে পছন্দ করি না। আপনি একবার sudo দিয়ে শুরু করলে আপনি থামাতে পারবেন না ..

রত্ন ডিরেক্টরিতে অনুমতি দেওয়ার চেষ্টা করুন।

sudo chown -R $(whoami) /Library/Ruby/Gems/2.0.0

2
সিস্টেমের রুবি রত্নগুলির মালিকানা পরিবর্তন করবেন না। ম্যাক ওএস যে কোনও কিছু আপডেট করার চেষ্টা করলে এটি সমস্যার সৃষ্টি করতে পারে।
টিন ম্যান

-1
sudo chown -R $(whoami):admin /usr/local

এটি অনুমতিগুলি ফিরিয়ে দেবে (হোমব্রিউ সেখানে রুবি ইনস্টল করে)


2
আপনি যদি এই কমান্ডটি চালনা করেন এবং এটি আপনার মাইএসকিউএল ডেটার অনুমতিগুলি মিস্ করে তবে আপনাকে অনুমতিগুলি আবার সেট করতে হবে। এখানে কিভাবে। stillatmylinux.com/not-every-linux-command-is-good-for-you
stillatmylinux
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.