Linux 用 Windows サブシステム2 (WSL2)のトップページ


Linux 用 Windows サブシステム2 (WSL2)

各種ソフトウェアのインストール

これまでの作業で Ubuntu が利用できるようになっています.ここでは,マニュアルを日本語化したり,Web サーバ,データベースサーバ,Python, PHP などの開発環境,MeCab による自然言語処理などの各種ソフトウェアをインストールして設定を行います.ただ,一つひとつ設定を行なって,ソフトウェアもインストールすることは大変な作業です.よって,ここでは,必要なソフトウェアを自動的にインストール・設定するために Ansible を使うことにします.

林坂が記述した Ansible のコードは GitHub (https://github.com/rinsaka/ubuntu2204-ansible) で公開しています.このコードを利用することでインストールされた直後の Ubuntu 22.04 に,Apache(Webサーバ),Python, PHP, Laravel, MySQL, MeCab などを自動的にインストールすることができます(なお,このAnsibleコードはVagrant上にインストールしたUbuntuにも共通して利用できます).まず,次のコマンドで GitHub からコードをダウンロード(クローン)します.

rinsaka@XPS2019:~$ pwd ⏎
/home/rinsaka
rinsaka@XPS2019:~$ ls ⏎
rinsaka@XPS2019:~$ git clone https://github.com/rinsaka/ubuntu2204-ansible ⏎
Cloning into 'ubuntu2204-ansible'...
remote: Enumerating objects: 66, done.
remote: Counting objects: 100% (66/66), done.
remote: Compressing objects: 100% (44/44), done.
remote: Total 66 (delta 34), reused 51 (delta 19), pack-reused 0
Receiving objects: 100% (66/66), 8.67 KiB | 739.00 KiB/s, done.
Resolving deltas: 100% (34/34), done.
rinsaka@XPS2019:~$

ダウンロードしたファイルを確認します.ubuntu2204-ansible というフォルダが作成され,その中に run.sh というファイルがあることを確認します.さらに,run.sh には ファイルの所有者(ユーザ名 rinsaka)に対して実行権限 x が付与されていることも確認します.これは rwxrwxr-x の左から3文字目に x があることで確認できます.

rinsaka@XPS2019:~$ ls ⏎
ubuntu2204-ansible
rinsaka@XPS2019:~$ cd ubuntu2204-ansible/ ⏎
rinsaka@XPS2019:~/ubuntu2204-ansible$ ls ⏎
00-needrestart.yml  02-mysql.yml  04-laravel.yml  06-pyenv-anaconda.yml  disable_warning_restart.conf  work
01-apache.yml       03-php.yml    05-mecab.yml    README.md              run.sh
rinsaka@XPS2019:~/ubuntu2204-ansible$ ls -l ⏎
total 44
-rw-r--r-- 1 rinsaka rinsaka  268 Mar 18 08:56 00-needrestart.yml
-rw-r--r-- 1 rinsaka rinsaka  651 Mar 18 08:56 01-apache.yml
-rw-r--r-- 1 rinsaka rinsaka  792 Mar 18 08:56 02-mysql.yml
-rw-r--r-- 1 rinsaka rinsaka  858 Mar 18 08:56 03-php.yml
-rw-r--r-- 1 rinsaka rinsaka 1092 Mar 18 08:56 04-laravel.yml
-rw-r--r-- 1 rinsaka rinsaka  876 Mar 18 08:56 05-mecab.yml
-rw-r--r-- 1 rinsaka rinsaka 1644 Mar 18 08:56 06-pyenv-anaconda.yml
-rw-r--r-- 1 rinsaka rinsaka  630 Mar 18 08:56 README.md
-rw-r--r-- 1 rinsaka rinsaka   52 Mar 18 08:56 disable_warning_restart.conf
-rwxr-xr-x 1 rinsaka rinsaka 1143 Mar 18 08:56 run.sh
drwxr-xr-x 2 rinsaka rinsaka 4096 Mar 18 08:56 work
rinsaka@XPS2019:~/ubuntu2204-ansible$

設定とインストールの準備が整ったので,./run.sh を実行します.直後にパスワードの入力が必要になることに注意してください.なお全ての処理にはかなりの時間(20分またはそれ以上)を要します.具体的な処理内容は run.sh の内容を確認してください.

rinsaka@XPS2019:~/ubuntu2204-ansible$ ./run.sh ⏎
[sudo] password for rinsaka: # パスワードを入力する(表示されない)
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
E: Unable to locate package ansible
./run.sh: line 5: ansible-playbook: command not found
Get:1 http://security.ubuntu.com/ubuntu jammy-security InRelease [110 kB]
Hit:2 http://archive.ubuntu.com/ubuntu jammy InRelease
Get:3 http://archive.ubuntu.com/ubuntu jammy-updates InRelease [119 kB]
Get:4 http://security.ubuntu.com/ubuntu jammy-security/main amd64 Packages [692 kB]
Get:5 http://archive.ubuntu.com/ubuntu jammy-backports InRel

...(中略)...

TASK [Install Anaconda] ************************************************************************************************
changed: [localhost]

TASK [Rehash] **********************************************************************************************************
changed: [localhost]

TASK [Set Global] ******************************************************************************************************
changed: [localhost]

TASK [edit .bashrc] ****************************************************************************************************
changed: [localhost]

TASK [Source] **********************************************************************************************************
changed: [localhost]

TASK [Update Conda] ****************************************************************************************************
changed: [localhost]

PLAY RECAP *************************************************************************************************************
localhost                  : ok=11   changed=10   unreachable=0    failed=0    skipped=0    rescued=0    ignored=0

rinsaka@XPS2019:~/ubuntu2204-ansible$

設定した内容を反映させるコマンドも入力します.(または一旦ログアウトしてログインしなおしても構いません.)

rinsaka@XPS2019:~/ubuntu2204-ansible$ exec $SHELL -l ⏎
rinsaka@XPS2019:~/ubuntu2204-ansible$

MySQL を利用する場合は管理者ユーザ (root) のパスワードを設定しておきます.もちろん,パスワードには複雑なものを設定してください.

rinsaka@XPS2019:~/ubuntu2204-ansible$ sudo mysql ⏎
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 10
Server version: 8.0.32-0ubuntu0.22.04.2 (Ubuntu)

Copyright (c) 2000, 2023, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'xxxxxxxxxxx'; ⏎
Query OK, 0 rows affected (0.03 sec)

mysql> FLUSH PRIVILEGES; ⏎
Query OK, 0 rows affected (0.01 sec)

mysql> EXIT ⏎
Bye
rinsaka@XPS2019:~/ubuntu2204-ansible$

今設定したパスワードでログインできることを確認しておくと良いでしょう.なお,SHOW DATABASES; などの MySQL コマンドは小文字で入力しても構いません.

rinsaka@XPS2019:~/ubuntu2204-ansible$ mysql -u root -p ⏎
Enter password: # パスワードを入力する(表示されない)
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 11
Server version: 8.0.32-0ubuntu0.22.04.2 (Ubuntu)

Copyright (c) 2000, 2023, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> SHOW DATABASES; ⏎ # データベースの一覧を確認
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.01 sec)

