der*_*rek 89 rubygems gem-bundler
我在我的ubuntu 16.04上安装了ruby.
$which ruby
/usr/bin/ruby
$ruby -v
ruby 2.3.0p0 (2015-12-25) [x86_64-linux-gnu]
$gem install bundler
ERROR: While executing gem ... (Gem::FilePermissionError)
You don't have write permissions for the /var/lib/gems/2.3.0 directory.
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激!
der*_*rek 139
首先需要卸载Ubuntu安装的ruby sudo apt-get remove ruby.
然后根据他们的文档使用rbenv和ruby-build重新安装ruby :
cd $HOME
sudo apt-get update
sudo apt-get install git-core curl zlib1g-dev build-essential libssl-dev libreadline-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt1-dev libcurl4-openssl-dev python-software-properties libffi-dev
git clone https://github.com/rbenv/rbenv.git ~/.rbenv
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
exec $SHELL
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
echo 'export PATH="$HOME/.rbenv/plugins/ruby-build/bin:$PATH"' >> ~/.bashrc
exec $SHELL
rbenv install 2.3.1
rbenv global 2.3.1
ruby -v
Run Code Online (Sandbox Code Playgroud)
最后一步是安装Bundler:
gem install bundler
rbenv rehash
Run Code Online (Sandbox Code Playgroud)
然后享受!
德里克
Jam*_*mes 40
如果要使用Ruby而不是rb-env/rvm,可以GEM_HOME为当前用户设置a .首先创建一个目录来为您的用户存储Ruby gem :
$ mkdir ~/.ruby
Run Code Online (Sandbox Code Playgroud)
然后更新shell以使用该目录GEM_HOME并更新PATH变量以包含Ruby gem bin目录.
$ echo 'export GEM_HOME=~/.ruby/' >> ~/.bashrc
$ echo 'export PATH="$PATH:~/.ruby/bin"' >> ~/.bashrc
$ source ~/.bashrc
Run Code Online (Sandbox Code Playgroud)
(最后一行会将设置直接加载到当前shell中.)
现在,您应该能够使用该gem命令在您的用户下安装Ruby gem .我能够在Ubuntu 18.04下使用Ruby 2.5.1.如果您使用的是非Bash的shell,则需要编辑该shell的启动脚本而不是bashrc.
Ach*_*DAY 18
(2019年1月)要使用Rbenv脚本安装Ruby,请执行以下步骤:
1.首先,更新packages索引并安装ruby-build工具从源代码构建Ruby所需的软件包:
sudo apt-get remove ruby
sudo apt update
sudo apt install git curl libssl-dev libreadline-dev zlib1g-dev autoconf bison build-essential libyaml-dev libreadline-dev libncurses5-dev libffi-dev libgdbm-dev
Run Code Online (Sandbox Code Playgroud)
2.接下来,运行以下curl命令以安装rbenv和ruby-build:
curl -sL https://github.com/rbenv/rbenv-installer/raw/master/bin/rbenv-installer | bash -
Run Code Online (Sandbox Code Playgroud)
3.将$ HOME / .rbenv / bin添加到系统PATH。
如果使用的是Bash,请运行:
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
source ~/.bashrc
Run Code Online (Sandbox Code Playgroud)
如果您使用的是Zsh,请运行:
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.zshrc
echo 'eval "$(rbenv init -)"' >> ~/.zshrc
source ~/.zshrc
Run Code Online (Sandbox Code Playgroud)
4.安装最新的稳定版Ruby,并使用以下命令将其设置为默认版本:
rbenv install 2.5.1
rbenv global 2.5.1
Run Code Online (Sandbox Code Playgroud)
要列出所有可用的Ruby版本,可以使用:
rbenv install -l
5.通过打印出版本号来验证Ruby是否已正确安装:
ruby -v
# Output
ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-linux]
Run Code Online (Sandbox Code Playgroud)
编辑:安装rubygems:
sudo apt-get install rubygems
Run Code Online (Sandbox Code Playgroud)
sch*_*rer 17
Ubuntu 20.04:
对于 bash(对于 zsh,我们.zshrc当然会使用)
echo '# Install Ruby Gems to ~/gems' >> ~/.bashrc
echo 'export GEM_HOME="$HOME/gems"' >> ~/.bashrc
echo 'export PATH="$HOME/gems/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
Run Code Online (Sandbox Code Playgroud)
卸载 apt-version ( ruby-full) 并重新安装它snap
echo '# Install Ruby Gems to ~/gems' >> ~/.bashrc
echo 'export GEM_HOME="$HOME/gems"' >> ~/.bashrc
echo 'export PATH="$HOME/gems/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
Run Code Online (Sandbox Code Playgroud)
Fra*_*cke 11
而不是更改可能会锁定其他本地用户的所有者,或者 - 某天 - 您自己的ruby服务器/部署 - 在不同用户下运行的东西......
我宁愿只是将该特定文件夹的权限扩展到......好吧,每个人:
cd /var/lib
sudo chmod -R a+w gems/
Run Code Online (Sandbox Code Playgroud)
(我确实遇到了你的错误.所以这是相当经过验证的.)
小智 8
尝试chown -R在var/lib/gems目录上使用rubyusername,为此示例中的用户[ ] 分配所有权,即将使用gem安装和开发的用户.
# chown -R rubyusername:rubyusername /var/lib/gems
Run Code Online (Sandbox Code Playgroud)
这会以递归方式更改gems目录下的所有内容.为了在多用户系统上提供额外的安全性,您还可以创建一个组,而不是单独使用rubyusername,并将用户添加到该组.
我在 GitHub Actions 中遇到了同样的错误。添加sudo解决了问题。
sudo gem install bundler
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
81866 次 |
| 最近记录: |