OSS-DB Silverのための環境構築 #4/5_行き詰まって環境をリセット(Vagrant/VirtualBox(≒CentOS7)をアンインストール)

#はじめに

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

ここまで、以下の作業を進めてきました。

1.WindowsPCにLinux環境(仮想環境/CentOS7)を構築
（Qiita記事＝[OSS-DB Silverのための環境構築 #1_VirtualBox/VagrantでLinux環境(CentOS7 仮想環境)をつくる](https://qiita.com/ume-san/items/6187346b40de39ad7450)）

2.CentOS7上にPostgreSQLを操作するユーザーアカウントを作成
（Qiita記事＝[OSS-DB Silverのための環境構築 #2_事前準備1-CentOS7上にPostgreSQLを操作するユーザーアカウントを作成](https://qiita.com/ume-san/items/501936ed1da30908d39f)）

3.CentOS7上にソフトウェアパッケージ6つをインストール
（Qiita記事＝[OSS-DB Silverのための環境構築 #3_事前準備2-ソフトウェアパッケージ6つをインストールする](https://qiita.com/ume-san/items/31f661b30e76e5d226d6)）

事前準備が完了したので、いよいよPostgreSQLをインストールしようと作業を始めました。
が、早々に手が止まりました。

#CentOS7上でマウスが使えず、ホストOSとゲストOS間でコピペができない

PostgreSQLのソースコードをダウンロードする際に、
ダウンロードページに書かれたコマンド（？）をコピー&CentOS7にペースト
する必要が出てきたのですが、ホストOSの情報をコピーして、ゲストOSにペーストするという作業が、今の私のCentOS7の設定だとできませんでした。これまでも、コピペできないことや、CentOS7上でマウスを使えずに不便に感じたことが多々あったので、このタイミングでこれを解消しようと思いました。

で、「**Windows10パソコン（ホストOS）でコピーしたものをCentOS7（ゲストOS）上にペーストできるようにする！**」を目標にググりつつ下記の方法を試してみました。

**【環境】**
CentOS7
（パソコン(Windows10＝ホスト)上に VirtualBoxとVagrantでつくった 仮想環境(CentOS7＝ゲスト)）
（GNU make、ISO/ANSI C コンパイラ、readline、zlib、Flex、Bison をインストール済み）

**【試したこと】**
**①Tera Termをインストール**
Tera TermはWindows環境用の端末エミュレータ（別称：ターミナルエミュレータ）です。
CentOSとのIPアドレスの連携が必要だったのですが、その連携がうまくいかず、断念。

**②Tera Term Guest Additionsを使用**
これを使用してゲストOSの設定を「設定>高度>クリップボードの共有=双方向、ドラッグ&ドロップ＝双方向」としました。
また、
マウス結合の設定も有効になっていることを確認しました。「設定>ユーザーインターフェイス>入力＝"マウス統合"にチェック」
しかし、実際にゲストOSでマウス操作をしようとすると、

「VirtualBox-情報　//　仮想マシンの画面をマウスでクリックするか、またはホストキーを押すと、仮想マシンはマウスポインターとキーボードをキャプチャーします。仮想マシンにキーボードとマウスがキャプチャーされるとホストマシンで動作する他のアプリケーションは利用できません。（後略）「キャプチャー」or「キャンセル」」

というダイアログボックスが出てきて、「キャプチャー」をクリックするとマウスが消える→「Ctrl」を押してマウスを復元→黒い画面の部分をクリックすると先ほどと同じダイアログボックスが出てくる・・・をループしてしまい、マウスを使えませんでした。断念。

**③CentOS7を新規構築してTera Termと連携**
一度リセットしてCentOS7の構築からを以前と違う方法でやってみようと思いました。構築の際にプラグインとしてVirtualboxGuestAdditionを同時に入れる&Tera Termとの連携もする方法で紹介されていた記事があったので、そちらを参考にして進めました。CentOS7は立ち上げることができましたが、その後の Tera TermとのIPアドレスの連携がうまくいかず、断念。

#行き詰まって師匠に相談

これらの作業に5日使い、行き詰まってしまったので、師匠に状況説明し、助言を仰ぎました（2021/1/25）。
すると、「まずは効率化よりも確実化！」と、動画を2つ紹介してくださいました。

①[How to Install Vagrant on Windows 8 / Windows 10](https://www.youtube.com/watch?v=nZrQsxCPT2s&list=PLCJiSy0cRkj_pBosVUr39x7uV1gu4KRWc&index=1&t=49vagrant.d2s)
②[SSH to Vagrant machine using username and password](https://www.youtube.com/watch?v=QT8eRGGxn68&feature=youtu.be)

ということで、今使っているVagrantをアンインストールして、
この動画を参考にVagrant/VirtualBoxをインストールし直したいと思います！

#Vagrant/VirtualBoxをアンインストール

Cドライブ>ユーザー>ユーザー名の中にあるファイル
（「.vagrant.d」ファイル、「centos」ファイル（中身はvagrant関連のファイルのみ）、「training」ファイル（中身はvagrantファイルのみ）、「vagrant」テキストファイル）
を手作業で削除すれば良いのだろうか？
と最初思ったのですが、他にも削除すべきものがあるかもしれないし、そもそも削除とアンインストールって同じことなの？というレベルでわからなかったので、方法を調べました。

##CentOS7/Vagrant/VirtualBoxの関係
Vagrantをアンインストールすると、CentOS7とVirtualBoxはどうなってしまうんでしょう？
一度これらの関係を復習してみます。

||
|:--|
|Windows10　＝　ホストOS　＝　私が今使っているPC本体のOS|
|↓|
|VirtualBox　＝　仮想化ソフト　＝　ホストOSの中にゲストOSを構築するための仮想化ソフト|
|↓|
|CentOS7　＝　ゲストOS　＝　仮想化ソフトの中に立ち上げた仮想のPC！|
|・・・・・・・・・・|
|Vagrant　＝　仮想化ソフトをCUIで操作するためのソフト。Vagrantを使ってVirtualBoxを動かす。|VirtualBoxを動かすためにはVagrantが必要。|
（参考：「[【Linux環境構築】VagranとVirtualBoxとは？使い方を初心者向けに解説！](https://kitsune.blog/linux-environment)」）


##アンインストール作業

Vagrant公式サイトを確認すると

>On Windows
Uninstall using the add/remove programs section of the control panel
引用：[公式サイト：Uninstalling Vagrant](https://www.vagrantup.com/docs/installation/uninstallation)

とありました。
Windowsの　コントロールパネル>プログラム(プログラムのアンインストール)>Vagrant　を右クリックし、「アンインストール」をクリック。ダイアログボックスの案内に沿ってクリックし、5分ほど待つとアンインストールが完了しました。

VirtualBoxについても、同じ手順でアンインストールしました。こちらは待ち時間は1分ほどで完了しました。

この後Cドライブを確認すると、事前に確認していたファイル（「.vagrant.d」ファイル、「centos」ファイル（中身はvagrant関連のファイルのみ）、「training」ファイル（中身はvagrantファイルのみ）、「vagrant」テキストファイル）がまだ残っていたので、念のために手作業で削除しました。

アンインストールしたら関連するファイルも自動で削除されるのかと思ったけれど、そうではないみたい。ここら辺の仕組みがよくわかっていないので、おいおいわかるようになりたいです。

#おわりに
ということで、結局これまで#1~#3の記事でやってきたことを全てリセットすることになってしまいました。今はいただいた動画ふたつに沿ってUbuntu環境を構築している最中です。この記事の中でその過程も記録していたのですが、文章量が多くなってしまったので、そこは次の記事にまわしたいと思います。

記事にすることで自分が頭の中を整理したい、加えてその記事が誰かの役に立ったら嬉しいなと思ってQiitaを書いてきました。が、これだけ迷走していると、逆に不要な情報をQiitaに残してスミマセンという気持ちになってきました…。
が、ここまできたので、とにかくPostgreSQLソースコードのインストールまでは、記事にアウトプットしつつ進めたいと思います。