【その4】SSH接続&サーバー側設定【初めてのAWSデプロイ編】
投稿者: urumos
作成日: 2022年5月29日13:18
更新日: 2022年5月29日13:18
カテゴリ: 初めてのAWSデプロイ
タグ:
TeraTermでSSH接続
Amazon linux2の場合、初期ユーザーはec2-userだが、ubuntuの場合、初期ユーザー名は「ubuntu」。
パッケージ管理コマンドはAmazonLinux2はyumコマンドだが、Ubuntuはaptコマンド。
aptは「Advanced Packaging Tool」の略
※実際にログインしてみた結果、/home/ubuntuというディレクトリで始まった。
ディレクトリを移動して全体の構造も見てみる
/
┗bin
┗dev
┗home
┗ubuntu
┗.ssh
┗authorized_keys
┗lib32
┗libx32
┗media
┗opt
┗root
┗sbin
┗srv
┗tmp
┗var
┗boot
┗etc
┗lib
┗lib64
┗lost+found
┗mnt
┗proc
┗run
┗snap
┗sys
┗usr
historyコマンドを打った時に日時が出るように設定の変更
historyコマンドは過去に自分が打ったコマンドを一覧で見れるコマンド。
下記の変更をすることにより、日時も一緒に出るようになり便利(デフォルトでは日時は表示されない)
まずはvimで.bashrcファイルを編集する(場所はデフォルトのubuntuユーザーディレクトリで実行)
vim .bashrc
viモードが開いたら長文が出るが、下記の部分を修正(コマンドモードとインサートモードの切り替え操作)
HISTSIZE=100000 (元々は1000)
HISTFILESIZE=200000 (元々は2000)
HISTTIMEFORMAT='%y/%m/%d %H:%M:%S ' (この文は元々ないので追加)
変更の読み込み
source .bashrc
※これを忘れると変更が適用されない。
ユーザーの追加
デフォルトユーザーであるubuntuで作業するのは推奨されないとのこと。
【理由】
ユーザーを作ればそのユーザー用のディレクトリを持つことができる。
またLinuxを複数名で管理する場合などを想定すると、
デフォルトユーザーのアクセス権を与えるよりも、別ユーザーアカウントを作成し、
限られた権限だけ付与する方が安全。
新規ユーザーの追加
sudo useradd XXX
XXXがsudoコマンドを使えるように、sudoグループに追加
sudo usermod XXX -G sudo
※なお、ubuntuではなくCentOSやAmazonLinuxの場合はwheelグループに追加する
デフォルトユーザー(ubuntu)のホームディレクトリ内のファイル(authorized_keysのみ?)をXXXフォルダに移動する。
sudo cp -r /home/ubuntu/.ssh /home/XXX
説明
コピー元:「/home/ubuntu/.ssh」
コピー先:「/home/XXX」
※コピー先を「/home/XXX/.ssh」にしようと思ったらエラーが出たので、.sshなしで実行した
するともちろんauthorized_keysはXXX直下にきた。
権限変更
sudo chown -R XXX /home/XXX
これでTera TermからXXXで秘密鍵でSSHログインしようと思ったらできず。
色々迷った。passwdコマンドでユーザーのパスワードを設定したり、suで切り替えたりもした。
しかしTera Termで秘密鍵ログインするにはXXXディレクトリ内の.sshフォルダに秘密鍵の設置が必要みたい。
mkdir .ssh
秘密鍵ファイルを移動
mv authorized_keys .ssh
再度ログイン挑戦。できた!!無事sudoコマンドも使える!
デフォルトユーザー(ubuntu)の削除(⇒怖いので後でやる)
sudo userdel -r ubuntu
※-rのオプションをつける事で削除ユーザーのディレクトリも削除される。
パッケージの更新(XXXユーザーで操作)
有効なパッケージ一覧情報の更新
sudo apt update
※この段階ではパッケージのインデックスファイルを更新しているだけで、実際のアップデートではない。
パッケージのアップデート
sudo apt -y upgrade
※-yオプションyesの意味で、実行前確認(yes/no)を全て自動でyesにする(スキップする)ためオプション
不要なパッケージの削除
sudo apt -y autoremove
※なお、これら3つを繋げて「sudo apt update && sudo apt -y upgrade && sudo apt -y autoremove」でも良い。
タイムゾーンの変更
sudo timedatectl set-timezone Asia/Tokyo
変更後の確認
date
日本語ロケールに変更
sudo localectl set-locale LANG=ja_JP.UTF-8
変更後の確認
localectl status
今回必要なパッケージをインストール
Pythonをダウンロード?
※ubuntuには最初からPythonがインストールされており、そのまま利用できるが、
このPythonはOSが提供する機能に使われているため、
ユーザーが色々なパッケージを導入することでOSの安定性を損ねる可能性がある。
よって別途新しいPythonをインストールするのが一般的とのこと。
以下、【Python Japan(公式?)】からコピペ
https://www.python.jp/install/ubuntu/index.html
次のコマンドで、必要なツール類をダウンロードします。
$ sudo apt update
$ sudo apt install build-essential libbz2-dev libdb-dev \
libreadline-dev libffi-dev libgdbm-dev liblzma-dev \
libncursesw5-dev libsqlite3-dev libssl-dev \
zlib1g-dev uuid-dev tk-dev
「非公式Pythonダウンロードリンク」ページから欲しいバージョンをダウンロード
下記コマンドで解凍
$ tar xJf Python-3.x.y.tar.xz
解凍したフォルダに移動
$ cd Python-3.x.y
congfigureスクリプトを実行(インストールに必要な環境やライブラリ等が揃っているか確認してMakeFileを生成)
$ ./configure
コンパイル(configureスクリプトから生成されたMakeFileを元に実行可能ファイルを生成)
$ make
実行可能ファイルを規定のディレクトリにインストール
$ sudo make altinstall
※make install は python3 バイナリを上書きまたはリンクを破壊してしまうかもしれない。
そのため、make install の代わりに exec_prefix/bin/pythonversion のみインストールする、
make altinstall が推奨されている。
Pythonが入っていない環境に対して最初にインストールする際はmake installでも問題無い
ビルドしたコマンドは /usr/local/bin にインストールされ、
python3 コマンドまたは python3.x コマンドで起動できます。
【コピペ終わり】
見たことない手順だ。
今のWindowsパソコンにPythonを入れた時のことを思い出す
確か英語のPython公式サイトから最新版のイントローラーをダウンロードしてインストールした。
バージョンはPython 3.9.150.1013だ。
その後、「py -m venv 仮想環境名」で仮想環境を作った。
仮想環境を作ったらScriptフォルダ内にpython3.9.150.1013もきた(コピーされた?)。
それと同時にPythonだけでなく色々な関連ファイルも仮想環境フォルダ内にインストールされた。
その後仮想環境をアクティベイトし、pipで色々なパッケージを入れた。
Ubutnuの場合は上記とのことだが、今回調べた多くの記事ではPythonのダウンロードはしていなかった。
それらの人たちはUbutnuにデフォルトで入っているPythonをそのまま使っているのだろうか?
OSの機能に影響があるというが、考えてみればパッケージをインストールするのは仮想環境なのだから問題ないのでは?
しかし今Ubuntuに入っているPythonバージョンは3.8.10だったので、
日記アプリで使った3.9.150.1013とは違う。
なので今回は上の手順でやってみよう。
※sudo apt updateはもうやったのでスキップ
下記で必要なツールをインストール(/home/XXXで実行)
$ sudo apt install build-essential libbz2-dev libdb-dev \
libreadline-dev libffi-dev libgdbm-dev liblzma-dev \
libncursesw5-dev libsqlite3-dev libssl-dev \
zlib1g-dev uuid-dev tk-dev
実行すると2分くらいで沢山のファイルがインストールされた
次にPythonをダウンロード。上のサイトではPython非公式サイトからダウンロードと書いてあったが、
遠隔Linuxではブラウザは使えないので、wgetコマンドでやってたサイトからコピペしてやってみる
wget https://www.python.org/ftp/python/3.9.150.1013/Python-3.9.150.1013.tar.xz
すると「そんなものは無い」とエラーが出た。
バージョン指定がおかしいのかなと思い、3.9.1に変更。
wget https://www.python.org/ftp/python/3.9.1/Python-3.9.1.tar.xz
したら出来た。
下記コマンドでファイル解凍
tar Jxfv Python-3.x.y.tar.xz
※最初「Jxfvオプション」なしでやったらエラーになった。意味は不明。
解凍でき、Python-3.9.1というフォルダができた。そこに移動
cd Python-3.9.1
次にconfigureスクリプトを実行
./configure
※パワーシェルの仮想環境のActivateのように./をつけないとできなかった
Checking、、というのが長く続き、完了した。
次にmakeコマンドでコンパイル(configureスクリプトから生成されたMakeFileを元に実行可能ファイルを生成)
make
最後にsudo make altinstall
※「make install」と「make altinstall」の2種類あるらしいが、複数のPythonを扱う場合は後者とのこと。
これでPythonのインストールは完了!
下記コマンドで確認
python3.9 -V
結果⇒Python3.9.1
ちなみにpython3 -Vと打つと、Python3.8.10と出た。
つまり、Python3コマンドでは元々Ubuntuに入っていたPythonが起動し、
Python3.9コマンドで自分で入れたPythonが起動するらしい。
Pythonが無事インストールできたので、次に必要なものをインストール
sudo apt install python3-pip python3-dev libpq-dev postgresql postgresql-contrib nginx
※それぞれの意味
python3-pip
pipコマンド
python3-dev
??
libpq-dev
postgresql開発のためのヘッダーファイル(ライブラリ)
postgresql
postgresql本体
postgresql-contrib
postgresqlの補助ファイル?
nginx
nginx本体
ここでpipについて色々テストしてみる
pip -V および pip3-V
pip 20.0.2 from /usr/lib/python3/dist-packages/pip (python 3.8)
pip3.9 -V
pip 20.2.3 from /usr/local/lib/python3.9/site-packages/pip (python 3.9)
pip list およびpip3 list
attrs 19.3.0
Automat 0.8.0
blinker 1.4
certifi 2019.11.28
chardet 3.0.4
Click 7.0
cloud-init 21.4
colorama 0.4.3
command-not-found 0.3
configobj 5.0.6
constantly 15.1.0
cryptography 2.8
dbus-python 1.2.16
distro 1.4.0
distro-info 0.23ubuntu1
ec2-hibinit-agent 1.0.0
entrypoints 0.3
hibagent 1.0.1
httplib2 0.14.0
hyperlink 19.0.0
idna 2.8
importlib-metadata 1.5.0
incremental 16.10.1
Jinja2 2.10.1
jsonpatch 1.22
jsonpointer 2.0
jsonschema 3.2.0
keyring 18.0.1
language-selector 0.1
launchpadlib 1.10.13
lazr.restfulclient 0.14.2
lazr.uri 1.0.3
MarkupSafe 1.1.0
more-itertools 4.2.0
netifaces 0.10.4
oauthlib 3.1.0
pexpect 4.6.0
pip 20.0.2
pyasn1 0.4.2
pyasn1-modules 0.2.1
PyGObject 3.36.0
PyHamcrest 1.9.0
PyJWT 1.7.1
pymacaroons 0.13.0
PyNaCl 1.3.0
pyOpenSSL 19.0.0
pyrsistent 0.15.5
pyserial 3.4
python-apt 2.0.0+ubuntu0.20.4.6
python-debian 0.1.36ubuntu1
PyYAML 5.3.1
requests 2.22.0
requests-unixsocket 0.2.0
SecretStorage 2.3.1
service-identity 18.1.0
setuptools 45.2.0
simplejson 3.16.0
six 1.14.0
sos 4.2
ssh-import-id 5.10
systemd-python 234
Twisted 18.9.0
ubuntu-advantage-tools 27.5
ufw 0.36
unattended-upgrades 0.1
urllib3 1.25.8
wadllib 1.3.3
wheel 0.34.2
zipp 1.0.0
zope.interface 4.7.1
既存のPythonにはパッケージがたくさん入っている
一方、
pip3.9 list
pip 20.2.3
setuptools 49.2.1
入れたてほうはデフォルトの中身。早速pipをアップデートするが、
sudo -m pip3.9 install --upgrade pip
ではエラーになり、
sudo -H pip3.9 install --upgrade pip
で出来た。
疲れたけど多分いいかんじ!
次に仮想環境を作ってみる
Windowsでは慣れた作業だけど同じ感じでいけるか。
記事ではvirtualenvコマンドをインストールしてやる方法が紹介されてたけど、
自分が慣れているvenvコマンドはインストールも不要で上位互換っぽいのでこちらで挑戦
まずは、仮想環境を格納するためのフォルダを作る(/home/XXX/で実行)
mkdir pyenvs
そこに移動
cd pyenvs
この位置で下記を実行
py -m venv awsmyblog
エラー。
python3.9 -m venv awsmyblog
で成功。
お馴染みのフォルダが出来た。(ただしScriptsはbinという名前になっていた)
下記コマンドで仮想環境をアクティベート
source awsmyblogenv/bin/activate
無事括弧で仮想環境名が表示された!入れた!!
Amazon linux2の場合、初期ユーザーはec2-userだが、ubuntuの場合、初期ユーザー名は「ubuntu」。
パッケージ管理コマンドはAmazonLinux2はyumコマンドだが、Ubuntuはaptコマンド。
aptは「Advanced Packaging Tool」の略
※実際にログインしてみた結果、/home/ubuntuというディレクトリで始まった。
ディレクトリを移動して全体の構造も見てみる
/
┗bin
┗dev
┗home
┗ubuntu
┗.ssh
┗authorized_keys
┗lib32
┗libx32
┗media
┗opt
┗root
┗sbin
┗srv
┗tmp
┗var
┗boot
┗etc
┗lib
┗lib64
┗lost+found
┗mnt
┗proc
┗run
┗snap
┗sys
┗usr
historyコマンドを打った時に日時が出るように設定の変更
historyコマンドは過去に自分が打ったコマンドを一覧で見れるコマンド。
下記の変更をすることにより、日時も一緒に出るようになり便利(デフォルトでは日時は表示されない)
まずはvimで.bashrcファイルを編集する(場所はデフォルトのubuntuユーザーディレクトリで実行)
vim .bashrc
viモードが開いたら長文が出るが、下記の部分を修正(コマンドモードとインサートモードの切り替え操作)
HISTSIZE=100000 (元々は1000)
HISTFILESIZE=200000 (元々は2000)
HISTTIMEFORMAT='%y/%m/%d %H:%M:%S ' (この文は元々ないので追加)
変更の読み込み
source .bashrc
※これを忘れると変更が適用されない。
ユーザーの追加
デフォルトユーザーであるubuntuで作業するのは推奨されないとのこと。
【理由】
ユーザーを作ればそのユーザー用のディレクトリを持つことができる。
またLinuxを複数名で管理する場合などを想定すると、
デフォルトユーザーのアクセス権を与えるよりも、別ユーザーアカウントを作成し、
限られた権限だけ付与する方が安全。
新規ユーザーの追加
sudo useradd XXX
XXXがsudoコマンドを使えるように、sudoグループに追加
sudo usermod XXX -G sudo
※なお、ubuntuではなくCentOSやAmazonLinuxの場合はwheelグループに追加する
デフォルトユーザー(ubuntu)のホームディレクトリ内のファイル(authorized_keysのみ?)をXXXフォルダに移動する。
sudo cp -r /home/ubuntu/.ssh /home/XXX
説明
コピー元:「/home/ubuntu/.ssh」
コピー先:「/home/XXX」
※コピー先を「/home/XXX/.ssh」にしようと思ったらエラーが出たので、.sshなしで実行した
するともちろんauthorized_keysはXXX直下にきた。
権限変更
sudo chown -R XXX /home/XXX
これでTera TermからXXXで秘密鍵でSSHログインしようと思ったらできず。
色々迷った。passwdコマンドでユーザーのパスワードを設定したり、suで切り替えたりもした。
しかしTera Termで秘密鍵ログインするにはXXXディレクトリ内の.sshフォルダに秘密鍵の設置が必要みたい。
mkdir .ssh
秘密鍵ファイルを移動
mv authorized_keys .ssh
再度ログイン挑戦。できた!!無事sudoコマンドも使える!
デフォルトユーザー(ubuntu)の削除(⇒怖いので後でやる)
sudo userdel -r ubuntu
※-rのオプションをつける事で削除ユーザーのディレクトリも削除される。
パッケージの更新(XXXユーザーで操作)
有効なパッケージ一覧情報の更新
sudo apt update
※この段階ではパッケージのインデックスファイルを更新しているだけで、実際のアップデートではない。
パッケージのアップデート
sudo apt -y upgrade
※-yオプションyesの意味で、実行前確認(yes/no)を全て自動でyesにする(スキップする)ためオプション
不要なパッケージの削除
sudo apt -y autoremove
※なお、これら3つを繋げて「sudo apt update && sudo apt -y upgrade && sudo apt -y autoremove」でも良い。
タイムゾーンの変更
sudo timedatectl set-timezone Asia/Tokyo
変更後の確認
date
日本語ロケールに変更
sudo localectl set-locale LANG=ja_JP.UTF-8
変更後の確認
localectl status
今回必要なパッケージをインストール
Pythonをダウンロード?
※ubuntuには最初からPythonがインストールされており、そのまま利用できるが、
このPythonはOSが提供する機能に使われているため、
ユーザーが色々なパッケージを導入することでOSの安定性を損ねる可能性がある。
よって別途新しいPythonをインストールするのが一般的とのこと。
以下、【Python Japan(公式?)】からコピペ
https://www.python.jp/install/ubuntu/index.html
次のコマンドで、必要なツール類をダウンロードします。
$ sudo apt update
$ sudo apt install build-essential libbz2-dev libdb-dev \
libreadline-dev libffi-dev libgdbm-dev liblzma-dev \
libncursesw5-dev libsqlite3-dev libssl-dev \
zlib1g-dev uuid-dev tk-dev
「非公式Pythonダウンロードリンク」ページから欲しいバージョンをダウンロード
下記コマンドで解凍
$ tar xJf Python-3.x.y.tar.xz
解凍したフォルダに移動
$ cd Python-3.x.y
congfigureスクリプトを実行(インストールに必要な環境やライブラリ等が揃っているか確認してMakeFileを生成)
$ ./configure
コンパイル(configureスクリプトから生成されたMakeFileを元に実行可能ファイルを生成)
$ make
実行可能ファイルを規定のディレクトリにインストール
$ sudo make altinstall
※make install は python3 バイナリを上書きまたはリンクを破壊してしまうかもしれない。
そのため、make install の代わりに exec_prefix/bin/pythonversion のみインストールする、
make altinstall が推奨されている。
Pythonが入っていない環境に対して最初にインストールする際はmake installでも問題無い
ビルドしたコマンドは /usr/local/bin にインストールされ、
python3 コマンドまたは python3.x コマンドで起動できます。
【コピペ終わり】
見たことない手順だ。
今のWindowsパソコンにPythonを入れた時のことを思い出す
確か英語のPython公式サイトから最新版のイントローラーをダウンロードしてインストールした。
バージョンはPython 3.9.150.1013だ。
その後、「py -m venv 仮想環境名」で仮想環境を作った。
仮想環境を作ったらScriptフォルダ内にpython3.9.150.1013もきた(コピーされた?)。
それと同時にPythonだけでなく色々な関連ファイルも仮想環境フォルダ内にインストールされた。
その後仮想環境をアクティベイトし、pipで色々なパッケージを入れた。
Ubutnuの場合は上記とのことだが、今回調べた多くの記事ではPythonのダウンロードはしていなかった。
それらの人たちはUbutnuにデフォルトで入っているPythonをそのまま使っているのだろうか?
OSの機能に影響があるというが、考えてみればパッケージをインストールするのは仮想環境なのだから問題ないのでは?
しかし今Ubuntuに入っているPythonバージョンは3.8.10だったので、
日記アプリで使った3.9.150.1013とは違う。
なので今回は上の手順でやってみよう。
※sudo apt updateはもうやったのでスキップ
下記で必要なツールをインストール(/home/XXXで実行)
$ sudo apt install build-essential libbz2-dev libdb-dev \
libreadline-dev libffi-dev libgdbm-dev liblzma-dev \
libncursesw5-dev libsqlite3-dev libssl-dev \
zlib1g-dev uuid-dev tk-dev
実行すると2分くらいで沢山のファイルがインストールされた
次にPythonをダウンロード。上のサイトではPython非公式サイトからダウンロードと書いてあったが、
遠隔Linuxではブラウザは使えないので、wgetコマンドでやってたサイトからコピペしてやってみる
wget https://www.python.org/ftp/python/3.9.150.1013/Python-3.9.150.1013.tar.xz
すると「そんなものは無い」とエラーが出た。
バージョン指定がおかしいのかなと思い、3.9.1に変更。
wget https://www.python.org/ftp/python/3.9.1/Python-3.9.1.tar.xz
したら出来た。
下記コマンドでファイル解凍
tar Jxfv Python-3.x.y.tar.xz
※最初「Jxfvオプション」なしでやったらエラーになった。意味は不明。
解凍でき、Python-3.9.1というフォルダができた。そこに移動
cd Python-3.9.1
次にconfigureスクリプトを実行
./configure
※パワーシェルの仮想環境のActivateのように./をつけないとできなかった
Checking、、というのが長く続き、完了した。
次にmakeコマンドでコンパイル(configureスクリプトから生成されたMakeFileを元に実行可能ファイルを生成)
make
最後にsudo make altinstall
※「make install」と「make altinstall」の2種類あるらしいが、複数のPythonを扱う場合は後者とのこと。
これでPythonのインストールは完了!
下記コマンドで確認
python3.9 -V
結果⇒Python3.9.1
ちなみにpython3 -Vと打つと、Python3.8.10と出た。
つまり、Python3コマンドでは元々Ubuntuに入っていたPythonが起動し、
Python3.9コマンドで自分で入れたPythonが起動するらしい。
Pythonが無事インストールできたので、次に必要なものをインストール
sudo apt install python3-pip python3-dev libpq-dev postgresql postgresql-contrib nginx
※それぞれの意味
python3-pip
pipコマンド
python3-dev
??
libpq-dev
postgresql開発のためのヘッダーファイル(ライブラリ)
postgresql
postgresql本体
postgresql-contrib
postgresqlの補助ファイル?
nginx
nginx本体
ここでpipについて色々テストしてみる
pip -V および pip3-V
pip 20.0.2 from /usr/lib/python3/dist-packages/pip (python 3.8)
pip3.9 -V
pip 20.2.3 from /usr/local/lib/python3.9/site-packages/pip (python 3.9)
pip list およびpip3 list
attrs 19.3.0
Automat 0.8.0
blinker 1.4
certifi 2019.11.28
chardet 3.0.4
Click 7.0
cloud-init 21.4
colorama 0.4.3
command-not-found 0.3
configobj 5.0.6
constantly 15.1.0
cryptography 2.8
dbus-python 1.2.16
distro 1.4.0
distro-info 0.23ubuntu1
ec2-hibinit-agent 1.0.0
entrypoints 0.3
hibagent 1.0.1
httplib2 0.14.0
hyperlink 19.0.0
idna 2.8
importlib-metadata 1.5.0
incremental 16.10.1
Jinja2 2.10.1
jsonpatch 1.22
jsonpointer 2.0
jsonschema 3.2.0
keyring 18.0.1
language-selector 0.1
launchpadlib 1.10.13
lazr.restfulclient 0.14.2
lazr.uri 1.0.3
MarkupSafe 1.1.0
more-itertools 4.2.0
netifaces 0.10.4
oauthlib 3.1.0
pexpect 4.6.0
pip 20.0.2
pyasn1 0.4.2
pyasn1-modules 0.2.1
PyGObject 3.36.0
PyHamcrest 1.9.0
PyJWT 1.7.1
pymacaroons 0.13.0
PyNaCl 1.3.0
pyOpenSSL 19.0.0
pyrsistent 0.15.5
pyserial 3.4
python-apt 2.0.0+ubuntu0.20.4.6
python-debian 0.1.36ubuntu1
PyYAML 5.3.1
requests 2.22.0
requests-unixsocket 0.2.0
SecretStorage 2.3.1
service-identity 18.1.0
setuptools 45.2.0
simplejson 3.16.0
six 1.14.0
sos 4.2
ssh-import-id 5.10
systemd-python 234
Twisted 18.9.0
ubuntu-advantage-tools 27.5
ufw 0.36
unattended-upgrades 0.1
urllib3 1.25.8
wadllib 1.3.3
wheel 0.34.2
zipp 1.0.0
zope.interface 4.7.1
既存のPythonにはパッケージがたくさん入っている
一方、
pip3.9 list
pip 20.2.3
setuptools 49.2.1
入れたてほうはデフォルトの中身。早速pipをアップデートするが、
sudo -m pip3.9 install --upgrade pip
ではエラーになり、
sudo -H pip3.9 install --upgrade pip
で出来た。
疲れたけど多分いいかんじ!
次に仮想環境を作ってみる
Windowsでは慣れた作業だけど同じ感じでいけるか。
記事ではvirtualenvコマンドをインストールしてやる方法が紹介されてたけど、
自分が慣れているvenvコマンドはインストールも不要で上位互換っぽいのでこちらで挑戦
まずは、仮想環境を格納するためのフォルダを作る(/home/XXX/で実行)
mkdir pyenvs
そこに移動
cd pyenvs
この位置で下記を実行
py -m venv awsmyblog
エラー。
python3.9 -m venv awsmyblog
で成功。
お馴染みのフォルダが出来た。(ただしScriptsはbinという名前になっていた)
下記コマンドで仮想環境をアクティベート
source awsmyblogenv/bin/activate
無事括弧で仮想環境名が表示された!入れた!!