Як я можу виправити помилку "У вас немає дозволу на запис у каталог / usr / bin" під час встановлення Rails?


132

Я намагаюся встановити Rails 3 на абсолютно новий MacBook Pro під керуванням OS X 10.6.3, Ruby 1.8.7 та Rails 2.3.5, і мені цікаво, чи я шлангував сам. Поки я виконував ці команди:

$ gem update --system
$ gem install arel tzinfo builder memcache-client rack rack-test rack-mount erubis mail text-format thor bundler i18n
$ gem install rails --pre

Однак, коли я запускаю останню команду, я отримую цю помилку:

ERROR:  While executing gem ... (Gem::FilePermissionError)
    You don't have write permissions into the /usr/bin directory.

Я думаю, що хоче, щоб я запустив команду, sudoщоб вона могла писати /usr/bin/rails. Але якщо я це зроблю, чи не буду я перезаписувати свій виконуваний файл Rails 2.3.5? Я не хочу цього робити. Натомість я хотів би зберегти обидві версії Rails. Як це зробити?


5
Я отримував таку ж помилку при першій команді, використовую цю командуsudo gem update --system -n /usr/local/bin
nitish005

1
Що таке -n?
Скотт Ромак

Просто збираюся викласти це, що просто перезапуск терміналу вирішив це для мене.
ясен

Відповіді:


14

Я б запропонував використовувати RVM, це дозволяє вам встановити кілька версій Ruby / Rails, встановлених з профілями дорогоцінних каменів, і в основному зберігати всі ваші дорогоцінні камені, що містяться один у одного. Ви можете перевірити подібний пост Як встановити Ruby on Rails 3 на OSX


тільки це вирішило для мене аналогічну проблему з тим же повідомленням про помилку
Rich Stone

479

використовувати -nпараметр для установки, як для cocoapods:

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

7
Навіщо нам це навіть потрібно?
ненчев

28
Помилка в MacOS, якщо ви не вказали -n / usr / local / bin. Дякую за рішення
Саккі Сан

3
Що означає -n означає?
allenlinli

7
відповідно до guides.rubygems.org/command-reference/#gem-install , -n вказує каталог, де розташовані бінарні файли. Мені також потрібен -n /usr/local/binмій Mac. Я побіг which podвизначити його існуюче місце, перш ніж використовувати опцію -n, яка була дійсно / usr / local / bin
mwu

3
Я впевнений, що RVM чудовий, але це краща відповідь, яка безпосередньо вирішує негайну проблему, не надсилаючи мені кролячу нору.
Уейн

62

Використання прапора -n / usr / local / bin працює, але мені довелося повертатися на цю сторінку кожен раз, коли я хотів знову оновити пакет. Тому я вигадав постійне виправлення цього.

Для тих, хто зацікавлений виправити це постійно :

Створіть файл ~ / .gemrc

vim .gemrc

З таким вмістом:

:gemdir:
   - ~/.gem/ruby
install: -n /usr/local/bin

Тепер ви можете запустити свою команду нормально без прапора -n.

Насолоджуйтесь!


vim .gemrcяк написати цей cmd
Чандні

Я не впевнений, що це буде працювати у Window $, але, мабуть, ви могли б використовувати Блокнот.
Франсуа Надо

Дякую, як і ви, я втомився шукати цей суфікс кожного разу, коли мені потрібно було оновлювати!
Пол-Етьєн

49
sudo gem install cocoapods --pre -n /usr/local/bin

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


У мене було це питання, і ця відповідь спрацювала на мене! Я замінив cocoapodsзалежність, яка мені потрібна
Христос

33

Можна використовувати sudo gem install -n /usr/local/bin cocoapods

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


6

Щоб виправити вашу конкретну помилку, потрібно запустити цю команду як sudo, тобто:

sudo gem install rails --pre

1
НЕМАЄ. Використовуйте rvm або rbenv ... не просто судо.
doublejosh

5

Ця помилка вразила мене після правильної установки RVM. Рішення: перезавантажте термінал.

Довідковий посібник з встановлення RVM RailsCast .


Не точно через 7 років, але це працює також, якщо ви працюєте над підсистемою Windows bash. Просто вийдіть з bash і запустіть його знову. Дякую.
Педро Мадрид

0

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

Ви дійсно повинні використовувати rvm , але так як ніхто вам не пояснив, як це зробити без rvm , ось вам:

sudo gem install tzinfo builder memcache-client rack rack-test rack-mount \
  abstract erubis activesupport mime-types mail text-hyphen text-format   \
  thor i18n rake bundler arel railties rails --prerelease --force

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