Ruby: Настройка окружения
Теория: RubyGems
В поставку Ruby входит утилита gem, через которую ставятся, обновляются и удаляются зависимости. В целом gem — это часть RubyGems, механизма управления библиотеками или пакетами в Ruby.
Каждая библиотека в Ruby называется гемом. Программисты так и говорят: "Давайте использовать вот этот гем". Список всех гемов можно найти:
- На сайте RubyGems
- В модерируемом каталоге RubyToolbox, в котором гемы разбиты по категориям
Как и у любого пакетного менеджера, у RubyGems есть пути, по которым можно ставить библиотеки и менять переменные окружения. Такое может понадобиться при работе с Docker.
Чтобы увидеть настройки RubyGems, нужно набрать команду gem env:
Обратите внимание на GEM PATHS. В Ruby все гемы по умолчанию ставятся в общую директорию, а не в директорию проекта. То есть неважно откуда мы выполняем команду установки, все гемы будут лежать в одном месте. Тогда возникает вопрос, как RubyGems работает с разными версиями одной и той же библиотеки? Очень просто, имя директории гема включает в себя и версию:
Несколько примеров того, как работать с гемами:
RubyGems модифицирует пути загрузки, по которым инструкция require производит поиск Ruby-кода. Каждый раз когда выполняется require, RubyGems всего лишь добавляет директорию lib гема в этот список путей.
Все это так же работает и через файлы.
И запуск:

