Як встановити дорогоцінний камінь або оновити RubyGems, якщо він не вдається з помилкою дозволу


559

Я намагаюся встановити дорогоцінний камінь за допомогою gem install mygemабо оновити RubyGems за допомогою 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
моя помилка сталася через те, що я роблю: оновлення дорогоцінних каменів cocoapods правильне: sudo gem update cocoapods
Abhishek Thapliyal

60
sudo chown -R $USER /Library/Ruby/Gems/
васкорт

2
просто використання цієї команди працювало на мене: sudo gem install mygem
Jayprakash Dubey

1
я використовував оболонку zsh, і це була проблема шляху в ~ / .zshrc. Я використав цей рядок у кінці файлу, і він працював на мене: export PATH = "$ HOME / .rbenv / shims: $ PATH"
rosnk

Відповіді:


317

У вас немає дозволів на запис у каталог /Library/Ruby/Gems/1.8.

означає саме це, ви не маєте дозволу писати там.

Це версія Ruby, встановлена ​​Apple, для власного використання. Хоча добре вносити незначні зміни до цього, якщо ви знаєте, що ви робите , оскільки ви не впевнені в проблемі дозволів, я б сказав, що не дуже добре продовжувати цей шлях.

Натомість я настійно пропоную вам розглянути використання rbenv або RVM для управління окремим Ruby, встановленим у пісочниці у вашому домашньому каталозі, що ви можете змінювати / складати / шпинделі / змінювати, не турбуючись про те, щоб зіпсувати систему Ruby.

Між ними я використовую rbenv, хоча в минулому я багато використовував RVM. rbenv використовує більш "практичний" підхід до управління вашою установкою Ruby. RVM має безліч функцій і дуже потужний, але, як результат, більш нав'язливий. У будь-якому випадку, прочитайте документацію щодо встановлення на них кілька разів, перш ніж розпочати установку, що б ви не вибрали.


176
Не потрібно використовувати окрему бібліотеку Ruby. Просто поставте «судо» перед собою, як запропонував Майкл вище.
serraosays

37
Зміна власності на встановлення Ruby від Apple не є хорошою ідеєю, оскільки система встановлює / оновлює, а Disk Utility може автоматично повернути / відновити право власності та дозволи на каталог. Це зірве користувача та може зірвати ОС та код, які очікують, що вони мають права на запис / право власності на ці каталоги. Apple встановлює додатки, які використовують його Ruby, і може очікувати певної версії або поведінки, тому вони можуть зламатись. Навіщо турбуватися, коли легше і безпечніше використовувати RVM або rbenv і не турбуватися про це.
Олов'яний чоловік

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

421

Спробуйте додати, --user-installа не використовувати sudo:

gem install mygem --user-install

4
Я не знаю, чому ваша відповідь раніше не була розміщена. --user-installВаріант, по- видимому вже деякий час. Я просто хочу, щоб ти написав це раніше. =)
Майкл - Де Клей Ширкий

7
Це потрібно йти до вершини! Установка за допомогою sudo або su - це погана ідея, оскільки ви застосовуєте систему дозволів на модулях і, можливо, глобально встановлені пакети можуть зіткнутися з встановленими пакетами або залежностями інших проектів. Використання rbenv вимагає встановлення іншого програмного забезпечення та додає шар складності.
Hubert Grzeskowiak

7
Це працює, але попереджає: "ПОПЕРЕДЖЕННЯ: у вашому PATH у вас немає /Users/<username>/.gem/ruby/2.0.0/bin, виконувані файли дорогоцінних каменів не запускаються." Наступне посилання містить корисні вказівки щодо оновлення вашого шляху (без використання vi) hathaway.cc/post/69201163472/…
dawid

4
Це просто і логічно. Додайте рубінову стежку, якщо ви ще не були у вашій програмі bashrc.if which ruby >/dev/null && which gem >/dev/null; then PATH="$(ruby -rubygems -e 'puts Gem.user_dir')/bin:$PATH" fi Джерело: guides.rubygems.org/faqs/#user-install
Inder Kumar Rathore

1
Чи може це викрутитись із системою Apple (встановлено рубін)?
Даніель Спрінгер

93

Ви дійсно повинні використовувати менеджер версій Ruby.

Правильне використання одного з них дозволить запобігти і вирішити вашу проблему з дозволом під час виконання gem updateкоманди.

Рекомендую rbenv .

Однак навіть якщо ви використовуєте менеджер версій Ruby, ви все одно можете отримати те саме повідомлення про помилку.

Якщо ви це робите, а ви використовуєте rbenv, просто переконайтеся, що ~/.rbenv/shimsкаталог знаходиться до шляху для системи Ruby.

