easimonenko Evgeny Simonenko

Начальные шаги по миграции с Ruby 2.7 на 3.0

22 May 2022 |  Tutorial  |  Jekyll   Ruby   Ubuntu   Linux  

В недавно вышедшем Ubuntu Linux 22.04 LTS Ruby был обновлён с версии 2.7 на 3.0. Если вы обновили систему на новую версию без переустановки, то ожидаемо ранее установленные gem перестали работать. В этой статье будут описаны начальные шаги по реанимации после обновления Ruby.

Шаг 1

Заново установите bundler и jekyll (если используете):

 gem install bundler jekyll --user-install

Шаг 2

Обновите пути в .profile:

if [ -d "$HOME/.local/share/gem/ruby/3.0.0" ] ; then
  RUBY_PATH="$HOME/.local/share/gem/ruby/3.0.0"
  export RUBY_PATH
  GEM_HOME="$RUBY_PATH"
  export GEM_HOME
  PATH="$RUBY_PATH/bin:$PATH"
fi

И перезайдите в систему, чтобы переменные окружения обновились.

Шаг 3

Перейдите в каталог с вашим проектом на Ruby и установите заново все зависимости:

bundle install

Шаг 4

Для проектов на Jekyll придётся добавить зависимость от webrick, иначе просмотр сайта будет невозможен из-за ошибки (webrick из третьей версии Ruby был исключён) (см. также https://stackoverflow.com/questions/65989040/bundle-exec-jekyll-serve-cannot-load-such-file и https://jekyllrb.com/docs/#instructions):

bundle add webrick

Шаг 5 (заключительный)

Удалите каталог ~/.local/share/gem/ruby/2.7.0:

rm -r ~/.local/share/gem/ruby/2.7.0

Что дальше

Версия Ruby 3.0 принесла по сравнению с 2.7 много интересного и полезного. Подробнее можно почитать на странице выпуска.

(c) Симоненко Евгений, 2022