3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

OSS-DB Silverのための環境構築 #5/5_最初からやり直し!VirtualBoxにUbuntu環境を構築しようとしたけど結局DBeaverを使うことにした

Last updated at Posted at 2021-01-31

はじめに

ここまで、OSS-DB Silverの参考書に載っていた「PostgreSQLをソースコードから取得する方法」を実行するため、WindowsパソコンにLinux環境を作るべく試行錯誤していました。が、結局DBeaverというSQLクライアントツールを使ってPostgreSQLを操作して学習を進めることにしました。

以下は、DBeaver導入に至るまでに右往左往した内容の、忘備録です。

OSS-DB Silverの学習のために「Linux(Ubuntu)環境を構築したい」
と思って書きはじめた本記事ですが、
結局は「Linux環境は作らず、DBeaverを使う」ことにしました。

前回までの振り返り

OSS-DB Silverの学習のために、Windowsパソコン上に環境構築をしています。

ここまで、#1~#4の記事にまとめながら作業を進めてきました。しかし、環境構築がうまくできずに行き詰まってしまったので、前回(#4)、それまで作った環境を全てアンインストールしました。

一から環境を作り直します。

師匠に教えてもらった動画2つ
How to Install Vagrant on Windows 8 / Windows 10
SSH to Vagrant machine using username and password
に沿って、作業します。

(忘備録として記録しているので、エラーや試行錯誤した手順も記録してあります。)

1.動画①:VirtualBox/Vagrant/Ubuntuをインストール

ここからは 動画①に沿って作業します。

動画① = SSH to Vagrant machine using username and password

ゲストOSはUbuntu

これまでゲストOSはCentOS7を使っていましたが、解説動画ではUbuntuが使われていたので、私も同じくUbuntuをゲストOSとします。

VirtualBoxをインストール

動画①に沿ってインストールしました。

Vagrantをインストール

動画①に沿ってインストールしました。途中で他のソフト(Cmder)の解説が入りますがそこはスルーしてVagrantのインストールを完了させます。動画ではバージョンは「2.0.0」でしたが、2021/1/25時点ではバージョンは「2.2.14」でした。最後にPC再起動が必要になるので再起動。

Cmderをインストール

動画①の 4:10 に戻って動画に沿って「Cmder(コマンダー)」をインストールします。

**Cmderとは:**多機能コンソールエミュレータのパッケージ。Windowsのコマンドプロンプトの代わりに使う。ConEmu(ターミナル)とclink(シェル)とgit-for-windows(各種コマンド)からなる。最低限の機能を備えたmini版と各種コマンドを含んだfull版がある。
(参考:Windowsで使えるターミナルとシェルのまとめ-@Ted-HM さんのQiita記事。こちらにさらに詳しい説明が書かれています。)

・今回はfull版をインストールしました。

・インストールしてから、Cmderの黒画面は特に設定をしなくても、PCのマウスで操作ができることに気づきました。前回、TeraTermを使う方法やらいろいろ試して実現しなかったことが、サラッと解決しました。ホストOSとCmderの間でのコピペも楽々できます。肩の荷が降りた気分です。スッキリ!!

→後の工程で、VirtualBox中のUbuntuマシンを起動し、Ubuntuの黒画面を操作することになり、このときの「スッキリ!」はとんだ勘違いだったと気づきました。「Cmder」と「VirtualBox中のゲストOS」は別物ですよね。

☆VagrantでVirtualBoxにUbuntuを導入


「ubuntu/trusty64」を確認
動画①の 7:15~ に沿ってVagrantサイトで「Find Boxes」→「ubuntu/trusty64」を選択し、「New」を選択。
そこに記されているコマンド(※1)を後から使う。

※1
vagrant init ubuntu/trusty64


vagrantファイルを作成
「WindowsのCドライブ>ユーザー>(ユーザー名)」の中にファイルを新規作成(ファイル名=vagrant)。更にその中にファイルを新規作成(ファイル名=ubuntu)。作成した「ubuntu」ファイルをダブルクリックし、ファイル内が空のままの状態で「(ファイルアイコン)>Windows(C:)>ユーザー>(ユーザー名)>vagrant>ubuntu」と書かれた場所をクリック。
→「C:\Users\(ユーザー名)\vagrant\ubuntu」(←これを**"パス"**と言う。「パスを通す」という言葉をチラホラ目にするけど、このことかな?)と表示されるのでそれをコピー。


cdコマンドでubuntuディレクトリへ移動
「Cmder」の「入」文字の右に
「cd」と打ち、続けて「C:\Users\(ユーザー名)\vagrant\ubuntu」と打ち、Enter。

Cmderの黒画面
cd C:\Users\(ユーザー名)\vagrant\ubuntu

**cdコマンドとは:**ディレクトリを移動するためのコマンド。上記だと、「ubuntu」へ移動せよ、ということ。


VirtualBoxにubuntuを入れる
(※1)の後半「ubuntu/trusty64」をコピぺし、

Cmderの黒画面
入 vagrant box add ubuntu/trusty64

と打ち、Enter。

疑問:Cmderの黒画面に出てくる「入」みたいな文字、何て読む?あと、Qiita記事に書きたいときとか、どうやって打てば表示される?

しばらく待つと、コマンドがダーッと表示され、最終行に

Cmderの黒画面
==> box: Successfully added box 'ubuntu/trusty64' (v20190514.0.0) for 'virtualbox'!

と表示されて、完了。VirtualBoxにUbuntuが入りました!


ubuntu/trusty64 box を初期化(動画①=09:05)
Vagrantのinitコマンドを使ってこのboxを初期化します。

(※1)の「vagrant init ubuntu/trusty64」をコピーしてCmderに「Ctrl+V」でペーストし、Enter。

Cmderの黒画面
入 vagrant init ubuntu/trusty64