mysql> EXIT ⏎
Bye
rinsaka@XPS2019:~/ubuntu2204-ansible$

また,WSL にインストールした Ubuntu ではシステムの再起動時などに MySQL が自動では起動しません.したがって,必要に応じて次のコマンドで起動状態を確認して,MySQL を起動してください.

rinsaka@XPS2019:~$ sudo service mysql status ⏎
 * MySQL is stopped.
rinsaka@XPS2019:~$ sudo service mysql start ⏎
 * Starting MySQL database server mysqld                                                                                su: warning: cannot change directory to /nonexistent: No such file or directory
                                                                                                                 [ OK ]
rinsaka@XPS2019:~$ sudo service mysql status ⏎
 * /usr/bin/mysqladmin  Ver 8.0.32-0ubuntu0.22.04.2 for Linux on x86_64 ((Ubuntu))
Copyright (c) 2000, 2023, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Server version          8.0.32-0ubuntu0.22.04.2
Protocol version        10
Connection              Localhost via UNIX socket
UNIX socket             /var/run/mysqld/mysqld.sock
Uptime:                 7 sec

Threads: 2  Questions: 8  Slow queries: 0  Opens: 119  Flush tables: 3  Open tables: 38  Queries per second avg: 1.142
rinsaka@XPS2019:~$