我是Rails的新手,我故意以root身份运行bundler&现在它无法正常工作。我尝试使用gem uninstall bundler
然后gem install bundler
,但仍然没有修复。
如何让非root用户再次使用bundler(错误地将其与root用户一起使用)?
注意: 我已经安装并使用了rbenv,但直接在系统上安装了一些宝石
发生的错误是捆绑医生显示正确缺失的宝石,但是sudo捆绑医生没有如下所示
~/my_ruby_projects/myblog3$ bundle doctor
The latest bundler is 1.16.0.pre.1, but you are currently running 1.15.4.
To update, run `gem install bundler --pre`
The following gems are missing
* execjs (2.7.0)
* coffee-script (2.4.1)
* coffee-rails (4.2.2)
* font-awesome-rails (4.7.0.2)
* temple (0.8.0)
使用sudo
〜/ my_ruby_projects / myblog3 $ sudo捆绑医生
最新的捆绑包是1.16.0.pre.1,但您当前运行的是1.15.4。
要更新,请运行gem install bundler --pre
Gemfile的依赖关系得到满足
安装的软件包没有发现问题
感谢您的帮助
更新: 我知道与sudo的捆绑是正确的,因为它给了真正的宝石,rails告诉我他们缺少,如果我使用捆绑安装没有sudo它会给出如下错误(即使将其更改为chmod 777)
~/my_ruby_projects/myblog3$ bundle install
The latest bundler is 1.16.0.pre.1, but you are currently running 1.15.4.
To update, run `gem install bundler --pre`
There was an error while trying to write to `/home/usrname/.bundle/cache/compact_index/rubygems.org.443.29b0360b937aa4d161703e6160654e47/versions`. It is likely that you
need to grant write permissions for that path.
对于sudo bundle install它说所有都已安装,但是后来rails抛出我需要安装gems的错误(哪个捆绑医生没有sudo )
/my_ruby_projects/myblog3$ sudo bundle install
The latest bundler is 1.16.0.pre.1, but you are currently running 1.15.4.
To update, run `gem install bundler --pre`
Don't run Bundler as root. Bundler can ask for sudo if it is needed, and installing your bundle as root will break this application for all non-root users on this machine.
Using rake 12.0.0
Using concurrent-ruby 1.0.5
# many other gems
Using redis-rails 5.0.2
Using rails_admin 1.2.0
Bundle complete! 30 Gemfile dependencies, 98 gems now installed.
Use `bundle info [gemname]` to see where a bundled gem is installed.
更新2:
rails s
错误地指出缺少宝石文件
但是**sudo** rails s
没有错误地工作
答案 0 :(得分:2)
您应该尝试更改所有者并为~/.bundle
设置正确的权限。
尝试:
sudo chown -R <youruser> ~/.bundle
其次是:
sudo chmod -R 655 ~/.bundle