Год назад поимел неслабые проблемы с установкой актуальной версии из оф. репов openSUSE Leap, по совету добрых дядей с форума поддержки openSUSE (кстати, отличный форум, говорю без малейшей иронии; во всяком случае, тот из них, который англоязычный) - проапгрейдил дистр from Leap to Tumbleweed, и в течение года это помогало... но вот пару недель назад после очередного обновления снова пошли косяки. Сперва нам казалось, что удалось кое-как порешать траблы ("нам" - это я и опять-таки добрые волшебники с форума openSUSE, которые, кажется, на сей раз уже не выказывали твердой уверенности в своих советах безнадежно тупому русскому: "IMO no need to do this if you have a working solution now"), но апдейты и апгрейды в итоге взяли свое, и я вновь лишился своей любимой игрушки ruby on rails.
Ситуацию спас Flux Capacitor Penguin под ником tsu2, предложивший закончить наконец садо-мазо эксперименты (интерпретация моя) и поставить rbenv, процедуру чего и попытаюсь кратко пересказать здесь... уповаю на то, что американцы никогда не увидят этого текста, а если увидят - не смогут адекватно перевести, и заканчиваю вступление старым анекдотом, имеющим, как мне это теперь представляется, непосредственное отношение к мейнтейнерам ряда пакетов: "Дети мои, я прожил трудную жизнь. Мои пальцы с трудом пишут слово "х*й", но оно будет часто встречаться в этом завещании". А теперь - к делу.
Install Ruby on openSUSE Tumbleweed
Собственно, все, что потребуется сделать - это добавить один репозиторий, доустановить необходимые для сборки rbenv пакеты (если не установлены), клонировать два репа с гитхаба в директорию ~/.rbenv и прописать PATH и шунты в конфиги вашей локальной (или в root, если оно вам надо) учетки. Ну и все, ничего такого страшного и вовсе не бином Ньютона.
Добавляем репо:
sudo zypper ar http://download.opensuse.org/repositories/devel:/languages:/ruby:/extensions/openSUSE_Tumbleweed/ devel:languages:ruby:extensions && zypper ref
Далее вот как-то так, старайтесь только установить актуальные версии пакетов, если их еще нет в вашей системе:
sudo zypper in ruby ruby2.5-rubygem-bundler nodejs8 git gcc libopenssl-devel sqlite3-devel
sudo zypper in automake gdbm-devel libyaml-devel ncurses-devel readline-devel zlib-devel
На момент 03.03.2023 и в контексте актуальной версии openSUSE Tumbleweed инструкция работает. Всего только несколько уточнений:
- Клонируйте rbenv таким образом: git clone https://github.com/rbenv/rbenv.git .rbenv
- Команду cd ~/.rbenv && src/configure && make -C src попросту пропустите. Этот шаг не нужен.
- Проверку посредством curl также не используйте.
- Мне пришлось перезапустить сеанс, только переоткрыть терминал - не помогает.
Остальное - в точности по написанному.
Далее, под обычным пользователем:
git clone git://github.com/sstephenson/rbenv.git .rbenv
cd ~/.rbenv && src/configure && make -C src
git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.profile
~/.rbenv/bin/rbenv init
Restart your shell so that PATH changes take effect. (Opening a new terminal tab will usually do it, т.е. закрываем терминал и открываем заново.)
Проверяем сделанное:
curl -fsSL https://github.com/rbenv/rbenv-installer/raw/master/bin/rbenv-doctor | bash
все и везде должно быть OK или зелененькое, как-то так:
Checking for `rbenv' in PATH: /home/alex/.rbenv/bin/rbenv
Checking for rbenv shims in PATH: OK
Checking `rbenv install' support: /home/alex/.rbenv/plugins/ruby-build/bin/rbenv-install (ruby-build 20190130-4-g0e33b11)
Counting installed Ruby versions: 2 versions
Checking RubyGems settings: OK
Auditing installed plugins: OK
Ну вот, в принципе, и все. Смотрим перечень доступных версий ruby:
rbenv install -l
и устанавливаем необходимую, одну или несколько:
rbenv install 2.6.1 #for example
, после чего не забываем
rbenv rehash
Выбираем версию ruby глобально:
rbenv global 2.6.1
проверяем:
rbenv version
ruby -v
Назначаем, при необходимости, локальный ruby, перейдя в каталог проекта:
rbenv local 2.0.0
и т.д. и т.п.
Очень неплохо, кстати, все описано здесь и здесь.
# Now install rails and sqlite3:
gem install rails
и понеслось.