rubyのDBを使ったプログラムが実行できない

このQ&Aのポイント
  • rubyのsqlite3とdbiを用いたプログラムを実行したいのですが、エラーが出て実行できません。
  • 環境構築は正しく行い、splite3単体で.dbファイルを作成することはできています。
  • 学校の環境では正常に動作しているため、環境構築の方法に問題がある可能性があります。アドバイスや環境構築の方法を教えていただけると助かります。
回答を見る
  • ベストアンサー

rubyのDBを使ったプログラムが実行できない

rubyのsqlite3とdbiを用いたプログラムを実行したいのですが、画像のようなエラーが出て実行できなくて困っています。 環境構築は以下の手順で行いました。 gem install sqlite3 gem install sqlite3-ruby gem install dbi gem install dbd-sqlite3 splite3単体で.dbファイルを作れることは確認済みです。 プログラム自体は学校の環境構築済みの環境で動きました。 おそらく、環境構築の仕方が間違っていると思います。 アドバイスや環境構築の仕方など教えていただけると大変幸いです。 よろしくお願いいたします。

  • Ruby
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

参考URLが事象的に近いかもですね

参考URL:
http://d.hatena.ne.jp/economixmeister/20091025/1256481211

関連するQ&A

  • Rubyでパケットの情報をDBに入れるプログラムを動かしております。

    Rubyでパケットの情報をDBに入れるプログラムを動かしております。 以下のサイトにあるプログラムを実行しました。 http://www.db.is.kyushu-u.ac.jp/rinkou/libpcap/rubypacketdb.html エラーメッセージで、以下のように出力されました。 $ sudo ruby packet.rb drop table tcppackets... define table tcppackets... /var/lib/gems/1.8/gems/sqlite3-ruby-1.3.1/lib/sqlite3/database.rb:85:in `initialize': table tcppackets already exists (SQLite3::SQLException) from /var/lib/gems/1.8/gems/sqlite3-ruby-1.3.1/lib/sqlite3/database.rb:85:in `new' from /var/lib/gems/1.8/gems/sqlite3-ruby-1.3.1/lib/sqlite3/database.rb:85:in `prepare' from /var/lib/gems/1.8/gems/sqlite3-ruby-1.3.1/lib/sqlite3/database.rb:220:in `execute_batch' from packet.rb:51 どうしたら良いか教えて頂けないでしょうか。

  • CentOS5でruby1.8とrails2、SQlite3のインスト

    CentOS5でruby1.8とrails2、SQlite3のインストール。 環境がCentOS5.5、ruby1.8.7-p302、SQlite3系で下記のサイトにあるようなRubyプログラミングを考えている者です。 http://www.db.is.kyushu-u.ac.jp/rinkou/libpcap/rubypacketdb.html 今回は、http://www.gfd-dennou.org/arch/davis/gfdnavi/doc/install/install-ru... を参考にしながら環境を作っていましたが、rubygem1.3.7でsetupを行うと、勝手にrailsの最新版をインストールされてしまいます。(なぜか強制的に3.0.0へ) どの段階でどうコマンドを打てば、railsの古いバージョン(例えば2.3.5)をインストール出来るのでしょうか? また、http://www.db.is.kyushu-u.ac.jp/rinkou/ruby/rubyinstalllinux.html を参考にしてSQlite3をgemでインストールしようとしたところ、「ruby1.9.1にヴァージョンをあげて」を怒られました。 ググってみたら、ruby1.8.7でもsqlite3は導入できるそうなので納得いきません。 なにか解決法はないでしょうか? 長くなりすいませんでした。どうかお願い致します。

  • PerlからDBの接続

    やまとです。こんにちは。 PerlからDBに接続しているのですが、うまく出来ません。 環境は OS : Windows2000、Perl : ActivePerl628、DB : Sybase11.0.3 DBI : DBI1.18、DBD : DBD_Sybase です。 DBDとDBIインストール後、DBに接続するとエラーが起こります。 エラーが起こる場所は(ソース抜粋記載) use DBI; (←ここは平気) $dbh=DBI->connect($database, $db_user, $db_password) or return 0;      (↑ここがエラー) 以上の箇所です。 もちろん、$database, $db_user, $db_passwordそれぞれの変数には 正しい値が入っています。 次にerror.logの内容ですが、 1つ目は、 Premature end of script headers: C:\・・・・・・・(←実行ファイル名) 2つ目は、 install_driver(Sybase) failed: DBD::Sybase initialize: cs_ctx_alloc() failed at C:/Perl/lib/DynaLoader.pm line 225. 3つ目は at ./test.cgi line 43 (←connectの場所) となっております。 色々調べてみましたが、分かりませんでした。 use DBI; は正常に動作していますので、DBDとDBIのインストールは正常に 出来ていると思うのですが・・・ 同じ経験、又は、このエラーに関して分かる方いらっしゃいましたら、 対処法、ご教授願いたいのですが。 宜しくお願いします。 #環境の情報など不足している部分がありましたら補足させて頂きます。

    • ベストアンサー
    • Perl
  • rubyでプログラムを作っていますがうまくいきません。

    rubyでプログラムを作っています。 予想通りの動きができないです。 常駐ソフトを起動したり終了したりするプログラムをrubyで作りたいと思っています。 バッチファイルで作れば問題ないのですが、今回のプログラムを他で作っているrubyのプログラムに使いたいからrubyで作りたいんです。 そこでとりあえずrubyでソフトを起動したり終了したりする小さいプログラムを作って試しています。 ですが全然ひらめかないのでぜひご教授をお願いします。 利用環境 Windows XP Home Edition Cygwinをインストールしrubyを実行しています。

  • さくらインターネットにsqlite3-ruby

    さくらインターネットのレンタルサーバーにruby on rails環境を構築しようとあれこれ試しています。 (参考URL http://nyon2.net/archives/2009/01/ruby-on-railsruby-on-rails.html ) sqlite3-rubyのインストールで躓きました。gemのインストールが失敗します。 実行結果はこんな感じ %gem18 install sqlite3-ruby Building native extensions. This could take a while... ERROR: Error installing sqlite3-ruby: ERROR: Failed to build gem native extension. /usr/local/bin/ruby18 extconf.rb checking for fdatasync() in -lrt... no checking for sqlite3.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. 似たようなことを試している方は意外と多く、ブログなどに対処方法が記録されていますがやや時間がたってバージョンが変わっているためか、症状が一致しているものは見つけられませんでした。 同じような状況にはまって、解決済みの方いらっしゃいましたら回答をお願いします。

  • perlでDBアクセスする際にapache設定

    本日、DBI->CONNECTで返ってこないと質問をしたものです。 色々と調べているうちに、もしかしたらDBアクセスはおわり、その後のCGIが表示できなくなっているかもしれないと思うようになりました。 ORCLE9iがあるあとで、PERL,Apacheをインストールしました。 DBアクセスをしない状況ですと、CGIのプログラムは何の問題も無く、動きます。 ただ、DBアクセスしようとするとエラーもでない状況で、画面に何も出ません。 ApacheのORACLEに関する環境設定が必要なのでしょうか? 環境は、Windows XP      Active Perl 5.8.7.813        DBI 1.602 ,DBD-Oracle 1.17      Apache 2.0.54 どなたか、わかる方いらっしゃいますでしょうか? この件で2日悩んでおります。 宜しくお願いします。

    • ベストアンサー
    • Perl
  • Ruby vim 実行の仕方

    Rubyをvimで書いたので、実行しようとしたのですが、実行できないです。何がダメなのでしょうか? 手順としては、 vimで puts("Hello World!")と書きました。 w hello_ruby.rbと書いて保存しました。 コマンドプロンプトを開いて、hello_ruby.rbと入れて、Enterを押したのですが、 ’hello_ruby.rb’は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチ ファイルとして認識されていません。 と出ます。 コマンドプロンプトで、ruby -v と入れると、Rubyのバージョンは出てきます。 何がいけないのでしょうか?修正の仕方を教えてください。 詳しい方いらっしゃいましたら、よろしくお願い致します。

    • ベストアンサー
    • Ruby
  • ruby1.9からtwitterライブラリをインストールするとエラーに

    ruby1.9からtwitterライブラリをインストールするとエラーになってしまいます。 環境はWinxpです。 H:\Program Files\Ruby-1.9.1\bin>gem install twitter と、すると、以下のエラーメッセージが・・・。 Building native extensions. This could take a while... ERROR: Error installing twitter: ERROR: Failed to build gem native extension. "H:/Program Files/Ruby-1.9.1/bin/ruby.exe" extconf.rb install twitter creating Makefile nmake 'nmake' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。 Gem files will remain installed in H:/Program Files/Ruby-1.9.1/lib/ruby/gems/1.9 .1/gems/yajl-ruby-0.7.5 for inspection. Results logged to H:/Program Files/Ruby-1.9.1/lib/ruby/gems/1.9.1/gems/yajl-ruby -0.7.5/ext/gem_make.out ------------------- ちなみに、 H:\Program Files\Ruby-1.9.1\bin>gem install twitter4r とすると、インストールは出来ます。 ただ、requireでtwitterを読み込もうとすると 「msvcrt-ruby18.dllがありません」 と言うエラーになってしまいます。 助けていただければ幸いです。

    • ベストアンサー
    • Ruby
  • Ruby on rails sqlite3のドライバ?のインストールが

    Ruby on rails sqlite3のドライバ?のインストールがうまくいかない。 「rubyinstaller-1.8.6-p398.exe」をインストールして、gemのアップデート、「sqlite-3_6_23_1.zip」「sqlitedll-3_6_23_1.zip」をインストール?して、gemでsqlite3のドライバをインストールをすると以下のような文章がでてうまくいきません。(xp sp3) You've installed the binary version of sqlite3-ruby. It was built using SQLite3 version 3.6.23.1. It's recommended to use the exact same version to avoid potential issues. At the time of building this gem, the necessary DLL files where available in the following download: ttp://www.sqlite.org/sqlitedll-3_6_23_1.zip You can put the sqlite3.dll available in this package in your Ruby bin directory, for example C:\Ruby\bin ============================================================================= Successfully installed sqlite3-ruby-1.3.1-x86-mingw32 1 gem installed Installing ri documentation for sqlite3-ruby-1.3.1-x86-mingw32... Enclosing class/module 'mSqlite3' for class Statement not known No definition for libversion Installing RDoc documentation for sqlite3-ruby-1.3.1-x86-mingw32... Enclosing class/module 'mSqlite3' for class Statement not known No definition for libversion ドライバのバージョンを下げたりしてみてもうまくいきません。 rubyは勉強している書籍にあわせて1.8.6を使っています。 何が問題なのでしょうか?

    • ベストアンサー
    • Ruby
  • We're sorry, but something went wrong

    初めまして。 Ruby on railsについて質問させていただきます。 http://localhost:3000/membersにアクセスすると「We're sorry, but something went wrong.」と表示されてしまいます。 logファイルでは、 「Status: 500 Internal Server Error could not open database: unable to open database file  C:/ruby/lib/ruby/gems/1.8/gems/sqlite3-ruby-1.2.5-x86-mswin32/lib/sqlite3/errors.rb:62:in `check'  … 」と出ており、dbファイルがopenできない状況にあります。 どのようにしたらこれを解決することができるでしょうか? 以下は手順と情報です。 『手順』 1.[rails groupware2]にてRailsアプリケーションを作成 2.SQLite3にてテーブル名“members”を作成し、dbフォルダに入れる。 3.database.ymlでそのdbファイルのパスを入力して変更 4.[ruby script/generate scaffold member name:string acc:string]にて一連のファイルを作成 『情報』 OS :WindowsXP Rails :2.3.5 Ruby :1.8.6 gem :1.3.5 SQLite:3.6.21 思いつく範囲では、 1.DBドライバのインストール時([gem install sqlite3-ruby])に「No definition …」がいっぱい出る。 2.DBファイルまたはそれが格納されているフォルダにアクセス権限が与えられていないかもしれない(ちゃんと許可されてました) が原因のような気がしますがネットで調べると、どうやらそうではなさそうです。ちなみに他のPCで一からインストールし直しても同様のエラーが起きました。海外のページにも目を通しましたが良い解決案が出てないようなのでどなたかご存知でしたら教えてください。

    • ベストアンサー
    • Ruby

専門家に質問してみよう