installing sqlite3 for ruby - ruby

I've installed the latest version of ruby and mysql but still when i try and run something through aptana with 'requires 'rubygems' and 'requires 'sqlite3' i get the following appear in the console:
/home/carladessi/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in`require': cannot load such file -- sqlite3 (LoadError)
from /home/carladessi/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'from /home/carladessi/Documents/Aptana Studio 3 Workspace/Test/rubydb.rb:2:in `<main>'

The error you posted is for sqlite3 and not MySQL. I've not used Apatana Studio bit it looks as if it, or your program is requesting sqlite3, not MySQL. Check your Gemfile, if you have one, for sqlite3. Also check Apatana Studio requirements to see if it requires sqlite3.
Updated to reflect change in question:
It looks as though you're using RVM. Try the following from the terminal.
1.If you are using a Gemfile and bundler then on the terminal ensure you're executing your application with bundle exec. For instance:
bundle exec myapp.rb
Make sure that you are using the same gemset to which you installed sqlite3 with gem install sqlite.

Related

Rubymine debugging

I have Installed
2017.1.5 Version of Ruby
ruby-2.4.1-p111
I've made a new project and named it hello.rb. When I run it, everything works fine. However when I try to debug the project I get a prompt message
The gem debase required by the debugger is not currently installed. Would you like to install?
Error running hello. Following gems were not installed:
I've tried re-installing everything and restarting and I don't know what is the problem.
Well apparently debugger in RubyMine does require this gem. So You have multiple ways of doing this.
Assuming your File > Settings > Languages & Frameworks > Ruby SDK and Gems
contains only one ruby version and its the selected one (and the gem really isn't in the list). As halfelf said in your terminal/cmd/iterm you would simply write
gem install debase
Also you could create file called Gemfile that would have all the gems in
source 'http://rubygems.org'
gem 'debase'
and in the future any other gems you would need, Rubymine should be able to install those for you.
If you would have already installed the gem, there might be a gem installation conflict that would need to be resolved.

"rubygem mysql error: gem is not loaded" after CentOS upgrade

I am upgrading a system from EL 6 to EL 7. We have an application that uses ruby to setup a MySQL database. I know very, very little about ruby and gems, so I'm struggling getting this going. Under EL 6, the setup process works properly. Under CentOS 7, I get the following error when processing the rakefile:
Specified 'mysql' for database adapter, but the gem is not loaded. Add
gem 'mysql' to your Gemfile
Under 6, I don't see any MySQL gem files installed using gem list, but the setup process works fine and generates our database properly.
Under 7, I can manually run: gem install mysql --with-mysql-config=/usr/lib64/mysql/mysql_config.
Then, the setup script works.
I am installing most of the required gems/ruby applications via rpm.
I have:
ruby-2.0.0.648-29.el7.x86_64
rubygem-rake-0.9.6-29.el7.noarch
rubygem-activesupport-4.2.5.2-2.fc24.noarch
rubygems-2.0.14.1-29.el7.noarch
rubygem-activemodel-4.2.5.2-1.fc24.noarch
rubygem-activerecord-4.2.5.2-1.fc24.noarch
ruby-mysql-2.8.2-1.el7.x86_64
ruby-mysql creates /usr/local/lib64/ruby/site_ruby/mysql.so.
Is the mysql.so library what provides the MySQL adapter or is there something else that effectively provides the mysql gem? It's confusing that I don't have to do anything in EL 6 but have to install it specifically in EL 7.
Is this a pathing issue or a major change in source? I'm obviously pulling in the activesupport and activerecord rpms from Fedora, so I suppose there could be a conflict there, but it's very hard to tell.
My database.yml file looks like this:
adapter: mysql
encoding: utf8
database: mydatabase
username: root
password:
host: 127.0.0.1
port: 3306
Try use the mysql2 gem instead:
In your Gemfile:
gem 'mysql2'
and database.yml:
adapter: mysql2
Hope that would help.
So I'm not sure why there was never a gemfile in the original script. As mentioned in my OP, a basic solution was to run gem install mysql, but that was weird because previously it wasn't necessary.
What I think was happening:
Under EL6, the ruby-mysql rpm was putting the mysql.so in the proper location and basically issuing a gem install command. The EL7 version I have was not calling the proper setup macros in the rpm.
What I did to fix this:
i used gem2rpm (such a great rpm/package) to generate the rubygem-mysql spec file.
https://github.com/fedora-ruby/gem2rpm
gem2rpm --fetch mysql (to get the gem)
gem2rpm -T > rubygem-mysql.spec.template
gem2rpm -t rubygem-.spec.template mysql-2.9.1.gem > rubygem-mysql.spec
You have to modify the spec file a bit after it's generated, then use that to spec template to properly build the spec file for your needs.
Then just use rpmbuild to actually make the rpm/srpm.
gem list now shows mysql in there and the setup script works.

Make ruby script use local gems, instead of common

I'm deploying my rails project to production server. There is only 1.9.3 version of ruby (I developed on 2.1.2) so there is few compatibility problems in gems versions. More over, I downloaded one of gems to vendor/gem_name and made necessary fixes in its sources, so I need to use exactly my version of that gem and, as you understand, It's not possible to update it.
in Gemfile
require 'gem_name', :path => 'vendor/gem_name'
So after cloning project to server I run
bundle install --path vendor/bundle
and it created bundle directory in vendor folder with gems versions, needed to me, inside it.
After that I tried to run fetching script to fill db with some data by command
ruby *_fetch.rb
inside *_fetch.rb:
require 'gem_name'
And it fails with error
You have already activated gem_name older_version, but your Gemfile requires
gem_name newest_version. Using bundle exec may solve this. (Gem::LoadError)
from /usr/local/rvm/gems/ruby-1.9.3-p374/gems/bundler-1.3.5/lib/bundler/runtime.rb:19:in `setup'
So how could I specify script to require my edited local gem?
Run it with bundle exec That's exactly what bundle exec is for.

Trouble with sqlite3 ruby 2.0 on Windows

I'm a newbie to programming, with ruby/rails successfully installed on my (mac) home computer. I'm trying to get ruby 2.0.0p195 (and Rails) set up on Windows at work (Windows 7, 32bit) and I'm failing on the sqlite3 installation. I've been through most of the solutions/suggestions I can find on the web, but just can't get it to work - the frustrating thing is that it tells me it's installed, but it doesn't work:
- I've tried the knapsack installation http://www.ruby-forum.com/topic/4413168
- If I try to install --with-opt-dir=c:/sqlite3 (or any of the many variations suggested) it gives a native extension error.
- I've put the .dll file in Ruby/bin, which is also in my PATH
- I have the devkit installed
The 'gem install sqlite3' command is successful, and if I do 'gem list', sqlite3 v1.3.7 x86-mingw32 appears in the list, but if I 'require sqlite3' in IRB I get:
LoadError: cannot load such file -- sqlite3/sqlite3_native
And the mkmf log says:
find_header: checking for sqlite3.h... -------------------- no
But I've confirmed the sqlite3.h file (and the sqlite3.c, sqlite3.o, and sqlite3.h files) is in my c:\sqlite3 directory, and as noted above, I've also tried installing '--with-opt-dir'.
So next I trace the error when I 'require' sqlite to a file '\kernel_require.rb' in ruby/lib, and it references to this:
if Gem::Specification.unresolved_deps.empty? then
return gem_original_require(path)
end
I'm lost, and WAY out of my depth. At this point my only solution would be either to completely uninstall and start again, or to downgrade to ruby 1.9.x, but others seem to have sqlite3 and ruby 2.0 working so it's obviously (?) semi-stable. Help?
UPDATE: I've now tried downgrading to ruby 1.9.3, and apart from pik reverting to the most recent version of ruby every time I shut the command line, I can actually get the server to run etc. So it seems this issue is related specifically to ruby 2.0.
I am encountering the same issue, except that I don't really think that it is related to Ruby 2, but to rails 4 instead.
I have managed to install the sqlite3 gem by downloading the source, dll and exec (dll and executables need to be added to PATH accessible) and installying the gem with the follwing process:
Download:
http://www.sqlite.org/2013/sqlite-amalgamation-3071700.zip
http://www.sqlite.org/2013/sqlite-dll-win32-x86-3071700.zip
Extract and put the files in a location on your C drive or wherever you want. Then copy sqlite.dll and sqlite.def to the Ruby/bin directory.
Then you go to the DevKit directory and run msys.bat, in which you issue the following command:
gem install sqlite3 --platform=ruby -- --with-sqlite3-dir=path-to-sqlite --with-sqlite3-include=path-to-sqlite
This allowed me to install the gem successfully (using Ruby-2.0.0-p247 x86 and devkit). I validated through irb doing:
require 'sqlite3'
SQLite3::SQLITE_VERSION
I'm still trying to figure out this issue.
I get the same error message when I try to start the server or whenever I try to run the rails console.
I'd love to get this issue fixed...

Why I can't install postgresql with rails 4.0.0.rc1 (ruby 2.0)

first time on forum so i will try to be as specific as one can be, sorry for any possible typos ok?
I am relatively new to rails (less than a year), and i want to make a default project to work with it. I have always used sqlite3 in development and pg in production (heroku), but now i want to make things right (i've encountered problems with sqlite3 running ok but pg not) and use both pg in production and devlop.
I have spent 2 days searching foruns and all the anwsers are old or other versions/other OS.
I'll try to list the steps i took for setting up my stage:
Here my configs:
-OS: Windows 7 64x
-Editor: Aptana Studio
-PostGresql
-Rails 4.0.0.rc1
-Ruby 2.0
Download and Install postgresql-9.2.4-1-windows-x64
Set a default Password to postgresql
Create an Role "my_user" in postgresql with all privilegies
Create an testing database "rails_test"
Open Aptana Studio and init an new default project going to the project folder and than running "rails new . -d postgresql" for generate the new project.
Install the pg gem "gem install pg" "gem list" shows the pg gem correctly
configure "database.yml" for using the correct username and password
development:
adapter: postgresql
encoding: unicode
database: rails_test
pool: 5
username: my_user
password: 12345
Running some commands in ruby like "gem update", "bundle install"
then when i try to generate an model and use rake db:migrate i get the following error:
Specified 'postgresql' for database adapter, but the gem is not loaded. Add `gem 'pg'` to your Gemfile.
and it's true if i run "bundle show pg" i get the message:
Could not find gem 'pg'. Did you mean pg?
If i open my gemfile the pg gem is there, but the bundler is not getting it !
Any ideias to help this little amateur?
TNX !
(Windows 7 x64, Ruby2.0.0p247-x64, Rails4.0.0, Postgresql 9.2.4 x64, pg 0.15.1, mysql2 0.3.11)
There seems to be a platform detection/verification problem with bundler. While what I did is a hack of the Gemfile.lock file (I know, I know...), I have a (hopefully) temporary solution:
Edit Gemfile.lock, and
Find the line for 'pg':
multi_json (1.7.7)
pg (0.15.1-x86-mingw32)
polyglot (0.3.3)
Copy the line, and modify the new copy to :
multi_json (1.7.7)
pg (0.15.1-x64-mingw32)
pg (0.15.1-x86-mingw32)
polyglot (0.3.3)
This is how the x64 version of the installed gem announces itself when you ask to list it (gem list pg).
For anyone who cares, the exact same problem was (sometimes) encountered with the mysql2 gem.
I had this problem and solved it by using the 32bit version of ruby rather than the 64bit. You need to make sure the devkit matches up to your version as well. So if you have the 64 bit version of that installed then that will need to be changed too.

Resources