Мы разворачиваем несколько приложений, используя Apache2 и Passenger (v3.0.9).App Foo - это приложение Rails 3.0.11, а панель приложений - приложение Rails 3.1.3.Оба приложения используют пакет для управления своими зависимостями.Исходя из моего понимания документации Passenger, Passenger и Bundler работают, как и ожидалось, для загрузки необходимых зависимостей для каждого приложения.Foo зависит от Rack 1.2.4, а Bar - от Rack 1.3.5.
Когда развертывается Bar и запускается установка пакета (через Capistrano), устанавливается Rack 1.3.5.И вдруг Foo получает следующую ошибку Пассажира:
Gem::LoadError - You have already activated rack 1.3.5, but your Gemfile requires rack 1.2.4. Using bundle exec may solve this.
Сообщение пытается быть полезным, но я не уверен, где именно следует запустить bundle exec.Я также попытался выполнить установку пакета --path vendor / cache, как рекомендовано в другом месте, но это, похоже, не помогло.
Я могу удалить Rack 1.3.5, но на риск Бар.И еще одно решение состоит в том, чтобы просто обновить Foo до Rails 3.1.x, но я хотел бы понять, что здесь происходит не так, так как, скорее всего, в будущем у нас будут приложения, работающие с разными версиями.