#概要
私は現在AWSとRuby on Railsを70時間くらい学習中です。
勉強のために『現場で使える Ruby on Rails 5速習実践ガイド』を購入しました、こちらの書籍にはWSLなどで環境構築する方法が記載されていましたが、私はAWS Educateを利用することができ、せっかくなのでcloud9でやってみたところ...
$ sudo yum install postgresql
で簡単に解決すると思ったらバージョン(9.?.?)がインストールされてしまい。せっかくなのでバージョン10以上でやりたいと思い、調べました。
必要のないコマンドがあるかも知れませんが、一応この方法で動きました。まだ試していませんがEC2もこの方法でインストールできるかもしれません。
#環境
AWS Cloud9
Environment type --- EC2 instance for environment
Instance type --- t2.micro
Platform --- Amazon Linux 2
#ターミナルで以下を入力
$ amazon-linux-extras
$ sudo amazon-linux-extras install postgresql11
$ sudo yum install postgresql-server
$ sudo yum install postgresql-devel
amazon-linux-extrasでインストールできる一覧を見ることができます。
今回はamazon-linux-extrasで用意されているpostgresql11をインストールします。
amazon-linux-extrasでインストール後serverやdevelなどのパッケージはyumでインストールできます。
これでインストール完了です。
#rootユーザーでデータベースを初期化してからスタートする。
$ sudo su -
# postgresql-setup initdb
# systemctl start postgresql.service
# exit
これでpostgresqlがstartできるようになりました。
ですがロールがSUPERUSERでないとdb:createがうまくいきません。
ですのでbashでec2-userをSUPERUSERに変更します。
#rootユーザーでbash4.2を使いec2-userのロールを変更する
$ sudo su -
$ sudo su postgres
$ psql
$ ALTER USER "ec2-user" WITH SUPERUSER;
$ \q
$ exit
$ exit
#以後の作業について
$ sudo service postgresql start
使用時には上記で都度サービスをスタートさせる必要があります。