$ echo $PATH покаже вам порядок вашого шляху завантаження.

Якщо ви виявите, що ваш каталог shims надходить після вашого системного каталогу Ruby bin, відредагуйте свій ~/.bashrcфайл і поставте це як останню команду PATH для експорту: export PATH=$HOME/.rbenv/shims:$PATH

$ ruby -v показує, яку версію Ruby ви використовуєте

Це показує, що в даний час я використовую системну версію Ruby (зазвичай це не добре)

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

$ rbenv global 1.9.3-p448 перемикає мене на новішу попередньо встановлену версію (див. посилання нижче).

Це показує, що я використовую більш нову версію Ruby (що, ймовірно, не спричинить Gem :: FilePermissionError)

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

Зазвичай вам не потрібно передбачати команду gem з sudo. Якщо ви відчуваєте потребу в цьому, щось, ймовірно, неправильно налаштовано.

Детальніше про rbenv див. Наступне:


7
Якщо ви користуєтесь rbenv, вам не доведеться возитися з пропуском , якщо ви дотримуєтесь інструкцій по установці Homebrew , все, що вам потрібно зробити, - це додати eval "$(rbenv init -)"до конфігурації оболонки, і ви rbenvповинні подбати про те, щоб налаштувати PATHдля вас.

Дякую. Я забув 'rbenv global', тому я все ще використовував системний рубін, і встановити дорогоцінний камінь не вдалося.
Грем Перкс

75

Чому б вам не зробити:

sudo gem update --system

39
Встановити дорогоцінні камені як корінь - це не дуже гарна ідея. stackoverflow.com/questions/2119064 / ...
spuder

Були проблеми з brew upgrade Error: Permission denied.... Це і виправило це. Дякую!
Остап Андрусів

12
Ніколи не використовуйте SUDO, якщо вам доведеться це зробити, ви зробили щось не так у своєму налаштуванні. Будь ласка, використовуйте rbenv або rvm.
Кріс Хоф

14
Чому кожен відповідає на проблеми з дозволом, щоб просто завжди кидати судо перед командою? Як це найкраща практика?
Стівен

hyh: qzc.xcodeproj ilgwhyh $ gem встановити cocoapods Помилка: Під час виконання gem ... (Gem :: FilePermissionError) У вас немає дозволів на запис для каталогу /Library/Ruby/Gems/2.0.0.
ilgwhyh

40

Це вирішить проблему з MacOs Mojave та MacOs Catalina чистим способом:

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. Це потрібно для компіляції розширень.
Марк Перрін-

Я запустив це, і я хочу мати змогу скинути зміни, зроблені цими, чи знаєте ви, як це відновити? @Fmessina
KarenAnne

це має спрацювати: відредагуйте свій файл ~/.bashrcчи ~/.zshrcфайл, видаліть додані 3 рядки та знову запустіть source ~/.bashrcкоманду
Fmessina

34

Для мене проблема була через використання rbenvта забуття встановити належну версію в усьому світі.

Тому мені довелося це встановити rbenv global xxx

У моєму випадку я встановив, 2.0.0-p247тому мені довелося випустити команду:

rbenv global 2.0.0-p247
rbenv rehash

Тоді все нормально працювало.


3
Для тих, хто вже використовує rbenv і почав отримувати помилку дозволу під час встановлення дорогоцінних каменів після оновлення OSX до новішої версії: Спершу слід встановити, наприклад, версію rbenv, rbenv global 2.1.1а потім виконати rbenv rehash. Тепер перезапустіть свою gem installкоманду.
njappboy

1
^ Це + термінал перезапуску.
XåpplI'-I0llwlg'I -

1
майбутні дослідники: rbenv rehash був застарілий github.com/rbenv/rbenv-gem-rehash
TCannadySF

Працювали для мене чудово! Це 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щоб внести всі необхідні зміни.
nyi

найкраща відповідь. мій профіль був названий .bash_profile, і ви можете відкрити файл так: торкніться ~ / .bash_profile; відкрити ~ / .bash_profile та додати рядок, який ти згадав у точці 1.
CarmenA


17

Це працювало для мене. Плюс до цього, якщо ви раніше встановили дорогоцінні камені як корінь, виправляйте цю проблему, повертаючи вам право власності (краще з точки зору безпеки).

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

1
Великий НІ! ніколи не змінюйте дозвіл на /Libraryпапку, система може зламатись у майбутніх оновленнях. (вибачте за пізню відповідь)
Raptor

@Raptor Я змінюю дозволи для підпапки, а не "/ Бібліотека". У моєму випадку я помилково встановив дорогоцінні камені як корінь, тому хотів скасувати це. Немає жодних негативних наслідків, які я міг би теоретично думати, і не було таких, які я спостерігав. Мені цікаво - чому ви вважаєте, що це погана ідея?
thebiggestlebowski

