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:~$