こちらの質問との繋がりです。
Railsでgemの追加ができなくなった。
根本的な原因として、以下の問題に直面しています。
vagrant up後、vagrant ssh後(Windowsコマンドプロンプト)
vagrant@vagrant-ubuntu-trusty-32:/vagrant/AppName $ nslookup rubygems.org
;; connection timed out; no servers could be reachedvagrant@vagrant-ubuntu-trusty-32:/vagrant/AppName $ curl https://rubygems.org/
curl: (6) Could not resolve host: rubygems.orgvagrant@vagrant-ubuntu-trusty-32:/vagrant/AppName $ nslookup www.yahoo.co.jp
;; connection timed out; no servers could be reachedvagrant@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:b::3
権限のない回答:
名前: rubygems.org
Addresses: 2a04:4e42::70
151.101.0.70
151.101.64.70
151.101.128.70
151.101.192.70C:\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!
と打って脱出した現状です。
わからない点
nameserver 8.8.8.8
という記述はどのようにすればよいのでしょうか?- windows10のスタートメニューからコントロールパネル<ネットワークと共有センター<アダプター設定の変更<インターネットプロトコルバージョン4(TCP/IPv4)(あるいは6)でDNSサーバーを8888と書くのでは違うのでしょうか?
- 「apacheを再起動し」とありますが、apacheなんて使ったことないのですが…?
勉強不足は痛感しております。ご助力願えると幸いです。
-
気になる質問をクリップする
クリップした質問は、後からいつでもマイページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
クリップを取り消します
-
良い質問の評価を上げる
以下のような質問は評価を上げましょう
- 質問内容が明確
- 自分も答えを知りたい
- 質問者以外のユーザにも役立つ
評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。
質問の評価を上げたことを取り消します
-
評価を下げられる数の上限に達しました
評価を下げることができません
- 1日5回まで評価を下げられます
- 1日に1ユーザに対して2回まで評価を下げられます
質問の評価を下げる
teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。
- プログラミングに関係のない質問
- やってほしいことだけを記載した丸投げの質問
- 問題・課題が含まれていない質問
- 意図的に内容が抹消された質問
- 過去に投稿した質問と同じ内容の質問
- 広告と受け取られるような投稿
評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。
質問の評価を下げたことを取り消します
この機能は開放されていません
評価を下げる条件を満たしてません
質問の評価を下げる機能の利用条件
この機能を利用するためには、以下の事項を行う必要があります。
- 質問回答など一定の行動
-
メールアドレスの認証
メールアドレスの認証
-
質問評価に関するヘルプページの閲覧
質問評価に関するヘルプページの閲覧
checkベストアンサー
+1
まず、参考にされているサイトはCentOS6で記載されていますので、質問者の方が使われている
Ubuntuでの設定とは異なります。
また、Ubuntuでのネームサーバ指定設定についてはバージョンによって異なりますので、
バージョンまで指定しての検索をお勧めします。(最近のubuntu,CentOSでは/etc/resolv.confを直接編集しません。)
resolve.conf
ではなくresolv.conf
です。
1. nameserver 8.8.8.8という記述はどのようにすればよいのでしょうか?
viエディタで編集するという点は変わりませんので、viエディタの使い方については調べておかないと
何もできません。
もし環境を壊してしまうのではないかという懸念があるのでしたら、virtualboxのsnapshot等の
機能を使ってみてください。
viエディタの使い方
2. windows10のスタートメニューからコントロールパネル<ネットワークと共有センター<アダプター設定の変更<インターネットプロトコルバージョン4(TCP/IPv4)(あるいは6)でDNSサーバーを8888と書くのでは違うのでしょうか?
設定したい内容については同じですが、今回変更したいのはUbuntuですよね?
Windows10で設定変更してもUbuntuからの名前解決は成功しないと思います。
3. 「apacheを再起動し」とありますが、apacheなんて使ったことないのですが…?
参考にされている記事があまりよくありません。前提環境が記載されていないです。
正しくはネットワークサービスの再起動等だと思います。ネームサーバ変更の記事に変更を適用する方法
として記載されていると思います。
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
-1
前回の質問を途中で締めている理由がわからないですが、あなたと同じ環境が用意できるわけではないので、やってみたらいいじゃないですか。
なぜやらずに質問するのでしょう?
今回は必要なコマンド操作だけ
「モード切り替え、保存、終了」って教えてもらってるじゃないですか。
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
15分調べてもわからないことは、teratailで質問しよう!
- ただいまの回答率 88.23%
- 質問をまとめることで、思考を整理して素早く解決
- テンプレート機能で、簡単に質問をまとめられる
2019/02/14 10:21
回答ありがとうございます。
追加でお聞きしたいです。
/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`を書く、という解釈で合っているでしょうか。
2019/02/14 10:47
ただ、どのような環境でそのようなことになっているのかはわかりませんので、一度包括的に勉強して仮想マシンを再作成された方がよいと思います。
環境に沿った最適な設定方法についてはteratail等といったQ&Aサイトでは答えを得られません。
あくまでQ&Aなので、記載された情報についての回答でしかありません。
/etc/resolv.confがない状況に対しては作成すればとりあえずは動くと思いますが、なぜないのか。最初からないのかそれとも何かをしてなくなったのか。等、それぞれの環境によって根本的な解決方法は異なります。
そういった環境に対しての根本的な解決をするには、基本的な知識を自分で身に着けて局所的な分からない部分はQ&Aサイトで聞く、知人・友人・先生等の詳しい人に聞く、https://menta.work/のようなサービスでお金を支払ってサポートしてもらう等が良いと思います。
2019/02/14 12:55
返信ありがとうございます。
やはりファイルを作るところからですか。何かをしてファイルを消してしまった可能性も考慮しつつ、/etc/resolv.confファイル周りをより掘り下げて調べてみようと思います。
おかげさまでまた一歩進めました。ありがとうございました。