I want to run a small test Sinatra application. Here is the error message:
Could not find rack-1.5.2 in any of the sources (Bundler::GemNotFound)
I have verified that the rack 1.5.2 gem is installed in my environment.
Here is the Gemfile.lock
GEM
remote: https://rubygems.org/
specs:
rack (1.5.2)
sass (3.1.20)
sequel (4.10.0)
sinatra (1.0)
rack (>= 1.0)
slim (2.0.2)
temple (~> 0.6.6)
tilt (>= 1.3.3, < 2.1)
sqlite3 (1.3.6)
temple (0.6.7)
tilt (2.0.1)
PLATFORMS
ruby
DEPENDENCIES
rack
sass (= 3.1.20)
sequel
sinatra
slim (= 2.0.2)
sqlite3 (= 1.3.6)
I would appreciate any help on how to proceed.
Related
This is my first attempt with a ruby stack. I'm stuck with the following error:
Could not find rack-1.6.4 in any of the sources (Bundler::GemNotFound)
I've successfully installed the following components:
ubuntu 14.04.3 LTS
rvm 1.26.11
ruby 2.1.6p336
nginx 1.8
* LOCAL GEMS *
bigdecimal (1.2.4)
bundler (1.10.6)
bundler-unload (1.0.2)
executable-hooks (1.3.2)
gem-wrappers (1.2.7)
io-console (0.4.3)
json (1.8.1)
minitest (4.7.5)
psych (2.0.5)
rack (1.6.4)
rack-protection (1.5.3)
rake (10.1.0)
rdoc (4.1.0)
rubygems-bundler (1.4.4)
rvm (1.11.3.9)
sinatra (1.4.6)
test-unit (2.1.6.0)
tilt (2.0.1)
* Gemfile *
gem 'sinatra', '1.4.6'
* Gemfile.lock *
GEM
remote: https://rubygems.org/
specs:
rack (1.6.4)
rack-protection (1.5.3)
rack
sinatra (1.4.6)
rack (~> 1.4)
rack-protection (~> 1.4)
tilt (>= 1.3, < 3)
tilt (2.0.1)
PLATFORMS
ruby
DEPENDENCIES
sinatra (= 1.4.6)
BUNDLED WITH
1.10.6
* config.ru *
require './app.rb'
run Sinatra::Application
* app.rb *
require 'bundler/setup'
require 'sinatra'
get '/' do
'hello world'
end
I'm using the default Nginx folder for the app. I was able to execute the following test in config.ru:
app = proc do |env|
[200, { "Content-Type" => "text/html" }, ["hello world"]]
end
But as soon I try to switch to Sinatra I get the error above.
Thanks in advance!
Ok I found the problem.
I followed the installation instruction here: https://www.phusionpassenger.com/library/install/nginx/install/oss/trusty/
But since I'm using rvm I had to change the passenger_ruby directive to point to the rvm wrapper: /usr/local/rvm/wrappers/ruby-2.1.6/ruby
Problem is here:
rack (1.6.4)
...
sinatra (1.4.6)
rack (~> 1.4)
You have a conflict in the rack version. you want both 1.6.4 and 1.4.x
How did rack 1.6.4 end up in the gemfile.lock?
I'm working on a Gem.
Despite specifying the version of activemodel, the gem is actually using activemodel 4.0.0.
As of 4.0.0 the constructor only takes a single argument. So when I try and pass in a second argument I get an Argument error:
/Users/me/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/activerecord-4.0.0/lib/active_record/core.rb:180:in `initialize': wrong number of arguments (2 for 1) (ArgumentError)
Why is Rubygems using the wrong version of ActiveModel?
I have specified the following dependencies in the gemspec:
gem.add_dependency "log4r"
gem.add_dependency "deep_end"
gem.add_dependency "google_drive"
gem.add_development_dependency 'rake'
gem.add_development_dependency 'rspec'
gem.add_development_dependency "activemodel", "3.2.13"
gem.add_development_dependency "activerecord", "3.2.13"
gem.add_development_dependency "activesupport", "3.2.13"
My Gemfile.lock looks like this:
PATH
remote: .
specs:
drive_time (0.0.1)
deep_end
google_drive
log4r
GEM
remote: https://rubygems.org/
specs:
activemodel (3.2.13)
activesupport (= 3.2.13)
builder (~> 3.0.0)
activerecord (3.2.13)
activemodel (= 3.2.13)
activesupport (= 3.2.13)
arel (~> 3.0.2)
tzinfo (~> 0.3.29)
activesupport (3.2.13)
i18n (= 0.6.1)
multi_json (~> 1.0)
arel (3.0.2)
builder (3.0.4)
deep_end (0.0.1)
log4r
diff-lcs (1.2.4)
faraday (0.8.7)
multipart-post (~> 1.1)
google_drive (0.3.6)
nokogiri (>= 1.4.4, != 1.5.2, != 1.5.1)
oauth (>= 0.3.6)
oauth2 (>= 0.5.0)
httpauth (0.2.0)
i18n (0.6.1)
jwt (0.1.8)
multi_json (>= 1.5)
log4r (1.1.10)
mini_portile (0.5.0)
multi_json (1.7.7)
multi_xml (0.5.4)
multipart-post (1.2.0)
nokogiri (1.6.0)
mini_portile (~> 0.5.0)
oauth (0.4.7)
oauth2 (0.9.2)
faraday (~> 0.8)
httpauth (~> 0.2)
jwt (~> 0.1.4)
multi_json (~> 1.0)
multi_xml (~> 0.5)
rack (~> 1.2)
rack (1.5.2)
rake (10.1.0)
rspec (2.13.0)
rspec-core (~> 2.13.0)
rspec-expectations (~> 2.13.0)
rspec-mocks (~> 2.13.0)
rspec-core (2.13.1)
rspec-expectations (2.13.0)
diff-lcs (>= 1.1.3, < 2.0)
rspec-mocks (2.13.1)
tzinfo (0.3.37)
PLATFORMS
ruby
DEPENDENCIES
activerecord (= 3.2.13)
activesupport (= 3.2.13)
drive_time!
rake
rspec
I also get the following:
$ bundle show activemodel #/Users/pedr/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/activemodel-3.2.13
Make sure you are running your code with bundle exec, otherwise ruby will default to using the most recent version of the gem you have installed.
Using bundle exec will disallow loading of any gems not in your bundle and should correct your problem. Check out the manpage for more details.
Hope this helps!
After trying everything I could think of, the following has done the trick (though whether it has permanently cured the issue, only time will tell).
$ gem clean
Uninstall rbenv
Install rbenv
Delete Gemfile.lock
$ bundle
I'm learning to use Sinatra + Datamapper to build a lightweight webapp.
I ran gem install sqlite3 datamapper dm-sqlite-adapter and it seemed to have successfully installed...
I then tried to execute my .rb file which starts with:
require 'sinatra'
require 'datamapper'
and I got an error that it could not find the datamapper file.
C:/Ruby192/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require': no such file to load -- datamapper (LoadError)
I also tried with require 'data_mapper' since there is conflicting information on the internetz as to the correct spelling of that gem, but same result.
I then listed all my installed gems (see below) and realilsed that there is no such gem as datamapper or data_mapper. I read so,ewhere that it is a meta-gem, I guess that means it doesn't actually install that one gem but rather all the gems starting with dm- ?
As a last resort I tried gem install data_mapper
and I got the ill fated:
C:\Users\Manu\Sinatra>gem install data_mapper
Building native extensions. This could take a while...
ERROR: Error installing data_mapper:
ERROR: Failed to build gem native extension.
C:/Ruby192/bin/ruby.exe extconf.rb
creating Makefile
make
'make' is not recognized as an internal or external command,operable program or batch file.
Gem files will remain installed in C:/Ruby192/lib/ruby/gems/1.9.1/gems/json-1.6.4 for inspection.
Results logged to C:/Ruby192/lib/ruby/gems/1.9.1/gems/json-1.6.4/ext/json/ext/parser/gem_make.out
I searched all over and just couldn't find anything to help me troubleshoot this, so hopefully there's someone roaming this forum with a magic wand and a pointy hat!
Many thanks
PS: I'm running ruby 1.9.2p0 installed with the installer
* LOCAL GEMS *
abstract (1.0.0)
actionmailer (3.0.3)
actionpack (3.0.3)
activemodel (3.0.3)
activerecord (3.0.3)
activeresource (3.0.3)
activesupport (3.0.3)
addressable (2.2.6)
arel (2.0.6)
backports (2.3.0)
builder (2.1.2)
bundler (1.0.7)
cgi_multipart_eof_fix (2.5.0)
data_objects (0.10.7)
diff-lcs (1.1.3)
dm-aggregates (1.2.0)
dm-constraints (1.2.0)
dm-core (1.2.0)
dm-do-adapter (1.2.0)
dm-migrations (1.2.0)
dm-sqlite-adapter (1.2.0)
dm-transactions (1.2.0)
do_sqlite3 (0.10.7 x86-mingw32)
erubis (2.6.6)
fastercsv (1.5.4)
gem_plugin (0.2.3)
growl (1.0.3)
i18n (0.5.0)
json_pure (1.6.4)
mail (2.2.12)
mime-types (1.16)
minitest (1.6.0)
mongrel (1.1.5 x86-mingw32)
multi_json (1.0.4)
polyglot (0.3.1)
rack (1.4.0, 1.2.1)
rack-mount (0.6.13)
rack-protection (1.2.0)
rack-test (0.5.6)
rails (3.0.3)
railties (3.0.3)
rake (0.8.7)
rdoc (2.5.8)
rspec (2.8.0)
rspec-core (2.8.0)
rspec-expectations (2.8.0)
rspec-mocks (2.8.0)
rubygems-update (1.8.15)
sinatra (1.3.2)
sqlite3 (1.3.5 x86-mingw32)
sqlite3-ruby (1.3.3, 1.3.2 x86-mingw32)
sys-uname (0.9.0 x86-mingw32)
thor (0.14.6)
tilt (1.3.3)
treetop (1.4.9)
trollop (1.16.2)
tzinfo (0.3.23)
yard (0.7.4)
It seems the RubyInstaller Development Kit is missing:
http://rubyinstaller.org/add-ons/devkit/
The devkit installs a C-compiler (and some other stuff like make) to compile C-written parts.
Install it and try again to install the gem - perhaps with option --platform=ruby.
Details can be found at https://github.com/oneclick/rubyinstaller/wiki/Development-Kit
My ror app runs on rails 2.3.5(which requires rack 1.0.1),
thin on heroku activates rack 1.1.0 by default
and throws error:
" You have already activated rack 1.1.0, but your Gemfile requires rack 1.0.1. Consider using bundle exec."
my Gemfile:
source 'http://rubygems.org'
group :test, :development do
gem "rack","1.0.1"
end
gem "rails","2.3.5"
gem "mysql"
gem "rake", "0.8.3"
gem "declarative_authorization", "0.5.2"
gem "searchlogic"
gem "prawn", "0.6.3"
gem "thin","1.2.11"
group :test, :development do
gem "rack","1.0.1"
end
group :development do
# bundler requires these gems in development
# gem "rails-footnotes"
end
group :test do
# bundler requires these gems while running tests
# gem "rspec"
# gem "faker"
end
----------------------
I installed bundler and developed Gemfile.lock :
GEM
remote: http://rubygems.org/
specs:
actionmailer (2.3.5)
actionpack (= 2.3.5)
actionpack (2.3.5)
activesupport (= 2.3.5)
rack (~> 1.0.0)
activerecord (2.3.5)
activesupport (= 2.3.5)
activeresource (2.3.5)
activesupport (= 2.3.5)
activesupport (2.3.5)
daemons (1.1.4)
declarative_authorization (0.5.2)
eventmachine (0.12.10)
mysql (2.8.1)
prawn (0.6.3)
prawn-core (>= 0.6.3, < 0.7)
prawn-format (>= 0.2.3, < 0.3)
prawn-layout (>= 0.3.2, < 0.4)
prawn-security (>= 0.1.1, < 0.2)
prawn-core (0.6.3)
prawn-format (0.2.3)
prawn-core
prawn-layout (0.3.2)
prawn-security (0.1.1)
rack (1.0.1)
rails (2.3.5)
actionmailer (= 2.3.5)
actionpack (= 2.3.5)
activerecord (= 2.3.5)
activeresource (= 2.3.5)
activesupport (= 2.3.5)
rake (>= 0.8.3)
rake (0.8.3)
searchlogic (2.4.28)
activerecord (>= 2.0.0)
thin (1.2.11)
daemons (>= 1.0.9)
eventmachine (>= 0.12.6)
rack (>= 1.0.0)
PLATFORMS
ruby
DEPENDENCIES
declarative_authorization (= 0.5.2)
mysql
prawn (= 0.6.3)
rack (= 1.0.1)
rails (= 2.3.5)
rake (= 0.8.3)
searchlogic
thin (= 1.2.11)
---------------------------
Please help me deploy it on heroku........
Solved it...
my app uses rack 1.0.1 , rails 2.3.5
and heroku activates rake 1.1.0 by default..
so i switched my rails app version to 2.3.11 which uses rack 1.1.2 in environment.rb and created a Gem file,
installed bundler
tested on my laptop...
generated lock file and pushed it to heroku...
finally worked....
took a week to get my app working...
:)
I'm having a real hard time getting my environment ready with rspec and spork.
I am working on an application both on windows and linux environment (linux:home, windows:work)
I had a project configured using rspec and spork at home, when trying to replicate the gems needed for this project to run, I get the following error when trying to install spork.
gem install spork
Temporarily enhancing PATH to include DevKit...
Building native extensions. This could take a while...
ERROR: Error installing spork:
ERROR: Failed to build gem native extension.
C:/RailsInstaller/Ruby1.8.7/bin/ruby.exe mkrf_conf.rb
Actually, there aren't any native extensions. I'm just dynamically installing de
pendencies based off of your operating system
installing windows dependencies
Failed to install necessary dependency gem win32-process: Could not find a valid
gem 'win32-process' (~> 0.6.1) locally or in a repository
Gem files will remain installed in C:/RailsInstaller/Ruby1.8.7/lib/ruby/gems/1.8
/gems/spork-0.8.4 for inspection.
Results logged to C:/RailsInstaller/Ruby1.8.7/lib/ruby/gems/1.8/gems/spork-0.8.4
/ext/gem_make.out
I am really frustrated since I have already installed win32-process in the correct version. If I run
gem list
abstract (1.0.0)
actionmailer (3.0.5, 3.0.4)
actionpack (3.0.5, 3.0.4, 3.0.0)
activemodel (3.0.5, 3.0.4, 3.0.0)
activerecord (3.0.5, 3.0.4)
activeresource (3.0.5, 3.0.4)
activesupport (3.0.5, 3.0.4, 3.0.0)
arel (2.0.9, 2.0.8)
autotest (4.4.6)
autotest-growl (0.2.9)
autotest-rails-pure (4.1.2)
builder (2.1.2)
bundler (1.0.10)
diff-lcs (1.1.2)
erubis (2.6.6)
hoe (2.9.1)
i18n (0.5.0, 0.4.1)
json (1.5.1 x86-mingw32)
json_pure (1.5.1)
mail (2.2.15)
mime-types (1.16)
minitest (2.0.2)
nokogiri (1.4.4.1 x86-mingw32, 1.4.4
open4 (1.0.1)
pg (0.10.1)
Platform (0.4.0)
polyglot (0.3.1)
POpen4 (0.1.4)
racc (1.4.6)
rack (1.2.2, 1.2.1)
rack-mount (0.6.13)
rack-test (0.5.7, 0.5.4)
rails (3.0.5, 3.0.4)
railties (3.0.5, 3.0.4, 3.0.0)
rake (0.8.7)
rake-compiler (0.7.6)
rb-readline (0.4.0)
rexical (1.0.5)
rspec (2.5.0)
rspec-core (2.5.1)
rspec-expectations (2.5.0)
rspec-mocks (2.5.0)
rspec-rails (2.5.0)
rubyforge (2.0.4)
rubygems-update (1.6.2)
rubyzip2 (2.0.1)
sqlite3 (1.3.3 x86-mingw32)
sqlite3-ruby (1.3.3)
sys-proctable (0.9.0 x86-mswin32-60)
test-unit (2.2.0)
thor (0.14.6, 0.14.4, 0.14.0)
treetop (1.4.9)
tzinfo (0.3.25, 0.3.24, 0.3.23)
win32-api (1.4.8)
win32-open3 (0.3.2 x86-mingw32)
win32-process (0.6.1)
windows-api (0.4.0)
windows-pr (1.1.3)
ZenTest (4.5.0)
any ideas?
thanks in advance
I fixed the problem using milhouse-spork instead of spork itself
this version is, as said on the wiki page, for enabling windows machines to use spork
https://github.com/Milhouse/spork/wiki