bundle install - requires Ruby version >= 1.9.2? - ruby-on-rails

I just started doing some development with a Ruby on Rails and trying to run the application locally. The app is working in a production environment with Ruby 1.8.7 installed.
I setup RVM on my computer with Ruby 1.8.7 as the default. But, when I try to run bundle install, I am getting the following error message:
Gem::InstallError: mime-types requires Ruby version >= 1.9.2.
An error occurred while installing mime-types (2.1), and Bundler cannot continue.
Make sure that `gem install mime-types -v '2.1'` succeeds before bundling.
I tried looking for mime-types in my Gemfile but could not find it; which leads me to believe it's a dependency from another gem.
The weird thing is that the production server is also setup with Ruby 1.8.7 so I'm not really sure how the application was originally setup to run especially when mime-types requires Ruby version >= 1.9.2 to run.
I can't find mime-types in my Gemfile.lock on the production server and therefore can't pinpoint what gem is trying to include it.
Does anyone know how I can get this app to work locally so I can begin development?
I don't really have a lot of experience with Ruby or Rails.
Thanks in advance.
Gemfile:
source :gemcutter
gem "mongrel"
gem "ruby-debug"
gem "rails", "2.3.5"
gem "inherited_resources", "1.0.2"
gem "responders", "0.4.2"
gem "activerecord-sqlserver-adapter", :path => "vendor/plugins/activerecord-sqlserver-adapter-1.0.0"
gem "paperclip"
gem "ferret"
gem "crypt" # might need to install for system because of native dependencies
gem "active_scaffold", :path => "vendor/plugins/active_scaffold"
gem "render_component", :path => "vendor/plugins/render_component"
gem "unobtrusive_date_picker", :path => "vendor/plugins/unobtrusive_date_picker"
gem "acts_as_reportable"
gem "will_paginate", :path => "vendor/plugins/will_paginate"
gem "acts_as_transformer", :path => "vendor/plugins/acts_as_transformer"
gem "acts_as_paranoid", :path => "vendor/plugins/acts_as_paranoid"
gem "select_from_lookup", :path => "vendor/plugins/select_from_lookup"
gem "pdfkit"
gem "wirble"
gem "hirb"
gem "dbi"
gem "dbd-odbc"
gem "geokit"
gem "htmlentities"
gem "jeremyevans-exception_notification", :path => "vendor/plugins/exception_notification"
group :development, :test do
gem "pdf-toolkit"
gem "rspec", "1.2.9"
gem "rspec-rails", "1.2.9"
gem "mongrel"
gem "mysql"
gem "populator"
end
group :staging do
gem "mongrel"
gem "ruby-debug"
gem "rails", "2.3.5"
gem "inherited_resources", "1.0.2"
gem "responders", "0.4.2"
gem "activerecord-sqlserver-adapter", :path => "vendor/plugins/activerecord-sqlserver-adapter-1.0.0"
gem "paperclip"
gem "ferret"
gem "crypt" # might need to install for system because of native dependencies
gem "unobtrusive_date_picker", :path => "vendor/plugins/unobtrusive_date_picker"
gem "acts_as_reportable"
gem "will_paginate", :path => "vendor/plugins/will_paginate"
gem "acts_as_transformer", :path => "vendor/plugins/acts_as_transformer"
gem "acts_as_paranoid", :path => "vendor/plugins/acts_as_paranoid"
gem "select_from_lookup", :path => "vendor/plugins/select_from_lookup"
gem "pdfkit"
gem "wirble"
gem "hirb"
gem "dbi"
gem "dbd-odbc"
gem "geokit"
gem "htmlentities"
end
group :test do
gem "ZenTest"
end
Console Output:
Fetching gem metadata from http://rubygems.org/...........
Fetching additional metadata from http://rubygems.org/..
Resolving dependencies...
Using rake (10.1.1)
Invalid gemspec in [/Users/imaginationplus/.rvm/gems/ruby-1.8.7-p374#global/specifications/ZenTest-4.9.5.gemspec]: Illformed requirement ["< 3.0, >= 1.8"]
Invalid gemspec in [/Users/imaginationplus/.rvm/gems/ruby-1.8.7-p374/specifications/ZenTest-4.9.5.gemspec]: Illformed requirement ["< 3.0, >= 1.8"]
Installing ZenTest (4.9.5)
Using activesupport (2.3.5)
Using rack (1.0.1)
Using actionpack (2.3.5)
Using actionmailer (2.3.5)
Invalid gemspec in [/Users/imaginationplus/.rvm/gems/ruby-1.8.7-p374#global/specifications/ZenTest-4.9.5.gemspec]: Illformed requirement ["< 3.0, >= 1.8"]
Invalid gemspec in [/Users/imaginationplus/.rvm/gems/ruby-1.8.7-p374/specifications/ZenTest-4.9.5.gemspec]: Illformed requirement ["< 3.0, >= 1.8"]
active_scaffold at /Users/imaginationplus/gitlocal/cpo-core/vendor/plugins/active_scaffold did not have a valid gemspec.
This prevents bundler from installing bins or native extensions, but that may not affect its functionality.
The validation message from Rubygems was:
missing value for attribute summary
Using active_scaffold (1.0.0) from source at vendor/plugins/active_scaffold
Using activerecord (2.3.5)
activerecord-sqlserver-adapter at /Users/imaginationplus/gitlocal/cpo-core/vendor/plugins/activerecord-sqlserver-adapter-1.0.0 did not have a valid gemspec.
This prevents bundler from installing bins or native extensions, but that may not affect its functionality.
The validation message from Rubygems was:
["README.rdoc", "LICENSE", "CHANGELOG.rdoc"] are not files
Using activerecord-sqlserver-adapter (1.0.0) from source at vendor/plugins/activerecord-sqlserver-adapter-1.0.0
Using activeresource (2.3.5)
acts_as_paranoid at /Users/imaginationplus/gitlocal/cpo-core/vendor/plugins/acts_as_paranoid did not have a valid gemspec.
This prevents bundler from installing bins or native extensions, but that may not affect its functionality.
The validation message from Rubygems was:
missing value for attribute summary
Using acts_as_paranoid (1.0.0) from source at vendor/plugins/acts_as_paranoid
Using fastercsv (1.5.5)
Using color (1.5.1)
Using transaction-simple (1.4.0.2)
Using pdf-writer (1.1.8)
Using ruport (1.6.3)
Using acts_as_reportable (1.1.1)
acts_as_transformer at /Users/imaginationplus/gitlocal/cpo-core/vendor/plugins/acts_as_transformer did not have a valid gemspec.
This prevents bundler from installing bins or native extensions, but that may not affect its functionality.
The validation message from Rubygems was:
["README.rdoc", "LICENSE", "CHANGELOG.rdoc"] are not files
Using acts_as_transformer (1.0.0) from source at vendor/plugins/acts_as_transformer
Using cgi_multipart_eof_fix (2.5.0)
Using cocaine (0.4.2)
Using columnize (0.3.6)
Using crypt (1.1.4)
Using daemons (1.1.9)
Using deprecated (2.0.1)
Using dbi (0.4.5)
Using dbd-odbc (0.2.5)
Using fastthread (1.0.7)
Using ferret (0.11.8.5)
Using gem_plugin (0.2.3)
Using multi_json (1.8.4)
Using geokit (1.8.4)
Using has_scope (0.5.1)
Using hirb (0.7.1)
Using htmlentities (4.3.1)
Using responders (0.4.2)
Using inherited_resources (1.0.2)
Using jeremyevans-exception_notification (1.0.20100406) from source at vendor/plugins/exception_notification
Using rbx-require-relative (0.0.9)
Using linecache (0.46)
Gem::InstallError: mime-types requires Ruby version >= 1.9.2.
An error occurred while installing mime-types (2.1), and Bundler cannot continue.
Make sure that `gem install mime-types -v '2.1'` succeeds before bundling.

If you upgraded to OSX 10.9 Mavericks this might be caused by a leftover executable from an old version of bundler previously installed with ruby 1.8 and still present because bundler has not yet been installed for ruby 2.0.
Fix it by installing bundler:
sudo gem install bundler
Here's a complete investigation verifying that this is indeed the cause of the problem:
$ bundle install
Fetching gem metadata from https://rubygems.org/..........
Fetching gem metadata from https://rubygems.org/..
Installing mime-types (2.3)
Gem::InstallError: mime-types requires Ruby version >= 1.9.2.
An error occured while installing mime-types (2.3), and Bundler cannot continue.
Make sure that `gem install mime-types -v '2.3'` succeeds before bundling.
$ gem contents bundler
Unable to find gem 'bundler' in default gem paths
Directories searched:
/Library/Ruby/Gems/2.0.0/specifications
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/gems/2.0.0/specifications
/Users/yourusername/.gem/ruby/2.0.0/specifications
$ head -n1 $(which bundler)
#!/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby
$ sudo gem install bundler
sudo gem install bundler
Fetching: bundler-1.6.3.gem (100%)
Successfully installed bundler-1.6.3
Parsing documentation for bundler-1.6.3
Installing ri documentation for bundler-1.6.3
1 gem installed
$ head -n1 $(which bundle)
#!/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby
$ bundle install
Fetching gem metadata from https://rubygems.org/.........
Fetching additional metadata from https://rubygems.org/..
Resolving dependencies...
Installing mime-types 2.3
Using bundler 1.6.3
Your bundle is complete!
Use `bundle show [gemname]` to see where a bundled gem is installed.

Related

Rails bundler won't bundle install

I have been fighting this thing for days. I'm on rbenv and I have multiple rubies installed trying to get one stupid decade old app running. When I do "bundle install" I get an error that looks like it's trying to install the current version of rake. Instead of using the version installed with Rails 3....see below
fonso#mybox:~/my-dev$ rails -v
Rails 3.0.0
fonso#mybox:~/my-dev$ ruby -v
ruby 1.9.3p484 (2013-11-22 revision 43786) [x86_64-linux]
fonso#mybox:~/my-dev$ gem list
*** LOCAL GEMS ***
abstract (1.0.0)
actionmailer (3.0.0)
actionpack (3.0.0)
activemodel (3.0.0)
activerecord (3.0.0)
activeresource (3.0.0)
activesupport (3.0.0)
arel (1.0.1)
bigdecimal (1.1.0)
builder (2.1.2)
bundler (1.0.22) <-----------Note bundler is installed
erubis (2.6.6)
i18n (0.4.2)
io-console (0.3)
json (1.5.5)
mail (2.2.20)
mime-types (1.25.1)
minitest (2.5.1)
polyglot (0.3.5)
rack (1.2.8)
rack-mount (0.6.14)
rack-test (0.5.7)
rails (3.0.0)
railties (3.0.0)
rake (0.9.2.2) <--------Note rake is installed
rdoc (3.9.5)
thor (0.14.6)
treetop (1.4.15)
tzinfo (0.3.60)
Here is my Gemfile...
source 'http://rubygems.org'
gem 'rails', '3.0.0'
# Bundle edge Rails instead:
# gem 'rails', :git => 'git://github.com/rails/rails.git'
gem 'pg'
gem 'will_paginate', '~> 2.3.17'
gem 'soap4r-middleware', '~> 0.8.6'
gem 'soap4r', '~> 1.5.6'
gem 'prawn-labels', '~> 0.11.3.0'
gem 'nokogiri-plist', '~> 0.3.0'
gem 'rails_sql_views', '~> 0.8.0'
# gem 'prototype_legacy_helper', '0.0.0', :git => 'https://github.com/rails/prototype_legacy_helper.git'
so Ruby and rails are installed...BUT when I do "bundle install" on my Rails 3 app I get...
fonso#mybox:~/my-dev$ bundle install
Fetching source index for http://rubygems.org/
Installing rake (13.0.3)
Gem::InstallError: rake requires Ruby version >= 2.2.
An error occured while installing rake (13.0.3), and Bundler cannot continue.
Make sure that `gem install rake -v '13.0.3'` succeeds before bundling.
fonso#mybox:~/my-dev$ bundler --version
rbenv: bundler: command not found
Why does it say bundler not found yet I can run Bundle install?
Why can I not get this rails 3 app working?
Any info will help my sanity. Thank you.
UPDATE:
After following Paul D solution I ran bundle install again...but got this error...
fonso#mybox:~/my-dev$ bundle install
Fetching gem metadata from http://rubygems.org/.............
Fetching gem metadata from http://rubygems.org/.
Resolving dependencies...
Bundler could not find compatible versions for gem "bundler":
In Gemfile:
rails (= 3.0.0) was resolved to 3.0.0, which depends on
bundler (~> 1.0.0)
Current Bundler version:
bundler (1.17.3)
This Gemfile requires a different version of Bundler.
Perhaps you need to update Bundler by running `gem install bundler`?
Could not find gem 'bundler (~> 1.0.0)', which is required by gem 'rails (= 3.0.0)', in any of the sources.
#thefonso, I manage multiple decade old apps running stable on Ruby 1.9.3-p551 daily. Here are a few things to ensure:
Make sure you're running latest release of Ruby 1.9 which is 1.9.3-p551. It needs to be installed with SSL/TLS patches as per below:
# Make sure you have latest OpenSSL
sudo apt-get purge -y libssl-dev
sudo apt-get install -y libssl1.0-dev
# Now install Ruby 1.9.3-p551
rbenv install --force --patch 1.9.3-p551 < <(curl -sSL https://git.io/JOtSv)
rbenv global 1.9.3-p551 # (optional)
rbenv rehash
# Now install Bundler 1.17.3
gem install bundler -v 1.17.3 --no-rdoc --no-ri
# Add require 'openssl' to .../versions/1.9.3-p551/bin/bundle file right under require 'rubygems'
# This command below will do it automatically for you as long as you provide it the correct file path
sed "/^require .*/a require 'openssl'" -i "PATH_TO_RBENV_DIR_HERE/versions/1.9.3-p551/bin/bundle"
# That's it! Run commands below to ensure you have patched Ruby 1.9.3-p551
rbenv rehash
curl -Lks 'https://git.io/rg-ssl' | ruby
Now that's out of the way, you can try installing rake 10.5.0
gem install rake -v 10.5.0 --no-ri --no-rdoc
A Gemfile.lock would avoid this problem. If you had one from the last time you ran this code, it would still have the appropriate versions for Rails 3 and Ruby 1.9. Bundler would follow the Gemfile.lock. Unfortunately back then it was not the practice to commit Gemfile.lock.
Since you don't have a Gemfile.lock you're in dependency hell. Bundler is trying to resolve the dependencies using each gem's own gemspec. It doesn't matter which gems you have installed. Where versions are specified it will use that. Where they are not, it will try to use the latest version. Most gems aren't thinking about Ruby 1.9 any more, or old versions of gems didn't have good dependency specifications, so there's going to be problems.
For example, Rails 3.0.0's rails.gemspec depends on railties 3.0.0. railties 3.0.0's railties.gemspec depends on rake >= 0.8.4. There's no upper bound, so Bundler grabs the latest rake and it doesn't work with Ruby 1.9.
To solve this you will need to add more versioned dependencies to your Gemfile. For example, rake 11 should work with Ruby 1.9. Try adding this to your Gemfile.
gem 'rake', '~> 11'
Or you can be super conservative and specify the exact versions you have installed.
gem 'rake', '0.9.2.2'
Run bundle. This should get you past rake and onto the next dependency problem. Add a version restriction for that and bundle. Continue until there's no more dependency issues. Check in the Gemfile.lock.

Heroku destroys pg gem during deployment

I am attempting to deploy a Heroku application based on Ruby on Rails, and am having some issues. Although none of these issues existed in past deployments, Heroku randomly deletes the pg gem after deployment. This is my gemfile:
source 'https://rubygems.org'
git_source(:github) do |repo_name|
repo_name = "#{repo_name}/#{repo_name}" unless repo_name.include?("/")
"https://github.com/#{repo_name}.git"
end
# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'rails', '~> 5.1.3'
# User rails12 factor for heroku's native ruby support tweaks
gem 'rails_12factor'
# Use wdm for Windows poll changes
gem 'wdm', '>= 0.1.0' if Gem.win_platform?
# Use Puma as the app server
gem 'puma', '~> 3.7'
# Use SCSS for stylesheets
gem 'sass-rails', '~> 5.0'
# Use Bootstrap 3 for themeing and templating
gem 'bootstrap-sass'
# Use bootstrapformfor to allow forms to be auto-formatted as per bootstrap standards
gem 'bootstrap_form'
# Use JQuery code optimized for Bootstrap usage
gem 'jquery-rails'
# Use Dragonfly for image upload and handling
gem 'dragonfly', '~> 1.1.3'
# Use Uglifier as compressor for JavaScript assets
gem 'uglifier', '>= 1.3.0'
# Use CoffeeScript for .coffee assets and views
gem 'coffee-rails', '~> 4.2'
# Turbolinks makes navigating your web application faster
gem 'turbolinks', '~> 5'
# Build JSON APIs with ease
gem 'jbuilder', '~> 2.5'
# Use Devise for account management and authorization
gem 'devise'
# Use Cancancan for permissions enforcement
gem 'cancancan'
# Use rolify for role assignment to user accounts
gem 'rolify'
# Windows does not include zoneinfo files so bundle the tzinfo-data gem
gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]
# Use ActiveModel has_secure_password
gem 'bcrypt', '~> 3.1.7'
group :development, :test do
# Call 'byebug' anywhere in the code to stop execution and get a debugger console
gem 'byebug', platforms: [:mri, :mingw, :x64_mingw]
# Adds support for Capybara system testing and selenium driver
gem 'capybara', '~> 2.13'
gem 'selenium-webdriver'
end
group :development do
# Access an IRB console on exception pages or by using <%= console %> anywhere in the code
gem 'web-console', '>= 3.3.0'
gem 'listen', '>= 3.0.5', '< 3.2'
# Spring speeds up development by keeping your application running in the background
gem 'spring'
gem 'spring-watcher-listen', '~> 2.0.0'
# Postgres for active record
gem 'pg'
end
Here is the deployment log:
-----> Ruby app detected
-----> Compiling Ruby/Rails
-----> Using Ruby version: ruby-2.3.4
###### WARNING:
Removing `Gemfile.lock` because it was generated on Windows.
Bundler will do a full resolve so native gems are handled properly.
This may result in unexpected gem versions being used in your app.
In rare occasions Bundler may not be able to resolve your dependencies at all.
https://devcenter.heroku.com/articles/bundler-windows-gemfile
-----> Installing dependencies using bundler 1.15.2
Running: bundle install --without development:test --path vendor/bundle --binstubs vendor/bundle/bin -j4
The dependency tzinfo-data (>= 0) will be unused by any of the platforms Bundler is installing for. Bundler is installing for ruby but the dependency is only for x86-mingw32, x86-mswin32, x64-mingw32, java. To add those platforms to the bundle, run `bundle lock --add-platform x86-mingw32 x86-mswin32 x64-mingw32 java`.
Fetching gem metadata from https://rubygems.org/..........
Fetching version metadata from https://rubygems.org/..
Fetching dependency metadata from https://rubygems.org/.
Resolving dependencies...
Using rake 12.3.0
Using concurrent-ruby 1.0.5
Fetching minitest 5.11.1
Using thread_safe 0.3.6
Using builder 3.2.3
Using erubi 1.7.0
Using mini_portile2 2.3.0
Using crass 1.0.3
Using rack 2.0.3
Fetching nio4r 2.2.0
Using websocket-extensions 0.1.3
Using mini_mime 1.0.0
Using arel 8.0.0
Fetching public_suffix 3.0.1
Installing public_suffix 3.0.1
Installing minitest 5.11.1
Installing nio4r 2.2.0 with native extensions
Using execjs 2.7.0
Using bcrypt 3.1.11
Using rb-fsevent 0.10.2
Using ffi 1.9.18
Using bootstrap_form 2.7.0
Using bundler 1.15.2
Using cancancan 2.1.2
Using coffee-script-source 1.12.2
Using method_source 0.9.0
Using thor 0.20.0
Using orm_adapter 0.5.0
Fetching multi_json 1.13.1
Using puma 3.11.0
Using rails_serve_static_assets 0.0.5
Using rails_stdout_logging 0.0.5
Fetching rolify 5.2.0
Installing multi_json 1.13.1
Installing rolify 5.2.0
Using tilt 2.0.8
Fetching turbolinks-source 5.1.0
Using i18n 0.9.1
Using nokogiri 1.8.1
Installing turbolinks-source 5.1.0
Using tzinfo 1.2.4
Using rack-test 0.8.2
Using warden 1.2.7
Using sprockets 3.7.1
Using websocket-driver 0.6.5
Using mail 2.7.0
Fetching autoprefixer-rails 7.2.4
Fetching uglifier 4.1.3
Installing autoprefixer-rails 7.2.4
Installing uglifier 4.1.3
Using rb-inotify 0.9.10
Using coffee-script 2.4.1
Fetching addressable 2.5.2
Using rails_12factor 0.0.3
Using loofah 2.1.1
Using activesupport 5.1.4
Fetching turbolinks 5.1.0
Installing turbolinks 5.1.0
Installing addressable 2.5.2
Using sass-listen 4.0.0
Using rails-html-sanitizer 1.0.3
Using rails-dom-testing 2.0.3
Using globalid 0.4.1
Using activemodel 5.1.4
Using jbuilder 2.7.0
Fetching dragonfly 1.1.4
Fetching sass 3.5.5
Installing dragonfly 1.1.4
Installing sass 3.5.5
Using activejob 5.1.4
Using actionview 5.1.4
Using activerecord 5.1.4
Using actionpack 5.1.4
Using actionmailer 5.1.4
Using railties 5.1.4
Using sprockets-rails 3.2.1
Using coffee-rails 4.2.2
Using responders 2.4.0
Using jquery-rails 4.3.1
Fetching devise 4.4.0
Installing devise 4.4.0
Using bootstrap-sass 3.3.7
Using sass-rails 5.0.7
Using actioncable 5.1.4
Using rails 5.1.4
Bundle complete! 25 Gemfile dependencies, 72 gems now installed.
Gems in the groups development and test were not installed.
Bundled gems are installed into ./vendor/bundle.
Bundle completed (8.28s)
Cleaning up the bundler cache.
Removing rolify (5.1.0)
Removing turbolinks (5.0.1)
Removing autoprefixer-rails (7.1.6)
Removing sass (3.5.3)
Removing mime-types-data (3.2016.0521)
Removing nio4r (2.1.0)
Removing minitest (5.10.3)
Removing devise (4.3.0)
Removing mimemagic (0.3.2)
Removing cocaine (0.5.8)
Removing pg (0.21.0)
Removing uglifier (3.2.0)
Removing multi_json (1.12.2)
Removing paperclip (5.0.0)
Removing turbolinks-source (5.0.3)
Removing mime-types (3.1)
Removing climate_control (0.2.0)
The latest bundler is 1.16.1, but you are currently running 1.15.2.
To update, run `gem install bundler`
-----> Installing node-v6.11.1-linux-x64
-----> Detecting rake tasks
-----> Preparing app for Rails asset pipeline
Running: rake assets:precompile
rake aborted!
Gem::LoadError: Specified 'postgresql' for database adapter, but the gem is not loaded. Add `gem 'pg'` to your Gemfile (and ensure its version is at the minimum required by ActiveRecord).
ETCETCETC
Note how it randomly deletes the 'pg' gem after initial bundling. Could someone point me in the right direction?
Set your pg gem to require version 0.2x in your Gemfile:
gem 'pg', '~> 0.20'
What's happening is you're system is incorrectly attempting to use a newer, incompatible version of pg. pg 1.0.0 was released January 10, 2018, but it's not currently supported by rails. Since you aren't specifying which version of pg to use, you're system is trying to use the new version of pg, removing the old version, then failing.
See this rails issue, and this rails issue and this fix (Revert to pg 0.21.0 as Rails does not support pg 1.0.0 yet) for more discussion.
Put your pg gem out of development environment.
Remove gem pg from developement
group :development do
# Access an IRB console on exception pages or by using <%= console %> anywhere in the code
gem 'web-console', '>= 3.3.0'
gem 'listen', '>= 3.0.5', '< 3.2'
# Spring speeds up development by keeping your application running in the background
gem 'spring'
gem 'spring-watcher-listen', '~> 2.0.0'
end
and keep it outside from developement
# Postgres for active record
gem 'pg'
Try to the following
Remove gem 'pg' from group :development and keep that on Gemfile outside of group, then run bundler bundle update then follow these steps
git add .
git commit -m "Fixed gem pg issue"
git push heroku master
That will work
If you little bit confused again see the Heroku documentation and start from scratch
Thanks

MacOSX Lion run server without therubyracer gem

I was using a cloud9 ide online but I had to install gem rmagick. But the ide did not let me to do and gave an error. So I decided to download my project in to my local area. Then when I try to bundle install, it throws and error for therubyracer.
I though Osx has its own way to handle java part. So if i take out gem rubyracer from gem file, bundle install works fine. But then when i say rails server, i get an error;
rails server
[WARNING] Please install gem 'therubyracer' to use Less.
bin/rails:6: warning: already initialized constant APP_PATH
/Users/emreozkan/Desktop/yedek/Last.1/bin/rails:6: warning: previous definition of APP_PATH was here
Usage: rails COMMAND [ARGS]
The most common rails commands are:
generate Generate new code (short-cut alias: "g")
console Start the Rails console (short-cut alias: "c")
server Start the Rails server (short-cut alias: "s")
dbconsole Start a console for the database specified in config/database.yml
(short-cut alias: "db")
new Create a new Rails application. "rails new my_app" creates a
new application called MyApp in "./my_app"
In addition to those, there are:
destroy Undo code generated with "generate" (short-cut alias: "d")
plugin new Generates skeleton for developing a Rails plugin
runner Run a piece of code in the application environment (short-cut alias: "r")
All commands can be run with -h (or --help) for more information.
EDIT 1:
bundle install with gem thrubyracer;
Fetching gem metadata from https://rubygems.org/..........
Fetching version metadata from https://rubygems.org/..
Resolving dependencies......
Using rake 10.4.2
Using i18n 0.7.0
Using json 1.8.2
Using minitest 5.6.0
Using thread_safe 0.3.5
Using tzinfo 1.2.2
Using activesupport 4.2.0
Using builder 3.2.2
Using erubis 2.7.0
Using mini_portile 0.6.2
Using nokogiri 1.6.6.2
Using rails-deprecated_sanitizer 1.0.3
Using rails-dom-testing 1.0.6
Using loofah 2.0.1
Using rails-html-sanitizer 1.0.2
Using actionview 4.2.0
Using rack 1.6.0
Using rack-test 0.6.3
Using actionpack 4.2.0
Using globalid 0.3.5
Using activejob 4.2.0
Using mime-types 2.4.3
Using mail 2.6.3
Using actionmailer 4.2.0
Using activemodel 4.2.0
Using arel 6.0.0
Using activerecord 4.2.0
Using ansi 1.5.0
Using bcrypt 3.1.7
Using debug_inspector 0.0.2
Using binding_of_caller 0.7.3.pre1
Using sass 3.4.13
Using bootstrap-sass 3.2.0.0
Using will_paginate 3.0.7
Using bootstrap-will_paginate 0.0.10
Using bundler 1.9.1
Using columnize 0.9.0
Using debugger-linecache 1.2.0
Using slop 3.6.0
Using byebug 3.4.0
Using carrierwave 0.10.0
Using hitimes 1.2.2
Using timers 4.0.1
Using celluloid 0.16.0
Using coderay 1.1.0
Using coffee-script-source 1.9.1.1
Using execjs 2.5.2
Using coffee-script 2.4.1
Using thor 0.19.1
Using railties 4.2.0
Using coffee-rails 4.1.0
Using commonjs 0.2.7
Using ffi 1.9.8
Using formatador 0.2.5
Using rb-fsevent 0.9.4
Using rb-inotify 0.9.5
Using listen 2.10.0
Using lumberjack 1.0.9
Using nenv 0.2.0
Using shellany 0.0.1
Using notiffany 0.0.6
Using method_source 0.8.2
Using pry 0.10.1
Using guard 2.12.5
Using guard-minitest 2.3.1
Using multi_json 1.11.0
Using jbuilder 2.2.3
Using jquery-rails 4.0.3
Using less 2.6.0
Using sprockets 3.0.1
Using tilt 1.4.1
Using less-rails 2.7.0
Using libv8 3.16.14.7
Using sprockets-rails 2.2.4
Using rails 4.2.0
Using mini_backtrace 0.1.3
Using ruby-progressbar 1.7.5
Using minitest-reporters 1.0.5
Using pg 0.17.1
Using rails_serve_static_assets 0.0.4
Using rails_stdout_logging 0.0.3
Using rails_12factor 0.0.2
Using rdoc 4.2.0
Using ref 1.0.5
Using rmagick 2.13.2
Using sass-rails 5.0.1
Using sdoc 0.4.0
Using spring 1.1.3
Using sqlite3 1.3.9
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
/usr/local/opt/ruby/bin/ruby -r ./siteconf20150421-1458-ss9mv4.rb extconf.rb --pre
checking for main() in -lpthread... yes
checking for main() in -lobjc... yes
checking for v8.h... no
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of necessary
libraries and/or headers. Check the mkmf.log file for more details. You may
need configuration options.
Provided configuration options:
--with-opt-dir
--with-opt-include
--without-opt-include=${opt-dir}/include
--with-opt-lib
--without-opt-lib=${opt-dir}/lib
--with-make-prog
--without-make-prog
--srcdir=.
--curdir
--ruby=/usr/local/Cellar/ruby/2.2.1/bin/$(RUBY_BASE_NAME)
--with-pthreadlib
--without-pthreadlib
--with-objclib
--without-objclib
--enable-debug
--disable-debug
--with-v8-dir
--without-v8-dir
--with-v8-include
--without-v8-include=${v8-dir}/include
--with-v8-lib
--without-v8-lib=${v8-dir}/lib
/usr/local/lib/ruby/gems/2.2.0/gems/libv8-3.16.14.7/ext/libv8/location.rb:50:in `configure': You have chosen to use the version of V8 found on your system (Libv8::Location::System::NotFoundError)
and *not* the one that is bundle with the libv8 rubygem. However,
it could not be located. please make sure you have a version of
v8 that is compatible with 3.16.14.7 installed. You may
need to special --with-v8-dir options if it is in a non-standard
location
thanks,
The Mgmt
from /usr/local/lib/ruby/gems/2.2.0/gems/libv8-3.16.14.7/lib/libv8.rb:7:in `configure_makefile'
from extconf.rb:32:in `<main>'
extconf failed, exit code 1
Gem files will remain installed in /usr/local/lib/ruby/gems/2.2.0/gems/therubyracer-0.12.2 for inspection.
Results logged to /usr/local/lib/ruby/gems/2.2.0/extensions/x86_64-darwin-11/2.2.0/therubyracer-0.12.2/gem_make.out
An error occurred while installing therubyracer (0.12.2), and Bundler cannot
continue.
Make sure that `gem install therubyracer -v '0.12.2'` succeeds before bundling.
EDIT 2:
My gem file;
source 'https://rubygems.org'
gem 'rails', '4.2.0'
gem 'json', '~> 1.8.2'
gem 'execjs'
gem 'bcrypt', '3.1.7'
gem 'will_paginate', '3.0.7'
gem 'bootstrap-will_paginate', '0.0.10'
gem 'bootstrap-sass', '3.2.0.0'
gem 'carrierwave'
gem 'rmagick', '2.13.2'
gem "less-rails" #Sprockets (what Rails 3.1 uses for its asset pipeline) supports LESS
gem 'sass-rails', '5.0.1'
gem 'uglifier', '2.5.3'
gem 'coffee-rails', '4.1.0'
gem 'jquery-rails', '4.0.3'
gem 'turbolinks', '2.3.0'
gem 'jbuilder', '2.2.3'
gem 'sdoc', '0.4.0', group: :doc
group :development, :test do
gem 'sqlite3', '1.3.9'
gem 'byebug', '3.4.0'
gem 'web-console', '2.0.0.beta3'
gem 'spring', '1.1.3'
end
group :test do
gem 'minitest-reporters', '1.0.5'
gem 'mini_backtrace', '0.1.3'
gem 'guard-minitest', '2.3.1'
end
group :production do
gem 'pg', '0.17.1'
gem 'rails_12factor', '0.0.2'
end
I had a similar problem installing Rails on a Rapsberry Pi because therubyracer has no package for arm processors.
It can be solved installing node.js which you can download here: https://nodejs.org/download/
After you installed it you can remove therubyracer from your Gemfile and run bundle again. After you did that everything should be fine...
// You also need to add this line to your Gemfile:
gem 'execjs'
Then run bundler again.
Its described here: http://ajacevedo.com/2013/using-node-js-as-a-rails-javascript-runtime/
// IN your case the Less Gem requires therubyracer not rails itself. So its a gem specific problem. It has been discribed here: https://github.com/seyhunak/twitter-bootstrap-rails/issues/336
One of the guys seemed to solve it this way:
...
Anyways, removed both gems, 'therubyracer' and 'less-rails-bootstrap'. Now using 'bootstrap-sass'.

Travis CI can't find 'pg' gem

I'm using Travis CI to test my Rails project.
When it build my commit, it stops on bundle exec rake.
Part of log:
$ gem --version
2.2.2
$ bundle --version
Bundler version 1.6.2
$ bundle install --jobs=3 --retry=3 --deployment
Fetching gem metadata from https://rubygems.org/..........
Fetching additional metadata from https://rubygems.org/..
Installing i18n 0.6.11
Installing rake 10.3.2
Installing minitest 5.4.0
Installing thread_safe 0.3.4
Installing builder 3.2.2
Installing json 1.8.1
Installing erubis 2.7.0
Installing mime-types 1.25.1
Installing rack 1.5.2
Installing polyglot 0.3.5
Installing arel 5.0.1.20140414130214
Installing execjs 2.2.1
Installing coffee-script-source 1.7.1
Installing thor 0.19.1
Installing hike 1.2.3
Using bundler 1.6.2
Installing multi_json 1.10.1
Installing tilt 1.4.1
Installing rails_serve_static_assets 0.0.2
Installing rails_stdout_logging 0.0.3
Installing tzinfo 1.2.1
Installing sass 3.2.19
Installing rack-test 0.6.2
Installing rdoc 4.1.1
Installing treetop 1.4.15
Installing coffee-script 2.3.0
Installing uglifier 2.5.3
Installing sprockets 2.11.0
Installing rails_12factor 0.0.2
Installing sdoc 0.4.0
Installing activesupport 4.1.4
Installing mail 2.5.4
Installing actionview 4.1.4
Installing jbuilder 2.1.3
Installing activemodel 4.1.4
Installing actionpack 4.1.4
Installing activerecord 4.1.4
Installing railties 4.1.4
Installing sprockets-rails 2.1.3
Installing actionmailer 4.1.4
Installing coffee-rails 4.0.1
Installing jquery-rails 3.1.1
Installing sass-rails 4.0.3
Installing turbolinks 2.2.2
Installing rails 4.1.4
Your bundle is complete!
It was installed into ./vendor/bundle
Post-install message from rdoc:
Depending on your version of ruby, you may need to install ruby rdoc/ri data:
<= 1.8.6 : unsupported
= 1.8.7 : gem install rdoc-data; rdoc-data --install
= 1.9.1 : gem install rdoc-data; rdoc-data --install
>= 1.9.2 : nothing to do! Yay!
$ psql -c 'create database travis_ci_test;' -U postgres
CREATE DATABASE
$ cp config/database.yml.travis config/database.yml
$ bundle exec rake
rake aborted!
Gem::LoadError: Specified 'postgresql' for database adapter, but the gem is not loaded. Add `gem 'pg'` to your Gemfile (and ensure its version is at the minimum required by ActiveRecord).
(As you can see, there is no pg gem installed).
My .travis.yml:
language: ruby
rvm:
- "2.0.0"
addons:
postgresql: "9.3"
before_script:
- psql -c 'create database travis_ci_test;' -U postgres
- cp config/database.yml.travis config/database.yml
My Gemfile:
source 'https://rubygems.org'
# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'rails', '4.1.4'
# Use postgresql as the database for Active Record
gem 'pg'
# Use SCSS for stylesheets
gem 'sass-rails', '~> 4.0.3'
# Use Uglifier as compressor for JavaScript assets
gem 'uglifier', '>= 1.3.0'
# Use CoffeeScript for .js.coffee assets and views
gem 'coffee-rails', '~> 4.0.0'
# See https://github.com/sstephenson/execjs#readme for more supported runtimes
# gem 'therubyracer', platforms: :ruby
# Use jquery as the JavaScript library
gem 'jquery-rails'
# Turbolinks makes following links in your web application faster. Read more: https://github.com/rails/turbolinks
gem 'turbolinks'
# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
gem 'jbuilder', '~> 2.0'
# bundle exec rake doc:rails generates the API under doc/api.
gem 'sdoc', '~> 0.4.0', group: :doc
# Windows does not include zoneinfo files, so bundle the tzinfo-data gem
gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw]
gem 'rails_12factor', group: :production
ruby "2.0.0"
So 'pg' gem is in the Gemfile and it works on my computer, but Travis doesn't install it.
Is the 'pg' gem in your Gemfile.lock file? If not, you may need to delete this file and regenerate it by running bundle install again.
Removing Gemfile.lock from the repository worked, now build and testing is working as expected.
I guess that happens because of lock-file being created on Windows, and it includes some platform-specific stuff (like mingw32 suffixes for gems)

NOTE: FriendlyId 4.x breaks compatibility with 3.x

I create a new Refinery application and face some problems. I following to instuction on official web-site Refinery http://refinerycms.com/guides/heroku. One of this mistakes says: NOTE: FriendlyId 4.x breaks compatibility with 3.x. But I unload rails version 3.2.18. What problem is? When I open my application on heroku: We're sorry, but something went wrong.
My Gemfile:
source 'https://rubygems.org'
gem 'rails', '3.2.18'
# Bundle edge Rails instead:
# gem 'rails', :git => 'git://github.com/rails/rails.git'
group :development, :test do
gem 'sqlite3'
end
group :production do
gem 'pg'
end
group :production do
gem 'rails_log_stdout', github: 'heroku/rails_log_stdout'
gem 'rails3_serve_static_assets', github: 'heroku/rails3_serve_static_assets'
end
gem 'rails_12factor', group: :production
# Gems used only for assets and not required
# in production environments by default.
group :assets do
gem 'sass-rails', '~> 3.2.3'
gem 'coffee-rails', '~> 3.2.1'
# See https://github.com/sstephenson/execjs#readme for more supported runtimes
# gem 'therubyracer', :platforms => :ruby
gem 'uglifier', '>= 1.0.3'
end
gem 'jquery-rails'
# To use ActiveModel has_secure_password
# gem 'bcrypt-ruby', '~> 3.0.0'
# To use Jbuilder templates for JSON
# gem 'jbuilder'
# Use unicorn as the app server
# gem 'unicorn'
# Deploy with Capistrano
# gem 'capistrano'
# To use debugger
# gem 'debugger'
# Refinery CMS
gem 'refinerycms', '~> 2.1.0'
# Optionally, specify additional Refinery CMS Extensions here:
gem 'refinerycms-acts-as-indexed', '~> 1.0.0'
# gem 'refinerycms-blog', '~> 2.1.0'
# gem 'refinerycms-inquiries', '~> 2.1.0'
# gem 'refinerycms-search', '~> 2.1.0'
# gem 'refinerycms-page-images', '~> 2.1.0'
# The Heroku gem allows you to interface with Heroku's API
gem 'heroku'
# Fog allows you to use S3 assets (added for Heroku)
gem 'fog'
# Postgres support (added for Heroku)
gem 'pg'
Terminal:
ark#ark-Aspire-5750G:~/mirprirodi$ git push heroku master
Initializing repository, done.
Counting objects: 95, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (81/81), done.
Writing objects: 100% (95/95), 35.82 KiB, done.
Total 95 (delta 15), reused 0 (delta 0)
-----> Ruby app detected
-----> Compiling Ruby/Rails
-----> Using Ruby version: ruby-2.0.0
-----> Installing dependencies using 1.6.3
Running: bundle install --without development:test --path vendor/bundle --binstubs vendor/bundle/bin -j4 --deployment
Your Gemfile lists the gem pg (>= 0) more than once.
You should probably keep only one of them.
While it's not a problem now, it could cause errors if you change the version of just one of them later.
Fetching gem metadata from https://rubygems.org/.......
Fetching additional metadata from https://rubygems.org/..
Fetching git://github.com/heroku/rails3_serve_static_assets.git
Fetching git://github.com/heroku/rails_log_stdout.git
Installing multi_json 1.10.1
Installing i18n 0.6.9
Installing rake 10.3.2
Installing builder 3.0.4
Installing journey 1.0.4
Installing erubis 2.7.0
Installing hike 1.2.3
Installing rack 1.4.5
Installing tilt 1.4.1
Installing polyglot 0.3.5
Installing mime-types 1.25.1
Installing arel 3.0.3
Installing acts_as_indexed 0.8.3
Installing addressable 2.3.6
Installing babosa 0.3.11
Installing tzinfo 0.3.39
Installing coffee-script-source 1.7.0
Installing execjs 2.2.1
Installing thor 0.19.1
Installing orm_adapter 0.5.0
Installing excon 0.37.0
Installing formatador 0.2.5
Installing json 1.8.1
Installing bcrypt 3.1.7
Installing inflecto 0.0.2
Installing ipaddress 0.8.0
Installing net-ssh 2.9.1
Installing mini_portile 0.6.0
Installing netrc 0.7.7
Using bundler 1.6.3
Using rails3_serve_static_assets 0.0.1 from git://github.com/heroku/rails3_serve_static_assets.git (at master)
Installing rubyzip 1.1.4
Installing rails_serve_static_assets 0.0.2
Using rails_log_stdout 0.0.1 from git://github.com/heroku/rails_log_stdout.git (at master)
Installing rails_stdout_logging 0.0.3
Installing truncate_html 0.9.2
Installing sass 3.3.9
Installing will_paginate 3.0.6
Installing fog-json 1.0.0
Installing activesupport 3.2.18
Installing rails-i18n 0.7.4
Installing rack-test 0.6.2
Installing rack-cache 1.2
Installing rack-ssl 1.3.4
Installing warden 1.2.3
Installing sprockets 2.2.2
Installing dragonfly 0.9.15
Installing treetop 1.4.15
Installing rest-client 1.6.7
Installing launchy 2.4.2
Installing coffee-script 2.2.0
Installing heroku-api 0.3.18
Installing rdoc 3.12.2
Installing uglifier 2.5.1
Installing bcrypt-ruby 3.1.5
Installing net-scp 1.2.1
Installing rails_12factor 0.0.2
Installing activemodel 3.2.18
Installing mail 2.5.4
Installing heroku 3.8.4
Installing fog-core 1.22.0
Installing actionpack 3.2.18
Installing activerecord 3.2.18
Installing activeresource 3.2.18
Installing fog-brightbox 0.1.0
Installing actionmailer 3.2.18
Installing railties 3.2.18
Installing routing-filter 0.3.1
Installing pg 0.17.1
Installing awesome_nested_set 2.1.6
Installing friendly_id 4.0.10.1
Installing globalize 3.1.0
Installing coffee-rails 3.2.2
Installing decorators 1.0.3
Installing devise 2.2.8
Installing jquery-rails 2.3.0
Installing rails 3.2.18
Installing sass-rails 3.2.6
Installing seo_meta 1.4.0
Installing refinerycms-i18n 2.1.0
Installing refinerycms-core 2.1.2
Installing refinerycms-dashboard 2.1.2
Installing refinerycms-authentication 2.1.2
Installing refinerycms-images 2.1.2
Installing refinerycms-pages 2.1.2
Installing refinerycms-resources 2.1.2
Installing refinerycms-acts-as-indexed 1.0.0
Installing refinerycms 2.1.2
Installing nokogiri 1.6.2.1
Installing fog 1.22.1
Your bundle is complete!
Gems in the groups development and test were not installed.
It was installed into ./vendor/bundle
Post-install message from rdoc:
Depending on your version of ruby, you may need to install ruby rdoc/ri data:
<= 1.8.6 : unsupported
= 1.8.7 : gem install rdoc-data; rdoc-data --install
= 1.9.1 : gem install rdoc-data; rdoc-data --install
>= 1.9.2 : nothing to do! Yay!
Post-install message from bcrypt-ruby:
#######################################################
The bcrypt-ruby gem has changed its name to just bcrypt. Instead of
installing `bcrypt-ruby`, you should install `bcrypt`. Please update your
dependencies accordingly.
#######################################################
Post-install message from heroku:
! The `heroku` gem has been deprecated and replaced with the Heroku Toolbelt.
! Download and install from: https://toolbelt.heroku.com
! For API access, see: https://github.com/heroku/heroku.rb
Post-install message from friendly_id:
NOTE: FriendlyId 4.x breaks compatibility with 3.x. If you're upgrading
from 3.x, please see this document:
http://rubydoc.info/github/norman/friendly_id/master/file/WhatsNew.md
Post-install message from globalize:
Globalize has extracted versioning support to a separate gem named
globalize-versioning. If you are using versioning (with paper_trail
or any other versioning gem), please add the line
"gem 'globalize-versioning'" to your Gemfile and go to the github
page at globalize/globalize-versioning if you encounter any problems.
Note that the globalize-versioning gem does not delegate versions to
the translation table, so you will have to update your syntax to
the form: `post.translation.versions`. See the globalize-versioning
readme for details.
Bundle completed (31.77s)
Cleaning up the bundler cache.
-----> Writing config/database.yml to read from DATABASE_URL
-----> Preparing app for Rails asset pipeline
Running: rake assets:precompile
Compiled jquery.js (4ms) (pid 1429)
Compiled jquery_ujs.js (0ms) (pid 1429)
Compiled application.js (15ms) (pid 1429)
Compiled application.css (0ms) (pid 1429)
Compiled jquery.js (5ms) (pid 1429)
Compiled jquery_ujs.js (0ms) (pid 1429)
Compiled application.js (69ms) (pid 1429)
Compiled application.css (0ms) (pid 1429)
Asset precompilation completed (18.38s)
-----> WARNINGS:
You have not declared a Ruby version in your Gemfile.
To set your Ruby version add this line to your Gemfile:
ruby '2.0.0'
# See https://devcenter.heroku.com/articles/ruby-versions for more information.
No Procfile detected, using the default web server (webrick)
https://devcenter.heroku.com/articles/ruby-default-web-server
-----> Discovering process types
Procfile declares types -> (none)
Default types for Ruby -> console, rake, web, worker
-----> Compressing... done, 27.3MB
-----> Launching... done, v6
http://stormy-caverns-7064.herokuapp.com/ deployed to Heroku
To git#heroku.com:stormy-caverns-7064.git
* [new branch] master -> master
ark#ark-Aspire-5750G:~/mirprirodi$ heroku open
Opening stormy-caverns-7064... done
ark#ark-Aspire-5750G:~/mirprirodi$

Resources