Шлях призначений для системи. Подальші оновлення macOS можуть зламатися.
Раптор

Самоцвіт встановлений за замовчуванням у цьому місці. Він був непридатний, оскільки його помилково встановили як root (sudo) замість мого звичайного користувача. Результат того, що я зробив, був таким самим, як якщо б я встановив як US USER в першу чергу. Я не бачу шкоди. Більшість інших відповідей тут пропонують той самий результат / рішення, але різні способи його досягнення. Я досі не бачу проблеми. Ви кажете, що дорогоцінні камені не повинні встановлюватись під / Бібліотека?
thebiggestlebowski

15

Є два маршрути: Використовуйте або 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

Це встановлює оновлену версію системи дорогоцінних каменів у ваших локальних каталогах. Це означає, що ви не заважаєте конфігурації системи. Якщо ви задаєте це запитання, вам не варто заважати безпеці системи, і ви витратите довше на розуміння проблем, з якими ви можете зіткнутися, ніж просто мати простий спосіб уникнути проблеми, з якою ви почали. Дізнайтеся InfoSec пізніше, коли ви дізнаєтесь більше про операційну систему та програмування.

Для альтернативи замість цього використовуйте 'RVM': Щоб встановити rvm run:

rvm install 2.1.2
rvm use 2.1.2
gem update --system

Це має той самий результат, коли ви перебуваєте в локальній системі Ruby and Gem, яка не втручається у версії системи. Немає потреби ні в домашньому, ні в надмірному стилі системи тощо.


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

Спробуйте відповідь nathanwhy, перш ніж використовувати мою оригінальну відповідь нижче. Його рекомендація --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не потрібно, і ви можете використовувати вже встановлений рубін, люб’язно наданий Apple.


3
+1: Це чудово працювало для мене. Не кожен є системним адміністратором машини, яку вони використовують, а отже, не всі мають доступ до «sudo», «chown» або подібних інструментів. Аналогічно, люди повинні знати про "gem install --user-install", який встановлює дорогоцінний камінь до каталогу в домашньому каталозі користувача, а не до того, до якого поділяються всі користувачі.
Деякий хлопець

12

Мені потрібно було зробити це, rbenv rehashщоб це вказувало на мою місцеву бібліотеку Gem.

Схоже, у вас менеджер дорогоцінних каменів вказує на системну бібліотеку, тому замість того, щоб возитися з дозволами, зробіть еквівалент "повторної переробки" для вашого менеджера, щоб отримати речі, що вказують локально.


3
майбутні дослідники: rbenv rehash був застарілий github.com/rbenv/rbenv-gem-rehash
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прапор зазвичай говорить команді зробити щось рекурсивно, або іншими словами виконайте команду над усіма речами, що містяться в каталозі, і всіма речами, що містяться в каталогах, що містяться всередині, і так далі до немає нічого іншого.


Крім того, якщо ви хочете дізнатися, до якої групи належить ваш користувач, ви можете звернутися до цього. stackoverflow.com/questions/350141 / ...
Breedly

3
Однак ви можете бути обережнішими щодо зміни власності, якщо воно має встановитись у каталог / usr / local / bin.
Брейдлі

16
Зміна власності на що-небудь у / usr, / бібліотеці чи / var шляхах, серед інших, є поганою ідеєю. Система може зупинитися через відсутність доступу файлів і драйверів, а майбутні оновлення можуть зламатися, якщо інсталятор відчує, що шляхи більше не належать root: wheel. Виправити пошкодження може бути дуже важко, і, як правило, найкраще це зробити шляхом перевстановлення ОС. Наївні / недосвідчені користувачі недостатньо знають про ОС, щоб зрозуміти, які файли / каталоги, можливо, можуть бути безпечними, і їх слід попередити, щоб не спробувати цього вдома.
Олов'яний чоловік

Лол - це бентежна відповідь. :) Старший і мудріший зараз я здогадуюсь.
Порочно

11

Я відформатував свій Mac, і багато запропонованих рішень не працювали для мене. Для мене працювали такі команди в правильному порядку:

  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

Вам ніколи не потрібно використовувати, sudoщоб встановити щось із дорогоцінним каменем. Використовуючи sudoвстановлення його в Ruby, що належить системі, а не в ту, яку ви володієте. Використовувати пісочний Ruby набагато простіше в управлінні та використанні під час програмування, оскільки ви можете створити кілька різних екземплярів і спробувати різні речі, а потім знищити їх, коли закінчите.
Олов'яний чоловік


6

