質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

Q&A

解決済

1回答

2291閲覧

Ubuntu環境でrubyの capybara を使えるようにしたい【環境設定のやり方】@Rubyによるクローラー開発技法から質問

dlrowolleh

総合スコア120

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

0グッド

0クリップ

投稿2016/10/31 13:55

編集2016/11/01 09:07

###前提・実現したいこと

Ubuntu環境でrubyプログラムを作成しています。実行しようとするとエラーが発生しました。
調べていたところ
Capybaraを用意するなどの環境構築ができていないかと考えました。
Ubuntu環境でrubyの Capybara を使えるようにしたいです。

###試したこと・発生している問題・エラーメッセージ

gem install websocket-driver -v 0.6.4

ERROR: While executing gem ... (Gem::FilePermissionError) You don't have write permissions for the /var/lib/gems/2.1.0 directory.

$ ruby hogehoge.rb cannot load such file -- capybara (LoadError)

###該当のソースコード

ここにご自身が実行したソースコードを書いてください

###補足情報(言語/FW/ツール等のバージョンなど)
指摘していただけましたら追記いたします。

Capybaraなどの環境構築のやり方などを調べるのですが、大半がMacまたはWindows向けの設定の仕方の情報です。
Macも一応UNIX系だということで、コマンドをコピペさせていただいてUbutnuのターミナルで実行するのですが、やはりうまくいかず手を焼いております。
brewの部分をapt-getに変えてみる等でもうまくいきません。
また、sudo gem installでやらないといけないのを知らずに
ずっとgem install でやって1時間以上手を焼いていました(汗)

UNIX系での開発環境構築の際の流れ・常識等があれば教えていただけないでしょうか。

現在少し離れたところにおります故、詳しい補足情報を記載できず質問になってしまいました。
説明不足等、至らぬ点満載なので指摘していただけましたら追記いたします。
何卒よろしくお願いいたします。

###追記(11/1)
質問が散らかって大変読みづらくなっておりました。大変失礼しました。

###前提・実現したいこと
前提:
Ubuntu環境でrubyプログラムを作成しています。実行しようとするとエラーが発生しました。

実現したいこと:
0. プログラムを動作させたい
0. エラーが出て動かない原因・直し方を教えて欲しい

です。
よろしくお願いします。

###発生している問題・エラーメッセージ
プログラムが動作しません。