「A~」と
表示され、完了。ubuntuファイルをのぞいてみると、「.vagrant」ファイルと「Vagrantfile」というテキストファイルが出来ていた。動画①では「.vagrant」は無く「Vagrantfile」のみが出来ていた。何で動作が違うんだろう?とりあえずスルーして進みます。(→この後⑦の解説の後、動画もubuntuファイルの中に入っていましたが、そのときは「.vagrant」もできていました。)

**initコマンドとは:**ランレベルを設定するコマンド。
上記だと「Vagrantのランレベルを ubuntu/trusty64 に設定せよ」という意味なのかな?ランレベルって何?と調べると、Linuxの動作モードのことで、「0~6」or「0~9」の段階があるとのこと。上記ではランレベルの数字を指定しないし、initの前に「vagrant」の記載もあるから、「vagrant init」だとランレベル設定以外の意味になるのかな?よくわからない。とにかく、動画①のとおり真似して作業自体は完了してしまった。
→initは「初期化」のコマンドのようだ。「ubuntu/trusty64 を初期化せよ」という意味。自信は無い。


仮想マシン(Ubuntu)を起動

Cmderの黒画面
入 vagrant up

と打ち、Enter。
しばらく画面が動かないのでドキドキしましたが、1分ほど待つとコマンドがダーッと動き出しました。その後2分ほどで完了。

Cmderの黒画面
入 clear

と打ち、Cmderの黒画面(ターミナル)に表示されている文字を全てクリアします。


sshコマンドでUbuntuにログイン

Cmderの黒画面
入  vagrant ssh

と打ち、Enter。
またもや画面が動かず「大丈夫かな?」と心配になりましたが、2分後、コマンドが動き出しました。ホッ。
ダーッと何十行も表示されました。最終行は
「New release '16.04.7 LTS' available.
Run 'do-release-upgrade' to upgrade to it.
vagrant@vagrant-ubuntu-trusty-64:~$」
となっていました。
動画ではこのsshコマンドがうまく効かなかったようで、その後pribate key 等を打って手動でログインしていました。が、私のPCでは「vagrant ssh」のみでログインできたようです。今後このコマンドでログインできなかった時に、動画の方法(動画①=10:13~12:13)を試してみようと思います。

ここまでで動画①は終わりです。

2.動画②:VagrantにSSH接続する(パスワード認証方式で)

続いて、動画②に入っていきます。

動画②=SSH to Vagrant machine using username and password

動画②で学ぶこと

ユーザー名とパスワードを使用してVagrantにSSH接続する方法を学びます。 パスワードベースの認証を受け入れるように、Vagrantのsshサーバー構成を変更します。

