Support for Windows Gemfiles
Page last updated:
Warning: Pivotal Application Service (PAS) v2.8 is no longer supported because it has reached the End of General Support (EOGS) phase as defined by the Support Lifecycle Policy. To stay up to date with the latest software and security updates, upgrade to a supported version.
This topic describes how the Ruby buildpack handles dependencies on Windows machines.
Windows Gemfiles
When a Gemfile.lock
is generated on a Windows machine, it often contains gems
with Windows-specific versions. This results in versions of gems such as
mysql2
, thin
, and pg
containing “-x86-mingw32.” For example, the Gemfile
may contain the following:
gem 'sinatra'
gem 'mysql2'
gem 'json'
When you run bundle install
with the above Gemfile
on a Windows machine, it results in the following Gemfile.lock
:
GEM remote: http://rubygems.org/
specs:
json (1.7.3)
mysql2 (0.3.11-x86-mingw32)
rack (1.4.1)
rack-protection (1.2.0)
rack sinatra (1.3.2)
rack (~> 1.3, >= 1.3.6)
rack-protection (~> 1.2)
tilt (~> 1.3, >= 1.3.3)
tilt (1.3.3)
PLATFORMS x86-mingw32
DEPENDENCIES
json
mysql2
sinatra
Notice the “-x86-mingw32” in the version number of mysql2
. Since Cloud Foundry runs on Linux machines, this would fail to install. To mitigate this, the Ruby Buildpack removes the Gemfile.lock
and uses Bundler to resolve dependencies
from the Gemfile
.
Note:
Removing the Gemfile.lock
will cause dependency versions to be resolved
from the Gemfile
. This could result in different versions being installed than
those listed in the Gemfile.lock
.