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

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

ただいまの
回答率

88.93%

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

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 1,386

dlrowolleh

score 120

前提・実現したいこと

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プログラムを作成しています。実行しようとするとエラーが発生しました。

実現したいこと:

  1. プログラムを動作させたい
  2. エラーが出て動かない原因・直し方を教えて欲しい

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

発生している問題・エラーメッセージ

プログラムが動作しません。

$ 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>'

該当のソースコード

# -*- coding: utf-8 -*-
require 'capybara'
require 'capybara/dsl'
require 'selenium-webdriver'

Capybara.current_driver = :selenium
Capybara.app_host = "https://affiliate.amazon.co.jp/"
Capybara.default_wait_time = 5

module Crawler
    class Amazon
        include Capybara::DSL

        def login
            visit('')
            fill_in "username",
            :with => 'YOUR_AMAZON_USER_ID'
            fill_in "password",
            :with => 'YOUR_AMAZON_PASSWORD'
            click_button "$B%5%$%s%$%s(B"
        end
    end
end

crawler = Crawler::Amazon.new
crawler.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の導入のやり方を教えて欲しい

です。

余談

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

+2

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 20: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?公開鍵?レポジトリ?依存関係ツリー?)自分にはハードルが高いです。
    せっかくなのでこの機会にそのあたりの知識も増やして行きたいところです。
    何か良い手段等ご存知でしたらよろしくお願いいたします。

    キャンセル

  • 2016/11/02 06:40

    teratailさんは一問一答を望んでおられるようですので、rubyのversion upについては別に質問を立てられるのがよろしいかと思います。

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

    キャンセル

  • 2016/11/02 16:17

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

    キャンセル

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

  • ただいまの回答率 88.93%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

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