SQLite3をAWSにインストールする方法

# 概要

ポートフォリオを作成中、SQLite header and source version mismatchと出たので、消しました。~~大丈夫かな~~そして、せっかくなので、新しいバージョンを入れようと思って今回実行しました。

# 環境
ec2(Amazon Linux2)
AWS cloud9
SQLite3 ver3.35.0

# 手順
1 
```ターミナル(cloud9).
ec2-user:~/environment $ rails db
(もしくはsqlite3 --version)
```
を実行後、
```ターミナル(cloud9).
ec2-user:~/environment $ SQLite header and source version mismatch
```
が出た。

2 
```ターミナル(cloud9).
ec2-user:~/environment $ sudo rm /usr/local/lib/
```
で元々入っている古いSQLite3を消します。

3 2の実行後
```ターミナル(cloud9).
ec2-user:~/environment $ sqlite3 --version
bash: sqlite3: command not found
```
bash:　以下が表示されます。消えてますねこれは・・・

4 なので新しいSQLite3を入れましょう。
```ターミナル(cloud9).
ec2-user:~/environment $ wget https://www.sqlite.org/2021/sqlite-autoconf-3350000.tar.gz
↑実行後、なんか色々出るよ
```

5 
```ターミナル(cloud9).
ec2-user:~/environment $ tar fxvz sqlite-autoconf-3350000.tar.gz
↑実行後、なんか色々出るよ
```

6 
```ターミナル(cloud9).
ec2-user:~/environment $ ls
environment.sh  Mens  README.md  sqlite-autoconf-3350000.tar.gz
```
__sqlite-autoconf-3350000.tar.gz__
↑これがlsファイルの実行後に増えていることがわかります。

### lsコマンドとは

>　「ls」はファイルを一覧表示する他、ファイルの詳細情報を表示する際にも使えるコマンドです。



7 
```ターミナル(cloud9).
ec2-user:~/environment $ cd sqlite-autoconf-3350000/
```
これを実行して、sqlite-autoconf-3350000/のディレクトリ内に移動します。

8 
```ターミナル(cloud9).
ec2-user:~/environment/sqlite-autoconf-3350000 $ ./configure  
↑実行後、なんか色々出るよ
```
※ここでgccに関するエラーが出たら、下の__おまけ__へGO!

9 
```ターミナル(cloud9).
ec2-user:~/environment/sqlite-autoconf-3350000 $ make
↑実行後、なんか色々出るよ
```

10
```ターミナル(cloud9).
ec2-user:~/environment/sqlite-autoconf-3350000 $ sudo make install
↑実行後、なんか色々出るよ
```

手順は多いですが、これで完了です！！！！！！
確認しましょう。

```ターミナル(cloud9).
ec2-user:~/environment $ sqlite3 --version
3.35.0 2021-03-12 15:10:09 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
```

消した後は
```ターミナル(cloud9).
ec2-user:~/environment $ sqlite3 --version
bash: sqlite3: command not found
```

だったので、ちゃんとインストールができたことがわかります。
これにて完了です！

# おまけ
途中でエラーが出る場合もあるそうです。~~恐ろしい・・・~~
その場合を参考サイト様から載せさせていただきます。

上の手順の8 
```ターミナル(cloud9).
ec2-user:~/environment/sqlite-autoconf-3350000 $ ./configure  
↑実行後、なんか色々出るよ
```

このなんか色々出るときにエラーが出る時があるらしいです。
gccがインストールできていないようなのでインストールしましょう。

gccとは・・・参考サイト様から引用させていただきます。

>gccというのは、プログラミングを実行する時に必要なコンパイラの一つです。
>
>コンパイラというのは、人間の書いたソースコードをコンピューターが読み取れるような状態にするプログラムのことで>す。また、コンパイラを使ってコンピューターが読み取れる状態にする過程のことをコンパイルと言います。

らしいです。

gccがない場合は↓を実行しましょう！

```ターミナル(cloud9).
ec2-user:~/environment/sqlite-autoconf-3350000 $ sudo yum -y install gcc
読み込んだプラグイン:extras_suggestions, langpacks, priorities, update-motd
260 packages excluded due to repository priority protections
依存性の解決をしています
〜
インストール:
  gcc.x86_64 0:7.3.1-12.amzn2                                                                                                                             

依存性関連をインストールしました:
  cpp.x86_64 0:7.3.1-12.amzn2                              glibc-devel.x86_64 0:2.26-41.amzn2             glibc-headers.x86_64 0:2.26-41.amzn2          
  kernel-headers.x86_64 0:4.14.219-164.354.amzn2           libatomic.x86_64 0:7.3.1-12.amzn2              libcilkrts.x86_64 0:7.3.1-12.amzn2            
  libitm.x86_64 0:7.3.1-12.amzn2                           libmpc.x86_64 0:1.0.1-3.amzn2.0.2              libmpx.x86_64 0:7.3.1-12.amzn2                
  libquadmath.x86_64 0:7.3.1-12.amzn2                      libsanitizer.x86_64 0:7.3.1-12.amzn2           mpfr.x86_64 0:3.1.1-4.amzn2.0.2               
```

# 参考にさせていただいたサイト様
[(Amazon Linux2(ec2),CentOS7)SQLite3の最新バージョンをインストールする](https://it-jog.com/sqlite/installnewsqlite3)
[gccとは gccコマンドについてわかりやすく解説します ＜初心者＞](https://poruka01.com/gcc_command/)
[【 ls 】コマンド――ファイルを一覧表示する](https://atmarkit.itmedia.co.jp/ait/articles/1606/27/news018.html#:~:text=ls%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%81%A8%E3%81%AF%EF%BC%9F,%E4%B8%80%E8%A6%A7%E3%82%92%E8%A1%A8%E7%A4%BA%E3%81%97%E3%81%BE%E3%81%99%E3%80%82)

とてもわかりやすかったです！ありがとうございました！