**SSHとは:**ネットワークに接続された機器を遠隔操作し、管理するための手段。目的はサーバーへの接続。「Secure Shell」の略。Secure(安全な)Shell(シェル。人間の命令を、OSの中核のソフトウェアであるカーネルに伝えてくれるプログラム。)
(参考:SSHとは?仕組みとSSHサーバーの設定をわかりやすく解説します!

ここでは「Vagrantにパスワード認証方式でログインできるように、Vagrant側の設定を変える」ということかな。

疑問:
・Vagrantのサーバーってどこにあるの?私のPCのVirtualBoxの中にあるの?ネット上のどこかにあるの?
・サーバーって物理的にあるものかと思っていたけれど、私のVirtualBox内にあるのだとしたら、それはつまり私のPC本体のHDDの中にある、ということになるの?

作業


ubuntu-machineディレクトリを作成

Cmderの黒画面
(C:\Users\ユーザー名\cmder)
(ubuntu-machineディレクトリを作成せよ)
入 mkdir ubuntu-mahcine
(ubuntu-machineディレクトリに移動せよ)
入  cd ubuntu-machine

↑動画②ではここもこの後も「ubutu」と書かれていたけど、「ubuntu」のことだよね?ubuntuでやってみよう。


box一覧表示

Cmderの黒画面
(C:\Users\ユーザー名\cmder\ubuntu-machine)
入 vagrant box list

自分のVirtualBoxの中に作られているPCのリストを確認できる。私は一つだけ(ubuntu)なので、
「ubuntu/trusty64 (virtualbox, 20190514.0.0)」
とだけ表示された。


Vagrantを初期化

Cmderの黒画面
(C:\Users\ユーザー名\cmder\ubuntu-machine)
入 vagrant init

ディレクトリ(フォルダ)をVagrant環境として初期化。

疑問:
・なぜ初期化が必要なの?私はまだVagrantで何の設定もしていないのに。私はまだ何も設定していないけれど、この動画は既に長く使われているVagrantを想定しているから、初期化しているのかな?既にほかの認証方式(公開鍵認証方式 等)が設定されていた場合にその設定が邪魔になるから、初期化が必要だということかな?
・私が今インストールしたてのVagrantでこの「vagrant init」コマンドを使うと、既に初期設定の状態だから何も変わらない?それとも何か変わるのだろうか?

赤字で
Vagrantfile already exists in this directory. Remove it before
running vagrant init.」と表示されました。
「C:>ユーザー>ユーザー名>vagrant>ubuntu」の中にあるテキルトファイル「Vagrantfile」を右クリックし削除しました。

もういちどCmderで

Cmderの黒画面
(C:\Users\ユーザー名\cmder\ubuntu-machine)
入 vagrant init

と入力。
また赤字で同じ文言が出ました。
Windowsの「ここに入力して検索」の欄に「Vagrantfile」と入力してみると、
「C:>ユーザー>ユーザー名>cmder>ubuntu-machine」の中にテキストファイル「Vagrantfile」がありました。右クリックして削除しました。「cd ubuntu-machine」コマンドを実行したのだから、確かにこのディレクトリのはずだよなと、ここで気が付きました。

もういちどCmderで

Cmderの黒画面
(C:\Users\ユーザー名\cmder\ubuntu-machine)
入 vagrant init

と入力。

「A Vagrantfile has been placed in this directory. You are now
ready to vagrant up your first virtual environment! Please read
the comments in the Vagrantfile as well as documentation on
vagrantup.com for more information on using Vagrant.」
と表示されました。動画と同じ文言です。成功です!

因みに、このタイミングで「C:>ユーザー>ユーザー名>cmder>ubuntu-machine」の中を確認すると、テキストファイル「Vagrantfile」が作られていました。


ls
動画②に戻ります。

Cmderの黒画面
(C:\Users\ユーザー名\cmder\ubuntu-machine)
入 ls

と入力。

ls(エルエス)コマンドとは:「list segments」の略で、ファイルやディレクトリの情報を表示するコマンド。
(参考:lsコマンドの使い方と覚えたい15のオプション【Linuxコマンド集】

動画②と同じく「Vagrantfile」と表示されました。


vim
次に動画②では

Cmderの黒画面
(C:\Users\ユーザー名\cmder\ubuntu-machine)
入 vim vagrantfile

と入力して「Vagrantfileを開く」のだと解説されていましたが、ここで「vim コマンド」について検索しても、「Vim」という名前の「エディタ」の解説記事ばかりがヒットします。
これが近いかな?と思った記事(=「viコマンド(vimコマンド)リファレンス」)では
「vi ファイル名 ...指定して起動 」
と書かれていました。

とにかく動画②の通りに試すことにしました。
「vim vagrantfile」、Enter!
どうだ!!

動画②と同じ文言がダダーっと画面いっぱいに表示されました。成功です。ホッ。

動画②は、この後、表示された文言を一部削除&修正していっています。ここでCmderの文言をQiitaにコピペしようとしたのですが、
Cmder黒画面上でマウスが効かなくなってしまいました。
さっきまで効いていたのにー!画面の最大化や最小化等、枠の部分のアイコンはクリックすることができますし、黒画面の中のカーソルがある一番左上の部分だけは選択することができます。が、黒画面の中の文言を触ることができなくなってしまいました。何なんでしょうか…。とりあえずこのまま進みます。

⑥-1
1~6行目を削除します。7行目の「Vagrant.configure("2") do |config|」はそのまま残します。
ここで動画②と違う現象が起きました。
動画では、1~6行目を削除すると、7行目が黒画面の1行目の位置に上がっているのですが、私の画面だとこのように
100.png
上に上がっていかず、空白のままです。DeleteやBackSpaceも効きません。何なんでしょうか。このまま進みます。

⑥-2
「Vagrant.configure("2") do |config|」の下の1~5行を削除します。その次の「config.vm.box = "base"」はそのまま残します。

⑥-3
その下の行~最終行「end」のひとつ手前の行までを全て削除します。「end」はそのまま残します。
一行一行カーソルとDeleteキーのみで消している途中で、うっかり「d」と打ち込んでしまいました。この「d」を消したところ、なぜか最初の空白と他の行の空白も消せるようになりました。マウスはまだ効きません。原因が何だったのか、なぜ空白が詰められるようになったのか、不明ですが、なぜか直りました。

疑問:
・Cmderでマウスが効かなくなった。解消方法がわからない。
・Cmderで削除した行の空白が埋まらなくなった。不意に文字をうってしまいそれを削除したら、全ての空白を詰めることができるようになった。なぜ解消できたのか不明。

ただ、マウスが効かないので全てDeleteを長押しし続けてで削除したため、時間が少々かかりました。カーソルだけでサクッと一部選択&削除する方法がありそう。
101.png

⑥-4
2行目の「base」を「ubuntu/trusty64」に書き換える。ここでは動画も「ubutu」ではなく「ubuntu」と入力していました。


動画②と自分の画面の違いに気づく
(動画②=3:04)ここで自分の画面と動画の画面の状態が違うことに気づきました。
 動画の画面は、
 A:<「vim vagrantfile」までを打った画面> と 
 B:<「vim vagrantfile」をEnterしたらダダーっとでてきた画面より後の画面> の
 2つが残っています。
 私の画面はA画面に上書きされる形でB画面が現れており、B画面の1つしか残っていません。
 なので、ここから動画ではA画面の続きにコマンドを打って説明が始まりましたが、そのA画面は私のPCでは既に消えています。

 どうすれば良いのでしょうか。


Cmderを新たに立ち上げ
とりあえずB画面のCmderを残したまま、新たにCmderを立ち上げました。そしてそこに動画の通り

Cmderの黒画面
(C:\Users\ユーザー名\cmder)
入 cd ubuntu-machine
(ubuntu-machineディレクトリに移動せよ)
(C:\Users\ユーザー名\cmder\ubuntu-machine)
入 vagrant up
(Vagrantを立ち上げよ)

と入力。
下記のエラーが出ました。

Cmderの黒画面(エラー文)
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Box 'base' could not be found. Attempting to find and install...
    default: Box Provider: virtualbox
    default: Box Version: >= 0
==> default: Box file was not detected as metadata. Adding it directly...
==> default: Adding box 'base' (v0) for provider: virtualbox
    default: Downloading: base
    default:
An error occurred while downloading the remote file. The error
message, if any, is reproduced below. Please fix this error and try
again.

Couldn't open file C:/Users/***/cmder/ubuntu-machine/base

「Box 'base' could not be found.」って、何で??


エラー発生。box名って何のこと?Vagrantfileと、どう違う?
よくわからないので、このエラー文全文をGoogle検索にかけてみました。
こちらの記事を参考にしました。

Vagrant up の失敗時の対応」-ハジプロ!2017/08/07記事

こちらの記事に

「vagrant init」でbox名を指定していない時のエラーです。

とありました。はい。確かにbox名の指定はしなかったです。
というか、box名って何のことでしょう?Vagrantfileと、どう違うのでしょうか?

こちらの記事を読みました。
新卒エンジニアがVagrantを使ってみた」-
Sachool Engineering Blog 2016/05/11記事

こちらの記事によると、

Boxファイル
→Vagrant用にカスタマイズされたOSのイメージファイル。
(BoxファイルがないとVagrantは使えない)

Vagrantfile
→仮想マシンの設定が書かれているファイル。
ネットワーク設定やマシンスペック設定などが書かれている。
(Vagrant初期化時に生成される)

とのこと。

イメージファイルとは:

簡単に言うと
ディスクの中身を、一つにまとめたファイル( = ディスクそのもの)
のことです。
(「イメージファイル」「イメージ」「ディスクイメージ」などは、全て同じ意味)
CD / DVD / BD / ハードディスク 等の中身を、 “ そっくりそのまま ” 取り出したような感じのファイルで、中身は元のディスクと “ 全く ” 同じです。
(引用:「イメージファイルとは?」-k本的に無料ソフトフリーソフト )


Vagrantのリストを確認
まずは今のVagrantの状態を確認することにしました。

Cmderの黒画面
(C:\Users\***\cmder\ubuntu-machine)
λ vagrant box list
(Vagrantのboxリストを確認せよ)
ubuntu/trusty64 (virtualbox, 20190514.0.0)
(「ubuntu/trusty64 (virtualbox, 20190514.0.0)」ですよ)

これがbox名のようです。

⑪-1
これを使ってもう一度initコマンドを実行してみます。

Cmderの黒画面
(C:\Users\***\cmder\ubuntu-machine)
λ vagrant init ubuntu/trusty64

エラーが出ました。

Cmderの黒画面
C:\Users\***\cmder\ubuntu-machine
λ vagrant init ubuntu/trusty64
`Vagrantfile` already exists in this directory. Remove it before
running `vagrant init`.

デジャブですね。
「C:>Users>***>cmder>ubuntu-machine」の中の「Vagrantfile」を右クリックして削除します。

⑪-2
もういちどinit。

Cmderの黒画面
(C:\Users\***\cmder\ubuntu-machine)
λ vagrant init ubuntu/trusty64
A `Vagrantfile` has been placed in this directory. You are now
ready to `vagrant up` your first virtual environment! Please read
the comments in the Vagrantfile as well as documentation on
`vagrantup.com` for more information on using Vagrant.

新卒エンジニアがVagrantを使ってみた」の解説になぞらえれば、

「「ubuntu/trusty64フォルダ」上に「ubuntu/trusty64 boxファイル」を起動するように設定されたvagrantfileが作成されます。」

という意味なのでしょうか?いまいちどういう状態なのかが理解できません。

が、何はともあれ次に進める状態になりました。


vagrant up。
Vagrantを立ち上げます。

Cmderの黒画面
(C:\Users\ユーザー名\cmder\ubuntu-machine)
入 vagrant up
(Vagrantを立ち上げよ)

ダダーっと動画と同じコマンド(?)が表示されて、完了しました。


ポート番号を確認。
(動画②=3:40)
動画解説によると、このダダーッの中で大切なのは次の2箇所とのこと。

Cmderの黒画面
default: 22 (guest) => 2222 (host) (adapter 1)

default: SSH auth method: private key

22と2222はポート番号と言うらしい。SSH接続で使うとのこと。


VirtualBox立ち上げ
ホストOSのデスクトップにある「Oracle VM VirtualBox」のショートカットアイコンをクリックし、VirtualBoxを立ち上げる。「実行中」になっている「ubuntu-machine_default_1612017314798_
70024」を「右クリック→閉じる→電源オフ」→ダイアログボックスが出てくるので「電源オフ」をクリック。→改めて同じマシンを「起動」→ダダーっとコマンドが流れていく。


ここで問題発生です。
動画②は、ダダーっと流れたあとに「vagrant-ubuntu-truty-64 login:」と表示されて、ログイン作業が始まっていきます。
(動画②=5:41)

が、私のPCではダダーっと表示されるコマンドがそこまではたどり着かず、途中で(「ci-ino:~」というコマンドから始まる表のようなものが14行で描かれている部分で)ストップしてしまいます。一度シャットダウンして再度起動しても、同じところでストップしてしまいました。
キーボードも打ってみましたが、十字キーは効きますが、それ以外は効きませんでした。ちなみに、十字キーを押すと「ubuntu 14.04」と表示された画面になり、もう一度十字キーを押すと元の(途中でストップした)画面に戻るという状況です。

「VirtualBox Ubuntu 起動 固まる」等でググっても解決方法はわかりませんでした。
迷走しだしたので、今一度リセットします。


Ubuntuマシンを削除。
VirtualBoxの中に作ったUbuntuマシンについて、動画①に沿って作ったマシンと、動画②に沿って作ったマシンを削除します。

こちらの記事を参考にしました。
VirtualBox - 仮想マシンを除去・削除

VirtualBoxを立ち上げ、削除したいマシンを選び右クリック→「除去」→ダイアログボックス「仮想マシンを構成するファイルをハードディスクから削除しますか?他の仮想マシンで使用されていない仮想ハードディスクも削除します。(すべてのファイルを削除 / 除去のみ / キャンセル)」→「すべてのファイルを削除」をクリック→これでマシンのアイコンも消え、削除完了。このように、マシン2つに対して削除を実行する。

→この作業でVirtualBox上からはUbuntuマシンが消えましたが、Cドライブの中を確認すると、「VirtualBox VMs」フォルダの中に消したはずの2つのマシンのファイルがあったり、「vagrant」フォルダの中に「ubuntu」フォルダがあったりする状態で、決して全て削除できている状態ではありませんでした。どういうこと?このまま進めても良いものか?

こんな記事がありました。

VirtualBoxは仮想OSの定義や設定情報を削除するだけで、実際のハードディスク上の仮想化OSファイルまでは削除しません。よって最後は仮想化OSファイルをエクスプローラーから手作業で削除する必要があります。
引用:「仮想OSの削除」-VirtualBoxの使い方 2009/12/07記事

ということで、手作業で削除しました。

3.やり直し-その1(VirtualBoxにUbuntuマシンを構築する)

復習

VirtualBoxの中のマシンが無くなったところで、今一度 動画①の☆ と 動画② でやってきた作業を復習しました。
そして、気づきました。私、いらないことをしていました。
動画①と動画②ではかぶっている作業がありました。
ここで動画①と動画②でおこなった作業を整理してみす。

【動画①】
1.ホストOSのCドライブからクリックして手作業でvagrantファイルの中にubuntuディレクトリを作成。(C:\Users\ユーザー名\vagrant\ubuntu)
2.Cmderコマンド「cd C:\Users\ユーザー名\vagrant\ubuntu」でubuntuディレクトリに移動。
3.Cmderコマンド「vagrant box add ubuntu/trusty64」でVirtualBoxの中にUbuntuマシンをインストール。
4.Cmderコマンド「vagrant init ubuntu/trusty64」でubuntu/trusty64 boxを初期化。
5.Cmderコマンド「vagrant up」で仮想マシン(Ubuntu)を起動。
6.Cmderコマンド「clear」でCmder上に表示されているコマンドを全てクリア。
7.Cmderコマンド「vagrant ssh」でUbuntuにログイン。

【動画②】
1.Cmderコマンド(C:\Users\ユーザー名\cmder)「mkdir ubuntu-mahcine」でcmderファイルの中にubuntu-mahcineディレクトリを作成。
2.Cmderコマンド(C:\Users\ユーザー名\cmder\ubuntu-machine)「vagrant box list」でVirtualBoxの中に作られているマシンのリストを確認。
3.(C:>ユーザー>ユーザー名>cmder>ubuntu-machine)の中のテキストファイル「Vagrantfile」を、右クリックで削除。
4.Cmderコマンド(C:\Users\ユーザー名\cmder\ubuntu-machine)「vagrant init」でubuntu-machine boxを初期化。
5.Cmderコマンド(C:\Users\ユーザー名\cmder\ubuntu-machine)「ls」でディレクトリ情報を確認。「Vagrantfile」と表示された。
6.Cmderコマンド(C:\Users\ユーザー名\cmder\ubuntu-machine)「vim vagrantfile」でVagrantfileを開く。Cmderにダダーっと何行も文言が表示された。
7. 6.で表示された文言を修正&大半を削除。
Vagrant.configure("2") do |config|
config.vm.box = "ubuntu/trusty64"
end
という3行だけが残る。
8. 7.の3行が表示されたCmder画面はそのまま残しておく。
別のCmder画面を立ち上げ、
Cmderコマンド(C:\Users\ユーザー名\cmder\ubuntu-machine)「vagrant up」を打ち、仮想マシン(Ubuntu)を立ち上げる。ダダーっと文言が何行も表示される。
9.表示された文言の中にあるポート番号を確認
( 22 (guest) 2222 (host) )
10.ホストOSのデスクトップにあるVirtualBoxのアイコンをクリックし、VirtualBoxを立ち上げる。
11.Ubuntuマシンを選択し起動させる。
→起動せず困っている。( ← 今ココ !! )

作業

以上を復習して、動画①と動画②の作業を別々にするのではなく、統合する必要があると気づきました。
(今さらかい!と自分で突っ込みたくなります。泣)

VirtualBoxの中身は、既にスッカラカン状態に戻してあるので、
下記の通り作業開始しました。

【ポイント】
・仮想マシン(Ubuntu)を構築&起動までは、動画①に沿っておこなう。(動画①の1.~5.)
・次に動画②の1.(cmderファイルの中にubuntu-mahcineディレクトリを作成)は、とばす。
・動画②の3.以降を実行する際、ディレクトリは「C:>ユーザー>ユーザー名>cmder>ubuntu-machine」ではなく動画①で使っていた「C:\Users\(ユーザー名)\vagrant\ubuntu」を使う。
・vagrantfileの文言をデフォルトの長文から動画と同じ下記3行
にする際、動画はCmderで書き換えていたけれど、その作業が自分のPCではうまくいかないので、エクスプローラーからvagrantfileへ行って、ファイルをメモ帳で開いて、そこで3行に変更して上書き保存する。

よし!やってみます。

【作業開始】

(動画①の作業)

1.ホストOSのCドライブからクリックして手作業でvagrantファイルの中にubuntuディレクトリを作成。(C:\Users\ユーザー名\vagrant\ubuntu)

2.Cmderコマンド「cd C:\Users\ユーザー名\vagrant\ubuntu」でubuntuディレクトリに移動。

3.Cmderコマンド(C:\Users\ユーザー名\vagrant\ubuntu)「vagrant box add ubuntu/trusty64」でVirtualBoxの中にUbuntuマシンをインストール。

4.Cmderコマンド(C:\Users\ユーザー名\vagrant\ubuntu)「vagrant init ubuntu/trusty64」でubuntu/trusty64 boxを初期化。

5.Cmderコマンド(C:\Users\ユーザー名\vagrant\ubuntu)「vagrant up」で仮想マシン(Ubuntu)を起動し、起動するか確認。
→ホストOSデスクトップのVirtualBoxアイコンをクリックし、VirtualBoxを起動してみると、「default_1612275229121_20140」というマシンが起動中になっていた。起動を確認したら、VirtualBoxは「×」をクリックして閉じる。
→Cドライブの中を確認すると、「C:\Users\ユーザー名\VirtualBox VMs」の中に、「ubuntu_default_1612275229121_20140」というフォルダが作成されていた。

(動画②の作業 & 自分なりにアレンジ)

6.Cmderコマンド(C:\Users\ユーザー名\vagrant\ubuntu)「vagrant box list」でVirtualBoxの中に作られているマシンのリストを確認。
→「ubuntu/trusty64 (virtualbox, 20190514.0.0)」と表示された。

7.Cmderコマンド(C:\Users\ユーザー名\vagrant\ubuntu)「ls」でディレクトリ情報を確認。
→「Vagrantfile」と表示された。

8.ホストPCのエクスプローラーから「C:\Users\ユーザー名\vagrant\ubuntu」と進み、テキストファイル「vagrantfile」をメモ帳で開く。
表示された文言を修正&大半を削除。
Vagrant.configure("2") do |config|
config.vm.box = "ubuntu/trusty64"
end
という3行だけを残し、上書き保存。

9.Cmderコマンド(C:\Users\ユーザー名\vagrant\ubuntu)「vagrant up」で仮想マシン(Ubuntu)を起動。しばらく無反応でしたが、1分ほど経つと動き始めました。が、ここでエラー。
「default: Warning: Connection aborted. Retrying...」という文言が何行も表示されました。

Cmder黒画面
C:\Users\***\vagrant\ubuntu
λ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Checking if box 'ubuntu/trusty64' version '20190514.0.0' is up to date...
==> default: Clearing any previously set forwarded ports...
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
    default: Adapter 1: nat
==> default: Forwarding ports...
    default: 22 (guest) => 2222 (host) (adapter 1)
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
    default: SSH address: 127.0.0.1:2222
    default: SSH username: vagrant
    default: SSH auth method: private key
    default: Warning: Connection reset. Retrying...
    default: Warning: Connection aborted. Retrying...
    default: Warning: Connection aborted. Retrying...
(中略)
   default: Warning: Connection reset. Retrying...
Timed out while waiting for the machine to boot. This means that
Vagrant was unable to communicate with the guest machine within
the configured ("config.vm.boot_timeout" value) time period.

If you look above, you should be able to see the error(s) that
Vagrant had when attempting to connect to the machine. These errors
are usually good hints as to what may be wrong.

If you're using a custom box, make sure that networking is properly
working and you're able to connect to the machine. It is a common
problem that networking isn't setup properly in these boxes.
Verify that authentication configurations are also setup properly,
as well.

If the box appears to be booting properly, you may want to increase
the timeout ("config.vm.boot_timeout") value.

ただし、動画②(4:40)でも同じエラーが出ているので、ここはスルー。引き続き動画②に沿って進める。

10.上記のとおり表示された文言の中にあるポート番号を確認。
( 22 (guest) 2222 (host) )

11.ホストOSデスクトップのVirtualBoxアイコンをクリックし、VirtualBoxを起動。作ったubuntuマシンが起動中になっているので、マシンの上で右クリック→閉じる→電源オフ→ダイアログボックスの「電源オフ」をクリック。

12.もう一度ubuntuマシンを起動する。VirtualBoxで「起動」をクリック。

13.ここで、やはり前回の⑮と同じく、起動完了できず、途中で(「ci-ino:~」というコマンドから始まる表のようなものが14行で描かれている部分で)ストップしてしまいます。
(動画では、ダダーっと流れたあとに「vagrant-ubuntu-truty-64 login:」と表示されて、ログイン作業が始まっていきます。(動画②=5:41))

なーーーぜーーー!!

14.こちらの記事「Windows10でvagrant up すると Warning: Remote connection disconnect. Retrying... が出て time out する件
を参考に、ubuntuマシンを起動できるようにします。

「C:\Users\miho\vagrant\ubuntu.vagrant\machines\default\virtualbox」中の「private_key」ファイルを右クリック→プロパティ→セキュリティ→詳細設定→継承の有効化をクリック。
→Cmderで(C:\Users\ユーザー名\vagrant\ubuntu)「vagrant up」コマンドを実行!
→エラー。前回と全く同じエラーです。「default: Warning: Connection aborted. Retrying...」が何行も表示されます。

もうーーーーー!!

もう一度、整理してやり直したいと思います。

#4. やり直し-その2(VirtualBoxにUbuntuマシンを構築する)

ここが怪しいです。

(# 3.やり直し-その1(VirtualBoxにUbuntuマシンを構築する))
8.ホストPCのエクスプローラーから「C:\Users\ユーザー名\vagrant\ubuntu」と進み、テキストファイル「vagrantfile」をメモ帳で開く。
表示された文言を修正&大半を削除。
Vagrant.configure("2") do |config|
config.vm.box = "ubuntu/trusty64"
end
という3行だけを残し、上書き保存。

前回は自分で文言を手打ちしましたが、スペースだとか、何か、打ち間違えがあったのかもしれません。
公式サイトの同じ文言をコピーし、それをペースト&上書き保存し、もう一度vagrant up してみます。

引用:公式サイト
(公式サイト=https://app.vagrantup.com/ubuntu/boxes/trusty64
ubuntu/trusty64 Vagrant box
How to use this box with Vagrant:
Vagrantfile:
↓以下の3行をコピペ)

Vagrant.configure("2") do |config|
  config.vm.box = "ubuntu/trusty64"
end

すると・・・

C:\Users\***\vagrant\ubuntu
λ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Checking if box 'ubuntu/trusty64' version '20190514.0.0' is up to date...
==> default: Machine already provisioned. Run `vagrant provision` or use the `--provision`
==> default: flag to force provisioning. Provisioners marked to run always will still run.

C:\Users\***\vagrant\ubuntu
λ

vagrant up できたの?できてないの??VirtualBoxのubuntuマシンを「表示」してみると、ステータスが「実行中」になっている。が、やはり途中で(「ci-ino:~」というコマンドから始まる表のようなものが14行で描かれている部分で)ストップしてしまいます。「vagrant halt」コマンドでvagrantから一度出て再度「vagrant up」しても同じエラー。

むーーーーーーん!!!!

5.やり直し-その3(VirtualBoxにUbuntuマシンを構築する)

迷走しているので、目的を再確認します。
目的は、Linux環境を構築して、PostgreSQLのソースコードをインストールすることです。
そして、それをいじってOSS-DBのための勉強を開始する事です。

Linux環境を作るために、今、Ubuntuマシンを構築しようとしています。
ここでストップしているわけにはいかないのに!!

Windows10にVirtualBoxとUbuntuをインストール
こちらの記事に沿って、再度Ubuntuマシンを構築してみます!!!

1.もう一度、作ったUbuntuマシンを削除して、VirtualBoxをマッサラな状態に戻します。

2.上記記事の「VirtualBoxの設定」以降に沿ってUbuntuマシン構築。記事と同じく「Ubuntu 16.04.7 LTS (Xenial Xerus)---64-bit PC (AMD64) desktop image」をダウンロードしました。

ダウンロード開始すると、残り時間が2時間(227KB/秒 -1.6GB
中)と出ました。3時間になる瞬間もあり。とにかく放置してみます。
→2時間10分程でダウンロード完了しました。

Vagrantで操作していたときは「vagrant box add ubuntu/trusty64」というコマンドだけでサラッとインストールしていたので、かかる時間が全然違いました。しかし、結局コマンドではうまくログインできなかったし、インストールがきちんとできていたのか、今となってはよくわかりません。Vagrantについては、改めて本を使って学び直したいです。

3.「起動」をクリック
4.「起動ハードディスクを選択」というダイアログが表示される。
1.png
ここで記事では「ダウンロードしたUbuntuのイメージファイル(拡張子がiso)を選択」と書かれていますが、私の画面では「空」しか選択ができません。
ファイルのアイコンをクリックし、「C:\Users***\VirtualBox VMs\Ubuntu-OSSDB\Logs」と進んでも、選択できるものは何もありませんでした。
エクスプローラーから「C:\Users\miho\VirtualBox VMs\Ubuntu-OSSDB」を見に行くと、
2.png
こんなふうになっています。
ダウンロードはちゃんとできてるの?できていないの?
それもよくわかりません。
なぜイメージファイルが無いのか?どこかに入っているのか?
手作業で「拡張子がiso」のものを探しても、「VirtualBox VMs」ファイル内には見つけることができませんでした。

ふうーーーーーーーーっ!!

【メモ】
cd/dコマンド:作業途中でCmderを閉じ、新たにCmderを起動し作業を始めるとき、最初のディレクトリは「C:\Users(ユーザー名)\cmder」になっている。作業したい「C:\Users(ユーザー名)\vagrant\ubuntu」ディレクトリへは、「cd/d」コマンドで移動する。「cd(Change Directory)」コマンドは同ドライブ内しか移動できない。別ドライブに移動するにはcdコマンドのオプション「cd/d」を使う必要がある。)

6.やり直し-その4(VirtualBoxにUbuntuマシンを構築する)

師匠に、環境構築で停滞している旨の現状報告をしました。
すると、ElephantSQLというものの存在と、同時にこちらの動画の存在を教えてくださいました。

動画:「สอนใช้ PostgreSQL Online ฟรี ไม่ผูกบัตรเครดิต ด้วย ElephantSQL

・・・何語!?と驚きましたがGoogle翻訳にタイトルをコピペしてタイ語だとわかりました。翻訳結果はこちら。
→「ElephantSQLでクレジットカードをバインドせずにPostgreSQLOnlineを無料で使用することを教えてください。」
→ElephantSQLを使ってPostgreSQLをオンラインで無料で使う方法、ということでしょうか?

動画の解説もタイ語で、字幕も出ないので不安でしたが、画面はPCの操作画面なので、マネしながら操作すれば何とかなりそうです。やってみます。

1.(ElephantSQL)
ElephantSQLのページを開き、緑の「Get a managed database today」をクリック

2.(ElephantSQL)
無料版である亀マーク「Try now for FREE」をクリック→「Sign in with Google」→Googleアカウントを選択して、注意事項を読んでサインアップ。

3.(ElephantSQL)
「Select a plan and name」のページになるので動画と同じく「Name=demo_cm」「Plan=Tiny Turtle(Free)」と入力し、「Select Region」をクリック。

4.(ElephantSQL)
「Data center=AP-NorthEast-1(Tokyo)」を選択→「Review」をクリック→「Create instance」をクリック。

5.(ElephantSQL)
左のメニューバーから「BROWSER」を選択→SQL Queryと表示されている欄に「Create table product( id int, name varchar(255) )」と入力→「Execute」をクリック→「Table queries」欄をクリックすると「No tables」となっている。ブラウザの更新アイコンをクリック→同じく「Table queries」欄をクリックすると「product(public)(0 KiB,~0 rows)」と表示されているのでそこをクリック→「SQL Query」の空欄に「SELECT * FROM "public"."product" LIMIT 100」と表示される→「Execute」をクリック→「Query completed」というバーが表示される。

(ちなみに、動画だと「hqrshqgz」と表示されている部分に私は違う文字(kはじまり)が表示されている。何用の文字が
示されているんだろう?)

6.(VScode)
新規ブラウザを開き、「Visual Studio Code」の公式ページを開く→Windows 64bit版 stable版をクリック→DLしたファイルを開くとダイアログが出る→「同意する」を選択し「次へ」→次々に出る設定についてはデフォルト通りのままで「次へ」→「インストール」→「完了」→そのままVScodeが立ち上がる。

7.(VScode)
動画5:48以降を真似してセットアップ。「SQLTools」と「SQLTools PostgreSQL/Redshift Driver」について、動画では「Dusable/Uninstall」のタグが表示されているけど、私の画面は「Install」のタグが表示されている。これは、「インストールいてね」って言っているのかな?多分。インストールしてみる!
→双方、「Install」のタグをクリックしたらまもなく「Dusable/Uninstall」のタグに表示が変わった。インストール完了。

8.(VScode)
動画7:04の真似をして「Connection name*=demon_cm」と入力。「Connect using*=Server and Port」を選択。「Server adress*=arjuna.db.elephantsql.com (arjuna-01)」(←ElephantSQLのDetails>Serverの欄で確認)と入力→「Database=k~」(←ElephantSQLのDetails>User & Default databaseの欄で確認)、「Username=k~」(←同左)と入力→「TEST CONNECTION」をクリック。

9.(VScode)
ElephantSQLのDetails>Passwordでパスワードをコピー→もういちどVScodeの「TEST CONNECTION」をクリック→上部に入力バーが表示される→パスワードをペースト→Enter→これで完了するはずが、私の画面では下記の通りエラーが出る。
10.png
「TEST CONNECTION」が実行できず、失敗している模様。

10.(VScode)
上記エラーの原因がわからないが、とりあえずこのままでも動画の次の作業に入れるようなので次へ行く。「SAVE CONNECTION」をクリック→CONNECTIONSのdemon_cm~をクリック→エラー。「Error opening connecion getaddrinfo ENOTFOUND arjuna.db.elephantsql.com(anjuna-01) Source:SQLTools(Extension)」(下記の通り)
20.png
やはり9.のエラーに向き合う必要があるみたい。
なんでなんやろ?動画と同じに操作しているはずなのにー!

11.(VScode)
Server Adressが怪しいと思い見直す。ミス発見。
「arjuna.db.elephantsql.com」とすべきだった。「(anjuna-01)」を削除し再度「TEST CONNECTION」→成功!!→「SAVE CONNECTION」をクリック。

12.(VScode)
その後も動画の通りに進めると動画9:05のように、パスワードを入力すると、demon_cmの下にデータベースのファイルがツリーのように作られるはずなのに、私の画面ではツリーは出てこない。なぜ??

なんで動画と同じにならないんだろ?何が違ったんだろう??

13.(pgAdmin)
VScode/ElephantSQLはちょっと置いておいて、先に次に必要なpgAdminインストールを進めます。
(動画は9:40からpgAdminが使われている)
こちらの記事「https://qiita.com/pyon_kiti_jp/items/01d6150e46bd66be29f0」に沿ってインストール。師匠は「(タイ語の動画のやり方は)環境汚れないからpgAdminでやってみ」と言っていましたが、これはホストPCに直接pgAdminをインストールする方法に思える。・・・これで良いのか?とにかくやってみます。
pgAdminには3とか4とかありますが、動画の通り「4」を選択。参考にしたQiita記事では、1.6vを選択していましたが、それは当初一番新しいバージョンだったからのようなので、私は今一番新しい「v4.30」を選択しました。記事通りの操作で、スムーズにインストール完了しました。

14.(pgAdmin)
動画に沿ってpgAdminのCreate-Server-Connectionの設定を進めるも、途中で下記の通りエラー。
30.png
パスワードが間違ってる?
もう一度コピペしなおしたら、うまくできました!
VScodeのことは無視して、とりあえずpgAdminは操作できる状態になりました!
pgAdmin上でElephantSQLを触って資格勉強進めていきます。

やっぱDBeaver

ここで師匠より、pgAdminよりわかりやすいよと、「DBeaver」なるものを紹介していただきました。

DBeaverダウンロードページ

DBeaverとは:
無料のマルチプラットフォームデータベースツール。PostgreSQLを含む主要なデータベースをサポートしている。

pgAdminではなくDBeaverを使うことにします!

こちらの記事
データベースツール DBeaver のインストール(Windows 上)
に沿ってダウンロードしました。

DBeaverの解説は、こちらの説明がわかりやすかったです。
SQL クライアントツール「DBeaver」が「OSqlEdit」レベルの使いやすさで感動した!!

おわりに

ということで、PostgreSQLを使うための環境構築で右往左往していましたが、結局、DBeaverでPostgreSQLを実行しながら勉強を進めることにしました。
あくまでSQLを学習するための緊急措置であり、いずれvagrantを使っての環境構築にも再チャレンジします。
師匠より、
「Windowsの初期化を覚えて、そこに直接PostgreSQLを入れるということもできるようになった方がいい。そして「Windows初期化直後の状態からこうやってこの環境を作りました」という流れで記事にアウトプットするとよい」
というアドバイスをいただきました。今はSQL自体の勉強を進めて、その後環境構築についても改めて勉強し直します。

直近の目標はOSS-DB Silver取得なので、今はDBeaverで学習を進めることを優先させたいと思います!

未解決の疑問

【Cmder】
・Cmderの黒画面に出てくる「入」みたいな文字、何て読む?あと、Qiita記事に書きたいときとか、どうやって打てば表示される?
・Cmderでマウスが効かなくなった。結局解消したけれど、原因は何だったのだろう?また、なぜ解消されたのだろう?
・Cmderで削除した行の空白が埋まらなくなった。不意に文字をうってしまいそれを削除したら、全ての空白を詰めることができるようになった。なぜ解消できたのだろう?
・コマンドを実行した後にダダーッと何十行も文章(例:「default:~」)が表示されることがある。この文章って呼び名はあるの?これもコマンドなの?
【Vagrantのサーバー】
・Vagrantのサーバーってどこにあるの?私のPCのVirtualBoxの中にあるの?ネット上のどこかにあるの?
・サーバーって物理的にあるものかと思っていたけれど、私のVirtualBox内にあるのだとしたら、それはつまり私のPC本体のHDDの中にある、ということになるの?
【Vagrantの初期化】
・なぜVagrantの初期化が必要なのか?・・・既にほかの認証方式(公開鍵認証方式 等)が設定されていた場合にその設定が邪魔になるから、初期化が必要だということかな?
・Vagrantをインストールしたばかりのときに「vagrant init」コマンドを使うと、何が起こる?or何も起こらない?
【全般】
・言葉として、「フォルダ」と「ディレクトリ」の使い分けが自分の中で定まっていない。

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?