По умолчанию Bundler устанавливает гемы в то же место, что и установка гемов.
В некоторых случаях это местоположение может быть недоступно для записи вашим Unix пользователь. В этом случае> Bundler разместит все во временном каталоге, а затем попросит вас ввести пароль> sudo для копирования драгоценных камней в их системное местоположение.
С вашей точки зрения, это идентично установке драгоценных камней непосредственно в> систему.
Вы никогда не должны использовать sudo bundle install. Это связано с тем, что в качестве текущего пользователя необходимо выполнить несколько других шагов в> установке пакета:
Обновление вашего Gemfile.lock
Обновление вашего поставщика / кэша, если необходимо
Проверка из частных git репозиториев, используя S SH ключи вашего пользователя
Из этих трех, первые два теоретически могут быть выполнены путем сгущения> результирующих файлов к $ SUDO_USER. Третье, однако, может быть выполнено только путем> вызова команды git в качестве текущего пользователя. Поэтому git гемов загружаются> и устанавливаются в ~ / .bundle, а не в $ GEM_HOME или $ BUNDLE_PATH.
В результате вы должны запустить bundle install как текущий пользователь, и Bundler> запросит Ваш пароль, если необходимо поместить драгоценные камни в их окончательное местоположение.
В качестве возможного решения вы можете полностью удалить Ruby и его зависимости, а затем установить Ruby, используя asdf, RVM или Запустите rbenv и снова запустите Bundler.
Я использую Bundler просто для установки гемов из гемфайла. cd
в проект с гемфайлом и запустите bundle install
. Он должен найти гем-файл и установить его автоматически. Я думаю, что плохо использовать Bundler внутри домашнего каталога.