I am getting the below error while using the MySQL gem; Tried mysql2 and it also gives the same error.
-bash-4.1$ gem list
*** LOCAL GEMS ***
mysql (2.9.1)
-bash-4.1$ ruby -v
ruby 1.8.7 (2013-06-27 patchlevel 374) [x86_64-linux]
-bash-4.1$ irb
irb(main):001:0> require 'mysql'
NameError: uninitialized constant Mysql
from ./mysql.rb:10
from (irb):1:in `require'
from (irb):1
from :0
irb(main):002:0>
Please let me know if there is a solution for this; thanks!
Are you using bundler/rvm? If so, start irb with:
bundle exec irb
make sure you are in the right gemset and ruby version from where you are accessing the gem.
Before typing in the irb, check what gemset you are in:
rvm gemset list
then check the gems installed in that particular gemset
rvm <my-gemset-name> do gem list
If they do not match, that is your problem and you can fix it by changing to the right gemset:
rvm use <my-gemset>
Similarly, check for ruby version, i.e if the ruby version for your installed gem and from where you are running your irb match
Related
Here is my file, test.rb:
require 'rubygems'
require 'pry'
There is no problem running it with ruby:
$ ruby test.rb
However, there is an error with rspec:
$ rspec test.rb
/path/to/test.rb:2:in `require': no such file to load -- pry (LoadError)
Versions:
$ ruby -v
ruby 1.8.7 (2013-06-27 patchlevel 374) [i686-darwin12.5.0]
$ rspec -v
3.0.4
$ gem -v
2.0.14
$ gem list pry
*** LOCAL GEMS ***
pry (0.9.12.6)
Found the issue.
rspec was installed using bundle install.
pry was installed using gem install.
I went back and installed pry using bundle install and now rspec runs without error.
I cannot however explain why exactly the failure occurs. Anyone?
Bundler is probably storing/looking for gems in a different location than gem install. Unless you have a extremely good reason to, it's better to always use bundler and the Gemfile.
Oh, I also strongly recommend you to install a newer version of Ruby. That should be pretty simple using RVM.
I have install rbev
rbenv version
2.0.0-p247 (set by /Users/amritdeepdhungana/.rbenv/version)
, ruby
ruby -v
ruby 2.0.0p247 (2013-06-27 revision 41674) [universal.x86_64-darwin13]\
and rails
rails -v
Rails 4.0.1
I have create new project and bundle it. But I get this problem
Installing rake (10.1.1)
Errno::EACCES: Permission denied - /Library/Ruby/Gems/2.0.0/build_info/rake-10.1.1.info
An error occurred while installing rake (10.1.1), and Bundler cannot continue.
Make sure that `gem install rake -v '10.1.1'` succeeds before bundling.
After that, I have install rake gem but again I got error
gem install rake -v '10.1.1'
ERROR: Could not find a valid gem 'rake' (= 10.1.1), here is why:
Unable to download data from https://rubygems.org/ - too many connection resets (https://s3.amazonaws.com/production.s3.rubygems.org/specs.4.8.gz)
ERROR: Possible alternatives: rake
How can I set the permission while install any gem package ?
Like #bjhaid said, you're trying to install these gems into your system Ruby.
/Library/Ruby/Gems/2.0.0/build_info/rake-10.1.1.info
Ruby 2.0.0p247 is bundled w/Mavericks. Specifically:
$ /usr/bin/ruby --version
ruby 2.0.0p247 (2013-06-27 revision 41674) [universal.x86_64-darwin13]
My self-built (rvm) version is has a slightly different version string:
$ ruby --version
ruby 2.0.0p247 (2013-06-27 revision 41674) [x86_64-darwin12.3.0]
To find out which ruby is actually being used, try which ruby. Make sure you've properly installed rbenv, and installed a new local Ruby.
It almost looks like you haven't set your PATH up correctly, but your answer to Nick Veys' question doesn't look like it. I would surmise that you haven't installed any ruby under rbenv yet. What does rbenv versions look like?
I'm trying to use a Ruby gem called ice_cube in IRB, but it doesn't work:
[~]$ rvm gemset create ice
'ice' gemset created (/home/joe/.rvm/gems/ruby-1.9.2-p320#ice).
[~]$ rvm gemset use ice
Using ruby-1.9.2-p320 with gemset ice
[~]$ gem install ice_cube
Fetching: ice_cube-0.8.0.gem (100%)
Successfully installed ice_cube-0.8.0
1 gem installed
Installing ri documentation for ice_cube-0.8.0...
Installing RDoc documentation for ice_cube-0.8.0...
[~]$ irb --simple-prompt
>> require 'ice_cube'
=> true
>> schedule = Schedule.new(Time.now)
NameError: uninitialized constant Object::Schedule
from (irb):2
from /home/joe/.rvm/rubies/ruby-1.9.2-p320/bin/irb:16:in `<main>'
What am I doing wrong? (I'm a beginner Ruby programmer.)
It should be:
schedule = IceCube::Schedule.new(Time.now)
include IceCube
schedule = Schedule.new(Time.now)
Or you can first include the module into global namespace, then you can use whatever it is in that module.
Had similar issue, Try Restarting your Rails Application.
I don't get why my script can't find the gem that I just installed. Here is the code of main.rb
require 'exifr'
At this point I get
LoadError: no such file to load — exifr
error message
Here is the output of
gem environment
GEM PATHS:
- /Users/me/.rvm/gems/ruby-1.9.3-p194
When I do
ls /Users/me/.rvm/gems/ruby-1.9.3-p194/gems/exifr-1.1.3/bin/exifr
I get
/Users/me/.rvm/gems/ruby-1.9.3-p194/gems/exifr-1.1.3/bin/exifr
So the gem is in that location.
I'm running Mac OS Lion.
What I do wrong ?
//EDIT
gem list exifr
*** LOCAL GEMS ***
exifr (1.1.3)
1.9.3-p194 :001 > require 'exifr'
=> true
when running ruby 1.9 you do not have to require rubygems anymore, so this should not be an issue.
looking at the bin directory is not of any use, cause the gems usually live in lib.
if you do a gem list exifr your installed gem should print out like
*** LOCAL GEMS ***
exifr (1.1.3)
the next step would be to try it out via the ruby REPL
$ irb
1.9.3p125 :001 > require "exifr"
=> true
1.9.3p125 :002 > exit
this indicates that everything is installed fine.
I have just installed rvm today and it looks really handy/powerful.
I think I am getting the hang of it, but...
When using an rvm installed ruby, and running irb, when I require an installed gem, something, like 'rvm', I get:
> kimptoc$ rvm use 1.8.7
Using /Users/kimptoc/.rvm/gems/ruby-1.8.7-p302
> kimptoc$ gem list
*** LOCAL GEMS ***
abstract (1.0.0)
...
rvm (1.0.11)
...
> kimptoc$ irb
ruby-1.8.7-p302 > require 'rvm'
LoadError: no such file to load -- rvm
from (irb):1:in `require'
from (irb):1
But when using the "system" ruby, it works fine.
Historically I have been using sudo gem install ... and so the "system" gems are generally installed that way. Could that be my problem? Do I need to uninstall these to fix things?
I am running OSX 10.6.4. "system" is the default OSX ruby, 1.8.7 (p174)
Try require 'rubygems' first.
> rvm use 1.8.7
> rvm info
(Find the homes -> gem directory)
> ls -al ~/.rvm/gems/ruby-1.8.7 (Substitute your gem directory as needed)
Is your gem in this directory?
Generally speaking, using sudo gem install with rvm is a bad idea.
As of Ruby 1.9.3 you no longer need, can, require rubygems and you only need to require rvm.
If you want to use it in your .irbrc file for using wirble or awsome print you can use a simple trick to avoid a login error saying it can't include or 'rubygems' or 'rvm'
if RUBY_VERSION > "1.8.7"
require 'rvm'
else
require 'rubygems'
end
require 'wirble'
Wirble.init
Wirble.colorize
Including both rubygems and rvm does not seem logical because RVM replaces rubygems in some sort to handle the gems and gem repositories.
Note: For Ruby 1.8 you must require 'rubygems' before requiring any gems.
source : https://guides.rubygems.org/rubygems-basics/