Подтвердить что ты не робот

У вас нет прав на запись для каталога/var/lib/gems/2.3.0

У меня есть рубин, установленный на моем ubuntu 16.04.

$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.

Любая помощь будет принята с благодарностью!

4b9b3361

Ответ 1

Сначала вам нужно удалить рубин, установленный Ubuntu, с чем-то вроде sudo apt-get remove ruby.

Затем переустановите ruby ​​с помощью rbenv и ruby-build согласно их документам:

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

Последний шаг - установить Bundler:

gem install bundler
rbenv rehash

Тогда наслаждайтесь!

Дерек

Ответ 2

Если вы хотите использовать дистрибутив Ruby вместо rb-env/rvm, вы можете настроить GEM_HOME для текущего пользователя. Начните с создания каталога для хранения драгоценных камней Ruby для вашего пользователя:

$ mkdir ~/.ruby

Затем обновите вашу оболочку, чтобы использовать этот каталог для GEM_HOME и обновить переменную PATH GEM_HOME в нее каталог Ruby gem bin.

$ echo 'export GEM_HOME=~/.ruby/' >> ~/.bashrc
$ echo 'export PATH="$PATH:~/.ruby/bin"' >> ~/.bashrc
$ source ~/.bashrc

(Эта последняя строка перезагрузит переменные окружения в вашей текущей оболочке.)

Теперь вы сможете установить Ruby gems под вашим пользователем с помощью команды gem. Я смог заставить это работать с Ruby 2.5.1 под Ubuntu 18.04. Если вы используете оболочку, отличную от Bash, вам нужно будет отредактировать сценарий запуска для этой оболочки вместо bashrc.

Ответ 3

(Январь 2019 г.) Чтобы установить Ruby с помощью сценария Rbenv, выполните следующие действия:

1. Сначала обновите индекс пакетов и установите требуемые пакеты   для инструмента 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

2. Затем запустите следующую команду curl, чтобы установить оба rbenv и   рубиново-сборка:

curl -sL https://github.com/rbenv/rbenv-installer/raw/master/bin/rbenv-installer | bash -

3. Добавьте $ HOME/.rbenv/bin в системный PATH.

Если вы используете Bash, запустите:

echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
source ~/.bashrc

Если вы используете Zsh, запустите:

echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.zshrc
echo 'eval "$(rbenv init -)"' >> ~/.zshrc
source ~/.zshrc

4. Установите последнюю стабильную версию Ruby и установите ее по умолчанию   версия с:

rbenv install 2.5.1
rbenv global 2.5.1

Для просмотра всех доступных версий Ruby вы можете использовать: rbenv install -l

5. Убедитесь, что Ruby был правильно установлен, распечатав версию   номер:

ruby -v

# Output
ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-linux]

ИСТОЧНИК: Как установить Ruby в Ubuntu 18.04

ОБНОВЛЕНИЕ: установить rubygems:

sudo apt-get install rubygems

Ответ 4

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

Я предпочел бы просто расширить права этой конкретной папки на... ну, все:

cd /var/lib
sudo chmod -R a+w gems/

(Я тоже столкнулся с вашей ошибкой, поэтому это достаточно проверено.)

Ответ 5

Попробуйте использовать chown -R в каталоге var/lib/gems, назначив права собственности пользователю [rubyusername] в этом примере, пользователю, который будет устанавливать и разрабатывать с помощью драгоценных камней.

 # chown -R rubyusername:rubyusername /var/lib/gems 

Этот рекурсивно изменяет все под каталогом gems. Для обеспечения дополнительной безопасности в многопользовательских системах вы также можете создать группу, а не управлять отдельным именем rubyus и добавлять пользователей в эту группу.

Ответ 6

На основе ответа derek выше, как правило, не рекомендуется использовать предоставленный системой экземпляр Ruby для собственной разработки, поскольку системные инструменты могут зависеть от конкретной версии или местоположения установки Ruby. Подобно этому ответу для Mac OSX, вы захотите следовать инструкциям Дерека по использованию чего-то вроде rbenv (RVM является аналогичной альтернативой), чтобы установить свой собственный экземпляр Ruby.

Однако нет необходимости удалять системную версию Ruby, инструкции по установке rbenv обеспечивают механизм, гарантирующий, что экземпляр Ruby, доступный в вашей оболочке, является экземпляром rbenv, а не экземпляром системы. Это

echo 'eval "$(rbenv init -)"' >> ~/.bashrc

ответ в дереке.

Ответ 7

Для меня эта проблема сводится к простому добавлению sudo в начало этой команды bash:

gem install rails -v 5.2.3

ТАК ЭТО ДОЛЖНО БЫТЬ

sudo gem install rails -v 5.2.3

Ответ 8

Попробуйте sudo chmod 777 -R /var/lib/gems. Он предоставит разрешения на чтение и запись. Это не очень рекомендуется. Но решает проблему более простым способом.