РАСКРЫТИЕ: я очень мало знаю о Ruby, кроме базового синтаксиса кода. Смирись с моим идиотизмом.
Библиотека OpenSSL Ruby 1.8, похоже, не поддерживает TLS 1.2. Однако есть работающие приложения, зависящие от версии 1.8, поэтому я хочу посмотреть, смогу ли я запустить более новую версию Ruby одновременно в той же системе и настроить ее с более новыми версиями тех же драгоценных камней.
В настоящее время версия 1.8 находится в /usr/lib/ruby/1.8. В идеале я хотел бы сохранить ту же структуру и установить более новую версию (не знаю, какая самая последняя, стабильная версия - будь то 2.3.x или 2.4.x).
Тем не менее, я не администратор Ruby. Я унаследовал сервер от кого-то, кто решил, что Ruby — лучший способ делать что-то, несмотря на то, что в компании не было другого опыта работы с Ruby, а затем они ушли. Я знаю некоторые вещи системного администратора, но я не знаю:
- Насколько обратно совместимы версии Ruby (например, будет ли приложение, созданное для версии 1.8, работать без каких-либо серьезных изменений в версии 2.4.1).
- Как работают/обновляются драгоценные камни. Может ли 2.4.1 использовать драгоценные камни из 1.8, или драгоценные камни привязаны к определенным версиям Ruby? Может ли быть микс-и-матч? Есть ли какой-то путь миграции?
- Как правильно управлять двумя разными одновременными версиями (как указать приложению использовать одну версию вместо другой или предотвратить автоматические попытки существующих приложений использовать новую версию и сломаться, если они несовместимы).
- Любые лучшие практики установки (обычно я компилирую из исходников, но открыт для предложений).
- Возможно ли просто обновить библиотеку Ruby OpenSSL без обновления всего приложения Ruby? В настоящее время он работает на OpenSSL 0.9.8o, поэтому он значительно отстает от времени.
На сервере работает Debian 6.0.6 (хотя я больше знаком с Red Hat и CentOS, поэтому любые советы по управлению пакетами и т. д., связанные с этой проблемой, будут приветствоваться).