Страницы

Поиск по вопросам

Показаны сообщения с ярлыком bundler. Показать все сообщения
Показаны сообщения с ярлыком bundler. Показать все сообщения

воскресенье, 8 марта 2020 г.

как установить конкретную версию rspec для проэкта

#ruby #rspec #bundler


Как можно строго указать версию rspec в гемфайле
При том, если прописываю вручную 

gem "rspec", '3.5.1'


то после комманды bundle install ругается на


  Could not find gem 'rspec (= 3.5.1) in any of the gem sources listed
  in your Gemfile or available on this machine.


хоть и rpec -v показывает 3.5.1
    


Ответы

Ответ 1



Немного непонятно, с гемами. В цитате из гемфайла используется какой-то rpec, хотя бандлер ругается на rspec. Рискну предположить, что вопрос именно про rspec. Ни rubygems.org ни офф. репозиторий rspec'a не знают про версию 3.5.1. Если им верить, то последняя версия это 3.5.0. 3.5.1 есть только для rspec-core

среда, 5 февраля 2020 г.

You don't have write permissions for the /var/lib/gems/2.3.0 directory

#ruby #bundler


gem install bundler


После этой вот команды
    


Ответы

Ответ 1



Вы попытались установить гем в системный репозиторий, не имея на то привилегий. В первую очередь, разрешения установлены не без причины. Обычно общесистемный репозиторий гемов считается безопасным для всех пользователей системы, включая привилегированных. Поэтому то, что к его изменению доступ ограничен, резонно. Иначе кто угодно мог бы добавить туда код, которым мог вы воспользоваться (не зная об изменениях) пользователь с высокими полномочиями. Так что разрешения к той папке не трогайте. Есть другие варианты. --user-install Гемы можно установить в собственную папку пользователя ("домашний репозиторий"), если они потребуются только ему. За это отвечает флаг --user-install. gem install --user-install bundler Чтобы не указывать этот флаг каждый раз и по умолчанию всё держать "дома": нужно в домашней папке сделать файл .gemrc (скорее всего, у вас его не существует) и убедиться, что у опции install есть флаг --user-install. Файл только с этой опцией может выглядеть так: --- install: --user-install Можно добавить этот и другие флаги аналогичным образом и для других подкоманд gem, не только install. sudo Если устанавливаемые гемы нужны всем, можно поставить их и с sudo в "системный репозиторий". Пользоваться гемами в этом репозитории смогут все. Но что попало туда устанавливать не стоит, по причине, описанной в начале ответа. Менеджеры версий На машине разработчика обычно имеет смысл держать несколько версий Ruby, для чего обычно используют менеджер версий. RVM мне видится самым простым в использовании, но есть также rbenv и обобщённый на много языков asdf. У них у всех есть документация, и при обычной установке они всё своё "имущество" держат с домашней папке пользователя, посему не требуют прав суперпользователя для работы.

четверг, 30 мая 2019 г.

как установить конкретную версию rspec для проэкта

Как можно строго указать версию rspec в гемфайле При том, если прописываю вручную
gem "rspec", '3.5.1'
то после комманды bundle install ругается на
Could not find gem 'rspec (= 3.5.1) in any of the gem sources listed in your Gemfile or available on this machine.
хоть и rpec -v показывает 3.5.1


Ответ

Немного непонятно, с гемами. В цитате из гемфайла используется какой-то rpec, хотя бандлер ругается на rspec. Рискну предположить, что вопрос именно про rspec Ни rubygems.org ни офф. репозиторий rspec'a не знают про версию 3.5.1. Если им верить, то последняя версия это 3.5.0. 3.5.1 есть только для rspec-core