Робота для мене:

sudo gem uninstall cocoapods

sudo gem install cocoapods

Дивовижно працювали для мене, як і я Дякую. Заощаджено зусилля встановлення rbenv або RVM
NaXir

5
Нахил, тому що, як було відмічено в інших коментарях, установка дорогоцінних каменів як корінців є небезпечною практикою. Інсталятор може зробити буквально все, що потрібно для вашої системи.
Деякий хлопець

@SomeGuy: "Інсталятор міг зробити буквально все" ... це швидше за все, сам користувач міг би вгамувати команду і обробляти систему. Я не можу придумати час, коли інсталятор зіпсував мою систему, але я чітко пам'ятаю мої часи. sudoце команда, яку люблять новачки, тому що вона дозволяє робити так неправильно, і потрібні роки, щоб навчитися бути належним параноїком при її використанні.
Олов'яний чоловік

1
Найкраща відповідь !!!! Після запуску цих 2 команд, будь ласка, перезапустіть термінал і це все !!! Дуже дякую!!!
nosequeweaponer

4

Перевірте, чи правильна ваша версія Ruby. Якщо ні, змініть це.

Це працює для мене:

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

Це краще рішення: update> chown. Дякую! . Мені також довелося бігатиbrew install ruby
Хосе Льоусас

4

Встановити rbenv шляхом brew install rbenv;

Потім поставте eval "$(rbenv init -)"в кінці ~ / .bash_profile (або ~ / .zshrc MacOS);

Відкрийте новий термінал і запустіть 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

Як вказував bobbdelsol, реабілітація працювала для мене:

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

так близько. все ще "ПОМИЛКА. Під час виконання gem ... (Gem :: FilePermissionError) У вас немає дозволів на запис для каталогу /Library/Ruby/Gems/2.0.0."
JGallardo

1

Тестовано на MacOS Mojave З УСПІХУ:

  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. Перезавантажте систему, оскільки це найбезпечніший спосіб завантаження комп'ютера новою версією rubin, нещодавно встановленою.

ПІСЛЯ ви виконали вищезгадану процедуру, ви можете успішно запустити будь-яку gemкоманду.


-2

cd /Library/Ruby/Gems/2.0.0

відчинено .

клацніть правою кнопкою миші отримати інформацію

натисніть замок

розмістити пароль

змусити все читати і писати.


1
Будь ласка, знайдіть час, щоб сформулювати свою відповідь на читабельність. Зусилля, які ви доклали до дослідження та пояснення, окупаються.
Олов'яний чоловік

-2

дайте користувачеві $ whoami створити щось у цій папці

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

Ні. Ця папка належить системі з поважних причин, система використовує її для власних цілей. Добре запускати скрипт, який вказує на нього, але створюйте та використовуйте пісочний Ruby, якщо ви хочете возитися з ним.
Людина з жерсті


-4

Установка дорогоцінного каміння або оновлення RubyGems не вдається з помилкою прав доступу. Потім введіть цю команду

sudo gem install cocoapods

1
Це було висвітлено в інших відповідях. Прочитайте інші відповіді, перш ніж створювати, щоб переконатися, що ваші пропозиції пропонують щось нове.
Олов'яний чоловік


-18

Причина помилки полягає в тому, що ви не ввійшли в систему як користувач root на терміналі.

Якщо у вас уже є використання root, увімкніть на своєму mac термінальний тип

$ su

Якщо у вас немає кореневого користувача, його потрібно ввімкнути, виконавши наступні кроки

  1. У меню Apple виберіть Системні налаштування….
  2. У меню Перегляд виберіть Користувачі та групи.
  3. Клацніть на блокування та встановіть автентифікацію як обліковий запис адміністратора.
  4. Клацніть Параметри входу….
  5. Натисніть кнопку "Редагувати ..." або "Приєднатись ..." внизу праворуч.
  6. Натисніть кнопку «Відкрити утиліту каталогу ...».
  7. Клацніть замок у вікні Утиліта каталогу.
  8. Введіть ім’я та пароль облікового запису адміністратора, а потім натисніть кнопку ОК.
  9. У меню Правка виберіть Увімкнути кореневого користувача.
  10. Введіть корінний пароль, який ви хочете використовувати в обох полях "Пароль" та "Підтвердити", а потім натисніть кнопку ОК.

Більше про те ж на http://support.apple.com/kb/ht1528

Принаймні, це працює на мене після того, як застряг на пару годин.


Чому голосування проти? Чи можете ви, хлопці, напишіть причину для цього?
Мохаммед Аріф

8
Встановити дорогоцінні камені як корінь - погана ідея. stackoverflow.com/questions/2119064 / ...
spuder
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.