Ошибка Gem::FilePermissionError при установке MacOS

При установке Discourse (для разработки) на моем Mac возникает эта ошибка:

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

Как можно это исправить?
Спасибо.

Вы выполняли установку скрипта Discourse здесь?

Вы используете macOS Catalina? Если да, то, похоже, у вас возникает проблема из-за того, что Discourse пытается использовать системную версию Ruby. Чтобы избежать этого, вам следует использовать такой инструмент, как rbenv, чтобы задать версию Ruby.

Я использую macOS Catalina. Я запускал этот скрипт, но он прервался на полпути, потому что, кажется, пакет уже был установлен.

Можешь вывести результат команды which rbenv?

И есть ли у тебя кастомный файл .bashrc или .zshrc?

/usr/local/bin/rbenv

Не совсем уверен. Не думаю, но возможно.

Можете перейти в каталог Discourse с помощью команды cd и поделиться результатом выполнения which ruby?

Ой, не заметил. Я сделал это и получил /usr/bin/ruby

Хорошо, значит, вы используете системный Ruby для Discourse, поэтому у вас возникла эта проблема.

Проверьте переменную PATH, введя команду echo $PATH. Вы должны увидеть в списке /Users/<ваше имя пользователя>/.rbenv/bin и /Users/<ваше имя пользователя>/.rbenv/shims.

Если их нет, добавьте их в файл конфигурации вашего оболочного интерпретатора .bashrc или .zshrc. Для ZSH вы можете добавить это так: export PATH=/путь/номер/1:/путь/номер/2:$PATH.

Если вы их видите, проверьте порядок их следования. Если они находятся позже в цепочке, скорее всего, они не загружаются до системного Ruby, из-за чего для Discourse используется именно системный Ruby. Вы можете использовать тот же подход, что и выше, чтобы переместить эти пути выше в цепочке.

Мне казалось, что @david добавил проверку версии Ruby в наши инструменты для разработки? :thinking:

Полагаю, это было для CLI темы.

Можно ли здесь добавить аналогичную проверку?

Я думаю, мы уже проверяем совместимость версий Ruby в Discourse — проблема здесь в том, что наш пакет Discourse не может записывать гемы для системной версии Ruby, поставляемой с macOS. Я могу ошибаться в деталях, но, как мне кажется, это связано с изменениями, которые Apple внесла в macOS Catalina. Я сам столкнулся с этой проблемой, и мне потребовалось немало усилий для её устранения.

  1. Я столкнулся с той же ошибкой, что и автор темы.

  2. Прочитайте это:

  1. Подумал, что это на самом деле не ошибка прав доступа к файлу, а установщик искал в неправильном месте.

  2. Я знал, что перезапуск терминала перезагрузит мой файл .zshrc, поэтому закрыл и снова открыл терминал.

  3. Я снова запустил скрипт установки и больше не столкнулся с этой ошибкой.

Можно ли решить эту проблему, если стратегически перезагрузить терминал в процессе установки? :thinking: