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

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

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

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Vagrant

Vagrantは、VirtualBox上の仮想マシンを コマンドラインから作成してくれるソフトウェアです。 ビルド環境など容易に構築が可能です。

Q&A

解決済

2回答

9272閲覧

仮想環境(Vagrant)でcurlを打つとエラー「Couldn't resolve host」

Gr.

総合スコア89

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Vagrant

Vagrantは、VirtualBox上の仮想マシンを コマンドラインから作成してくれるソフトウェアです。 ビルド環境など容易に構築が可能です。

0グッド

0クリップ

投稿2019/02/13 09:32

編集2019/02/13 09:43

こちらの質問との繋がりです。
Railsでgemの追加ができなくなった。

根本的な原因として、以下の問題に直面しています。

vagrant up後、vagrant ssh後(Windowsコマンドプロンプト)

vagrant@vagrant-ubuntu-trusty-32:/vagrant/AppName $ nslookup rubygems.org

;; connection timed out; no servers could be reached

vagrant@vagrant-ubuntu-trusty-32:/vagrant/AppName $ curl https://rubygems.org/

curl: (6) Could not resolve host: rubygems.org

vagrant@vagrant-ubuntu-trusty-32:/vagrant/AppName $ nslookup www.yahoo.co.jp

;; connection timed out; no servers could be reached

vagrant@vagrant-ubuntu-trusty-32:/vagrant/AppName $ curl www.yahoo.co.jp

curl: (6) Could not resolve host: www.yahoo.co.jp

vagrant up後、vagrant ssh前(Windowsコマンドプロンプト)

C:\Users\hoge\Desktop\vagrant> nslookup rubygems.org

サーバー: UnKnown
Address: 2404:1a8:7f01🅱️:3
権限のない回答:
名前: rubygems.org
Addresses: 2a04:4e42::70
151.101.0.70
151.101.64.70
151.101.128.70
151.101.192.70

C:\Users\hoge\Desktop\vagrant> curl https://rubygems.org/

<!DOCTYPE html> <html lang="en-us"> <head> <title>RubyGems.org | your community gem host</title> : : </body> </html>

まずお聞きしたいのですが、
これってつまり「バーチャルマシンからネットへ接続できていない」という解釈で合っていますか?

そして、以下の参考ページと同じで、
「/etc/resolv.confのDNS設定がおかしい為に取得失敗していた」という結論に至りそうですか?
参考:curlで「Couldn't resolve host」エラーが出た場合の対処

仮にそうだったとして、この参考ページでは

/etc/resolv.conf nameserver 8.8.8.8 上記のように修正し、apacheを再起動しcurlを再実行するとうまくいきました。

と紹介されていて、これで治るならやってみようと思います。
ただ、この場合、以下に挙げた点がわからないのでご教授願いたいです。

前提1:
viエディタなるものにはまだ触れた経験がなく、今後一から勉強しなくてはならないと思うのですが、今の優先事項は試作アプリに必要なgemをinstallすることなので、今回は必要なコマンド操作だけを教えていただきたいです。

前提2:
$ vi /etc/resolv.conf と入力するとよくわからない空欄しかない画面になり、とりあえず浅い知識で:q!と打って脱出した現状です。

わからない点
0. nameserver 8.8.8.8という記述はどのようにすればよいのでしょうか?
0. windows10のスタートメニューからコントロールパネル<ネットワークと共有センター<アダプター設定の変更<インターネットプロトコルバージョン4(TCP/IPv4)(あるいは6)でDNSサーバーを8888と書くのでは違うのでしょうか?
0. 「apacheを再起動し」とありますが、apacheなんて使ったことないのですが…?

勉強不足は痛感しております。ご助力願えると幸いです。

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

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

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

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

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

guest

回答2

0

ベストアンサー

まず、参考にされているサイトはCentOS6で記載されていますので、質問者の方が使われている
Ubuntuでの設定とは異なります。
また、Ubuntuでのネームサーバ指定設定についてはバージョンによって異なりますので、
バージョンまで指定しての検索をお勧めします。(最近のubuntu,CentOSでは/etc/resolv.confを直接編集しません。)
resolve.confではなくresolv.confです。

  1. nameserver 8.8.8.8という記述はどのようにすればよいのでしょうか?

viエディタで編集するという点は変わりませんので、viエディタの使い方については調べておかないと
何もできません。
もし環境を壊してしまうのではないかという懸念があるのでしたら、virtualboxのsnapshot等の
機能を使ってみてください。
viエディタの使い方

  1. windows10のスタートメニューからコントロールパネル<ネットワークと共有センター<アダプター設定の変更<インターネットプロトコルバージョン4(TCP/IPv4)(あるいは6)でDNSサーバーを8888と書くのでは違うのでしょうか?

設定したい内容については同じですが、今回変更したいのはUbuntuですよね?
Windows10で設定変更してもUbuntuからの名前解決は成功しないと思います。

  1. 「apacheを再起動し」とありますが、apacheなんて使ったことないのですが…?

参考にされている記事があまりよくありません。前提環境が記載されていないです。
正しくはネットワークサービスの再起動等だと思います。ネームサーバ変更の記事に変更を適用する方法
として記載されていると思います。

投稿2019/02/14 00:14

ozwind918

総合スコア1140

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

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

Gr.

2019/02/14 01:21

ozwind918さん 回答ありがとうございます。 追加でお聞きしたいです。 /etc/resolv.conf の中にある nameserver の部分を`nameserver 8.8.8.8`と書き換える、のかと思っていたのですが、`$ cat /etc/resolv.conf `とコマンド入力すると`cat: /etc/resolv.conf: No such file or directory`と返りました。 つまり、 /etc/resolv.confにもともと設定してある`nameserver …`を書き換えるのではなく、新たに /etc/resolv.confファイルを作って何も無いところに`nameserver 8.8.8.8`を書く、という解釈で合っているでしょうか。
ozwind918

2019/02/14 01:47

うーん。resolv.confがないということであれば、ご認識の通りresolv.confを作ってnameserver 8.8.8.8を書けばとりあえず場当たり的には解決できると思います。 ただ、どのような環境でそのようなことになっているのかはわかりませんので、一度包括的に勉強して仮想マシンを再作成された方がよいと思います。 環境に沿った最適な設定方法についてはteratail等といったQ&Aサイトでは答えを得られません。 あくまでQ&Aなので、記載された情報についての回答でしかありません。 /etc/resolv.confがない状況に対しては作成すればとりあえずは動くと思いますが、なぜないのか。最初からないのかそれとも何かをしてなくなったのか。等、それぞれの環境によって根本的な解決方法は異なります。 そういった環境に対しての根本的な解決をするには、基本的な知識を自分で身に着けて局所的な分からない部分はQ&Aサイトで聞く、知人・友人・先生等の詳しい人に聞く、https://menta.work/のようなサービスでお金を支払ってサポートしてもらう等が良いと思います。
Gr.

2019/02/14 03:55

ozwind918さん 返信ありがとうございます。 やはりファイルを作るところからですか。何かをしてファイルを消してしまった可能性も考慮しつつ、/etc/resolv.confファイル周りをより掘り下げて調べてみようと思います。 おかげさまでまた一歩進めました。ありがとうございました。
guest

0

前回の質問を途中で締めている理由がわからないですが、あなたと同じ環境が用意できるわけではないので、やってみたらいいじゃないですか。
なぜやらずに質問するのでしょう?

今回は必要なコマンド操作だけ

「モード切り替え、保存、終了」って教えてもらってるじゃないですか。

投稿2019/02/13 10:00

macaron_xxx

総合スコア3191

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

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

Gr.

2019/02/13 13:25

macaron_xxxさん 回答ありがとうございます。 >前回の質問を途中で締めている理由がわからないです 前回の質問を通してより根本的な部分に問題があることに気づきました。そちらを解決すれば前回の質問は自己解決できそうだったので、それを解決するための別の質問を立てました。また、丁寧に回答していただいたのにベストアンサーを出さずに別の質問に移っては失礼かなとも思いました。解決にする理由はコメント欄に示したつもりです。 >あなたと同じ環境が用意できるわけではないので、やってみたらいいじゃないですか 同じ環境を用意できないと回答できない質問はしていないと思います。教えていただきたい点は明確に示しています。 >なぜやらずに質問するのでしょう? 「前提」として書いた通り、やってみたけどわからなかった、これでいいのか不安だった、ので質問させていただいています。初心者であることは大前提として示しています。いずれにせよ、回答として「やってみればいい」はどうかと思います。他の方の質問にも同様に回答されているようでしたら、ぜひそれは「質問への追記・修正の依頼」を通して「とりあえずやってみて、どうだったかを追記してください。」という表現に変えた方が親切だと思います。 >「モード切り替え、保存、終了」って教えてもらってるじゃないですか 「最低限の操作を調べてからやった方がいいですよ」というアドバイスの、最低限の操作の例として「モード切り替え、保存、終了」等を挙げられたのではないでしょうか。「モード切り替え、保存、終了」とだけコマンドを入力しても /etc/resolv.conf に nameserver 8.8.8.8 は追記できないと思います。 始めたばかりで色々手探りで進めています。回答者さんの「とりあえずやってみる」という考えは正しいと思いますが、前にろくに調べもせずvagrantfileをいじって、しばらくvagrant upすらできなくなったことがありました。この件が取り返しのつかない事態を招くわけではない、という確信があればとりあえずやってみますが、前提に示した通り、$ vi /etc/resolv.confを叩いた感じで不安を覚えたため質問しています。 また、これも前提に示した通り、こちらの都合で今の最優先事項はアプリにgemをinstallすることなので、とりあえずやってみることはリスクと見なし、このような質問をしています。 「やってみればいい」という回答は私でも書けます。質問文が拙く、こちらの思いが通じなかったようで申し訳ありませんが、何かありましてもこれ以上の返信・コメント等は質問の趣旨から逸れてしまいますので控えていただけると助かります。
ozwind918

2019/02/14 00:18

vagrantfileに限らず、環境を変更する際には最低限やったことはメモしたりする必要が有ります。 可能であればgit等を使用して履歴管理するのが良いです。何か間違っても正常に起動していた頃に戻すことができますので。
Kta-M

2019/02/14 01:27

Gr.さん 質問に対してはozwind918さんがいい回答をしてくれているので、単なるおせっかいコメントですが。 いろいろと見ている感じ、今本当に必要なのは、ローカル開発環境やruby、railsについて体系的に学ぶことと、自分で調べる方法を身につけることではないかと思います。 ■体系的に学ぶ 始めたばかり、勉強不足は痛感、など書かれていますが、だからこそ一度立ち止まって勉強してみませんか? 場当たり的にここで質問しながら進めていくのには限界があると思います。必ずしも答えが得られるとは限りませんし、質問文を書くのもかなり時間をかけているのではないかと思います。局所的な知識しか得られないので、あまり自分の力にもならないと思います。 一度体系的に学べば、自分の知識の核ができて、応用が効くようになります。結果的に今作ろうとしているものも早く完成するのではないでしょうか。 体系的に、といってもひとまずは隅々まで網羅する必要はないので、手軽に始められるところからでいいと思います。 例えばドットインストールをやってみるとか(このほかにもrubyやrailsもあります)。 ローカル開発環境の構築 [Windows編] : https://dotinstall.com/lessons/basic_localdev_win_v2 ■自分で調べる エンジニアとして生きていく上ではとても重要です。本当は、初心者がハマるようなところは大抵検索すれば出てくるはずです。途中でわからない言葉があれば、もちろんそれも調べてみましょう。今の段階だと分からない言葉だらけかもしれませんが、その場合はその界隈をまた勉強しましょう。放置して場当たり的に解決していてはいつまで経っても初心者です。 viに関しては、存在を知らなかったようなので、最低限の操作を調べるよう親切心で書きましたが、それがこうやってまた質問に入るのはちょっと悲しいです。ためしに「vi 最低限」で検索してみてください。いくらでも記事は出てきます。 学ぶ、調べるがちゃんとできるようになれば、いろんなものが作れるようになって楽しくなってくるはずです。がんばっていきましょう!
Gr.

2019/02/14 03:58

Kta-Mさん コメントありがとうございます。 たしかに体系的に学ぶ必要性を感じています。 習うより慣れろで、「実際に一個アプリを作ってデプロイまでしてみてから、わからないまま進めてきた細部を突き詰めよう」的なスタンスで臨み、周りに特に教えを請える相手もいないので自力で一から調べて無事デプロイまで成功したのですが、投稿画像が表示されない不具合(というかherokuの仕様でpushするたびに消えてしまうことへの対策)だけが現状未解決で、そこをクリアできればひとまずゴールで、体系的な学習に入れるといった段階です。なのでどうしてもcloudinaryのgemをインストールしたくて、まず「どうして今までできてたgemのinstallやbundle installができなくなったのか」という感じの質問からはじまり、Kta-Mさんはじめみなさまのご助力のもと、今は「Ubuntuからの名前解決が問題では?」というところまで掘り下げられました。 アプリ自体は問題なく機能しているので、ここで一旦立ち止まって一から復習してもいいわけですが、このアプリは自分の中では99.9%の出来なので、残りの0.1%(gem 'cloudinary'のインストール)だけ片付けてしまいたいところですが、この問題の解決に3日や4日も時間を取られるようなら、いただいたアドバイスの通りここで一旦立ち止まって一から復習しようと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.37%

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

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

質問する

関連した質問