$ ruby login.rb /usr/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require': cannot load such file -- capybara (LoadError) from /usr/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require' from login.rb:2:in `<main>'

##該当のソースコード

ruby

1# -*- coding: utf-8 -*- 2require 'capybara' 3require 'capybara/dsl' 4require 'selenium-webdriver' 5 6Capybara.current_driver = :selenium 7Capybara.app_host = "https://affiliate.amazon.co.jp/" 8Capybara.default_wait_time = 5 9 10module Crawler 11 class Amazon 12 include Capybara::DSL 13 14 def login 15 visit('') 16 fill_in "username", 17 :with => 'YOUR_AMAZON_USER_ID' 18 fill_in "password", 19 :with => 'YOUR_AMAZON_PASSWORD' 20 click_button "$B%5%$%s%$%s(B" 21 end 22 end 23end 24 25crawler = Crawler::Amazon.new 26crawler.login

です。
Capybara?そんなものは知りませんよ。
というエラーだと解釈しました。
そのため、Capybaraを使えるようにすればいいと思って、
$ gem install capybara
とすると

Fetching: rack-2.0.1.gem (100%) ERROR: While executing gem ... (Gem::FilePermissionError) You don't have write permissions for the /var/lib/gems/2.1.0 directory.

出ました。また、
$ sudo gem install capybara
だと

ERROR: Error installing capybara: rack requires Ruby version >= 2.2.2.

となりました。
ここで行き詰まっております。
どのようにすればlogin.rbを実行できるでしょうか?
よろしくお願いします。
###補足情報
環境はUbuntu15.10です。

$ gem list

実行時

*** LOCAL GEMS *** addressable (2.4.0) anemone (0.7.2) bigdecimal (1.2.4) fastri (0.3.1.1) io-console (0.4.3) jar_wrapper (0.1.8) json (1.8.1) mime-types (3.1) mime-types-data (3.2016.0521) mini_portile2 (2.1.0) minitest (4.7.5) nokogiri (1.6.8.1) phantomjs (2.1.1.0) psych (2.0.5) rake (10.1.0) rcodetools (0.8.5.0) rdoc (4.1.0) robotex (1.0.0) selenium (0.2.11) test-unit (2.1.8.0) websocket-driver (0.6.4 java) websocket-extensions (0.1.2) xpath (2.0.0) zip (2.0.2)

また、

$ ruby -v

実行時は

ruby 2.1.8p440 (2015-12-16 revision 53160) [x86_64-linux-gnu]

でした。

##まとめ

  1. プログラムを動作させたい
  2. エラーが出て動かない原因・直し方を教えて欲しい
  3. Capybaraがないの解釈で大丈夫か、そうだとしたらCapybaraの導入のやり方を教えて欲しい

です。

##余談
0. 環境構築のやり方などを調べるが、大半がMacまたはWindows向けの設定の仕方が出てくる。Ubuntu等のリナックスで開発する際の注意点や常識をせっかくなのでこの際知りたい。(sudoをつけないといけないのを知らずに痛い目に遭ったため)
0. CapybaraやPoltergeiset等のライブラリがある等の情報を皆様はどのようにして仕入れているのか?
0. Rubyによるクローラー開発技法 巡回・解析機能の実装と21の運用例のサンプルコードについて質問しているが、大丈夫か?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

ERROR: While executing gem ... (Gem::FilePermissionError) You don't have write permissions for the /var/lib/gems/2.1.0 directory.

を解消したいというのが質問でしょうか???

また、sudo gem installでやらないといけないのを知らずに
ずっとgem install でやって1時間以上手を焼いていました(汗)

でも、と書いてあるので sudo gem install websocket-driver で解決したんだろうと想像して。

UNIX系での開発環境構築の際の流れ・常識等があれば教えていただけないでしょうか。

こちらが質問ですかね?

開発環境構築の流れ・常識 は書こうと思えば1冊の本にできるほどあります。
そして既に多数の本になっておりますので、まずは本を読まれる事をお勧めいたします。

説明不足等、至らぬ点満載なので指摘していただけましたら追記いたします。

  • 何を解決したいのか明確(具体的)にする
  • 解決するために自分が何を試したのかを明確(具体的)に情報提供する

まずはこの2つを心掛けていただけると回答しやすいです。


$ sudo gem install capybara

のところで先に進めないとの事ですので、まずはその解決案を。。。

ご存知かとは思いますが gem が他のgemに依存している事はよくあります。
sudo gem install capybara とすると capybara だけでなく依存するgemも一緒にinstallされます。
apt-get install と同じような感じです。

そして

ERROR: Error installing capybara: rack requires Ruby version >= 2.2.2.

というメッセージが出ています。これはcapybaraが依存するrackというgemをインストールしようとした際に
rackがruby 2.2.2 以上を要求しているので今お使いのruby向けにはinstallできないとうメッセージです。

お使いのrubyは

ruby 2.1.8p440 (2015-12-16 revision 53160) [x86_64-linux-gnu]

と、いう事ですので capybara を使うにはまずrubyを2.2.2以上に上げる必要があります。


で、余談の部分ですが。。。 読んでおられる本は比較的rubyに慣れた人向けに書かれている本という印象を持っています。
開発環境の構築から詳しく書かれている本もあるはずです(最近その手の本を読んでいないので具体的に紹介できないのが申し訳ないですが。。。)
ので、そういった本も見てみてはいかがでしょうか?

CapybaraやPoltergeiset等のライブラリがある等の情報を皆様はどのようにして仕入れているのか?

普段から技術系のblogなどを読む事で仕入れています。
最近は qiita というサイトが色々まとまっていて便利です。

投稿2016/11/01 02:58

編集2016/11/01 09:50
hana-da

総合スコア1728

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dlrowolleh

2016/11/01 09:25

ご回答いただきありがとうございます。 >まずは本を読まれる事をお勧めいたします。 Rubyによるクローラー開発技法を読んでいました。(名指しですが大丈夫…?) MacやWindowsをメインに書いてありました。 Rubyでプログラムがかければうまくいけるんじゃない? プログラムさえきちんと書ければOS違っても(ubuntuでも)大丈夫でしょ。MacもUNIX系だし。 というノリで進めていたところ、 開発環境の構築の部分という ”プログラムを書く”作業ではないところでうまくいかないのではないかと思い 面食らっています。 自分でも混乱してしまい(sudoを知らず1時間無駄にしてしまったため) 散らかった文章になってしまい、大変失礼しました。 質問文、修正いたしました。少しマシになっていると思います。 お答えいただける範囲であれば是非ご回答いただけましたら幸いです。 よろしくお願いします。
hana-da

2016/11/01 09:38

質問文すばらしいです。これだけ情報がそろっていれば誰でも答えられると思います。 みんなこういう風に書いてくれたらなぁと思います。
dlrowolleh

2016/11/01 11:20

ご回答いただきましてありがとうございます。 >rubyを2.2.2以上に上げる必要があります。 Ubuntuでそのようなことは可能でしょうか。 一応やってみたのですが、うまくいきません。 $ sudo apt-get install ruby2.2.2 パッケージリストを読み込んでいます... 完了 依存関係ツリーを作成しています 状態情報を読み取っています... 完了 E: パッケージ ruby2.2.2 が見つかりません E: 正規表現 'ruby2.2.2' ではパッケージは見つかりませんでした ruby バージョンアップ等で検索をかけて調べたりもしていたのですが、 やはり、Macの情報が多く、Ubuntuでの具体的な方法が見当たりません。 >比較的rubyに慣れた人向けに書かれている本という印象を持っています。 やはりそうでしたか。Ubuntuを使って開発環境構築の理解がままならない(apt-get?公開鍵?レポジトリ?依存関係ツリー?)自分にはハードルが高いです。 せっかくなのでこの機会にそのあたりの知識も増やして行きたいところです。 何か良い手段等ご存知でしたらよろしくお願いいたします。
hana-da

2016/11/01 21:40

teratailさんは一問一答を望んでおられるようですので、rubyのversion upについては別に質問を立てられるのがよろしいかと思います。 勉強方については前述のとおり超初心者向けの本を読む。blogなどで技術情報を仕入れる。そして自分で試し。失敗し、調べ、解決する。を簡単なところから繰り返し行うのがいいと思います。
dlrowolleh

2016/11/02 07:17

ありがとうございます。 rubyのバージョンアップについて別に質問を立ててみます。 ご丁寧にありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問