Використовувати файл rvmrc або ruby-версія для встановлення набору проектів з RVM?


230

Я використовую RVM, менеджер версій Ruby, щоб вказати версію Ruby та набір дорогоцінних каменів для кожного з моїх проектів Rails.

У мене є .rvmrcфайл, який автоматично вибираю версію Ruby та набір дорогоцінних файлів кожного разу, коли я cdпотрапляю в каталог проектів.

Після установки RVM 1.19.0 я отримую повідомлення

Ви використовуєте .rvmrc, воно вимагає довіри, воно повільніше і воно не сумісне з іншими менеджерами рубінів, ви можете перейти на .ruby-versionвикористання rvm rvmrc to [.]ruby-versionабо ігнорувати ці попередження rvm rvmrc warning ignore /Users/userName/code/railsapps/rails-prelaunch-signup/.rvmrc, .rvmrcі надалі буде файлом проекту за замовчуванням у RVM 1 та RVM 2, щоб ігнорувати попередження для запуску всіх файлів rvm rvmrc warning ignore all.rvmrcs.

Чи варто продовжувати використовувати свій .rvmrcфайл чи перейти на .ruby-versionфайл? Що оптимально? Що таке наслідки?

Відповіді:


372

Якщо ваш .rvmrcфайл містить власний код оболонки, продовжуйте використовувати, .rvmrcоскільки він дозволяє включати будь-який код оболонки.

Якщо вашою єдиною метою є переключення версій Ruby, тоді використовуйте їх, .ruby-versionякі підтримуються іншими комутаторами версій Ruby, такими як rbenv або chruby . Цей файл також не потребує довіри, оскільки це лише назва версії Ruby і не буде виконаний жодним чином.

Якщо ви використовуєте, .ruby-versionви можете включити @gemsetу файл, але це не буде сумісно з іншими комутаторами. Для підтримки сумісності використовуйте ім'я gemset в окремому файлі, .ruby-gemsetякий ігнорується іншими інструментами (він працює лише разом з .ruby-version) .

Наприклад, якщо у вас є простий .rvmrc:

rvm use 1.9.3@my-app

Він може бути перетворений на .ruby-version:

1.9.3

І .ruby-gemset:

my-app

Не забудьте видалити .rvmrcфайл, оскільки він має перевагу над іншими файлами конфігурації проекту:

rm .rvmrc

9
Зауважте, що ще не всі програми підтримують новіші .ruby-версії та .ruby-gemset файли, але лише .rvmrc. (Зокрема, RubyMine). Це, звичайно, вплине на ваш вибір, чи потрібно переходити до нової системи. Я вже вказав на це у відповіді, оскільки мені знадобилося багато часу, щоб відстежити це. Однак мою відповідь чомусь видалили ..
giorgio

2
Чи є посилання на якусь "офіційну" документацію з цього приводу? Я почав розбиратися, як це працює на сайті RVM, але просто знайшов деяку розпливчасту згадку про нього як новий файл rvmrc, але нічого про те, як це має працювати.
eirc

2
Це не повністю задокументовано, але ось що ми вже rvm.io/workflow/projects/#ruby-versions
mpapis

4
Просто помістіть 1.9.3-p194 в .ruby-версію для мене не працює. Посилайтесь на документ вище, rvm --create --ruby-version use 1.9.3-p194виконайте роботу, а вміст всередині насправдіruby-1.9.3-p194
Jinzhao Huo

2
Поточні версії RubyMine підтримують стиль .ruby-версії. Можна підтвердити з 6.3.2
BeepDog

76

Швидкий і простий спосіб перейти з .rvmrc в .ruby-версія + .ruby-gemset

rvm rvmrc to .ruby-version

1
Щоправда, але це ставить [] навколо. чомусь я цього не зрозумів. (можливо, це умова, з якою я незнайомий.) Я насправді погукав повідомлення та знайшов цю відповідь, оскільки незручне фразування та [] змусили мене не знати, що насправді працювати.
зем

2
@zem [] [.]ruby-versionвказує, що крапка не є обов'язковою ; квадратні дужки є загальною умовою для вказівки на необов'язковість (загалом, не в рубіні). Отже, ви можете використовувати файл під назвою "ruby-версія", без крапки, і це також буде використовуватися. Це може бути корисно, якщо ви хочете отримати більшу видимість файлу в системах, які за замовчуванням приховують "крапкові файли". Я погоджуюсь, що це не так зрозуміло.
Метт Гібсон

Там написаноCould not load .rvmrc
Абдулла

4

Якщо ви хочете створити файл .ruby-versionі .ruby-gemsetфайл стисло, ви можете скористатися такими командами:

rvm use 2.1.1@nancy --create

rvm --create --ruby-version 2.1.1@nancy

2

Можна спробувати і те, і інше. Перейдіть до кореня проекту, створіть .rvmrc файл ( touch .rvmrc), а потім відредагуйте rvm use 2.0.0-p451@your_gemset(Ваша версія рубіну та ім'я дорогоцінного набору). Після збереження цього файлу ви можете ввести цю команду:

cd ../your_project(ви знаходитесь в каталозі your_project ), а сценарій у .rvmrc виконається.

RVM рекомендують використовувати ruby-версію. Ви можете запустити цю команду для переходу з .rvmrc в .ruby-версію

rvm rvmrc to .ruby-version

Для цього потрібно створити 2 файли .ruby-версія та .ruby-gemset та додати цей рядок

ruby-2.0.0-p451 в .ruby-версії

your_gemset в .ruby-gemset

Ви можете спробувати зробити це вручну, якщо хочете :)


0

Встановити rvm за допомогою:

\curl -sSL https://get.rvm.io | bash -s stable --rails

Встановіть різні версії рубіну:

rvm install 1.8.7
rvm install 1.9.2

Перехід на певну версію рубіну. Наприклад, 1.8.7:

rvm use 1.8.7

Щоб створити gemse:

rvm gemset create project_gemset

І використовувати дорогоцінний набір:

rvm gemset use project_gemset
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.