メインメニュー
XAMPP アレンジ
IED
WSL2
-
道具箱
リポジトリ編
フレームワーク編
公開ソフトウェア
メタ
リンク
- PHP ライブラリ
- PHP 言語
wsl2:centos7目次
WSL2 CentOS7のインストール
— y2sunlight 2020-12-08
関連記事
リンク
- https://github.com/wsldl-pg/CentWSL — WSL用のCentOSダウンロードサイト(GitHub)
本章では、WSL2でのCentOS7のインストールについて説明します。現時点(2020-12-08)で、WSL用の CentOS は Microsoft Store で公開されているにも関わらず、有償でしかも公式でもなく、レビューもついていません。従って、GitHubから入手してインストールします。
本章でインストールするCentOS7は以下の通りです:
- CentOS 7.6
ダウンロード
以下のサイトにアクセスします:
ここではWSL用の各種CentOSが配布されています(感謝です!!)。
本章では、WSL2にCentOS7を設置するので、7.0.1907.3 をダウンロードします。
■
CentOS7.zip
をクリックしてzipファイルをダウンロードします。インポート用のファイルの作成
zipファイルの中には、以下のファイルが含まれています:
CentOS7.exe rootfs.tar.gz
wsldl-pg/CentWSL
のドキュメントによれば CentOSのインストールは、CentOS7.exe
で行うようになってますが、本編では、wsl
コマンドを使ってインポートします。これは、他のLinuxディストリビューションと同じ運用方法にしたいからで、それ以外の理由はありません。ダウンロードしたzipファイルを解凍して
rootfs.tar.gz
を取り出し、分かり易い名前に変更して、所定のフォルダに移動します。本章では、以下のファイルをWSL用のCentOS7のインポートファイルとします。D:\WSL2\Exports\CentOS7.6.1907.tar.gz
wsl
コマンドはtar.gz
もインポートしてくれるようなので、tar-ballに変換せず、このままで使用します。
インポート
wsl –import
コマンドを使って、先に保存した tar.gz ファイルをインポートします。PS C:\> wsl --import CentOS7.6 D:\WSL2\Packages\CentOS7.6.1907 D:\WSL2\Exports\CentOS7.6.1907.tar.gz
wsl –import
コマンドに関しては本編の「WSL2 ディストリビューションの複製」を参照して下さい。wsl -l -v
でディストリビューションの一覧を表示し、インポートを確認します。NAME STATE VERSION * Ubuntu-20.04 Stopped 2 CentOS7.6 Stopped 2
起動
先にインポートした
CentOS7.6
をwsl -d
コマンドで起動します。PS C:\> wsl -d CentOS7.6
この時、Power Shell が bash に切り替わりCentOSが利用できるようになります。
以下のコマンドでCentOSのバージョンを確認してみましょう:
$ cat /etc/redhat-release CentOS Linux release 7.6.1810 (Core)
PowerShell に戻るには、
exit
またはlogout
コマンドを使います。$ exit
CentOSの初期設定
この段階では、ユーザは root しか存在しません。以下は全てrootユーザから設定している例になります。
管理者(root)のパスワード設定
rootユーザのパスワードが分からないので、最初に設定しておきます:
# passwd
新しいユーザの追加
ユーザを作成します:
# adduser --shell /bin/bash y2sunlight
作成したユーザにグループを追加します:
# usermod -G adm,wheel,dialout,cdrom,floppy,audio,video y2sunlight
これらのグループは、必要に応じて追加・削除して下さい。
wheel
グループは/etc/sudoers
の設定で必要なグループです。ユーザ情報を確認します:
# id y2sunlight uid=1000(y2sunlight) gid=1000(y2sunlight) groups=1000(y2sunlight),4(adm),10(wheel),11(cdrom),18(dialout),19(floppy),39(video),63(audio)
/etc/sudoers
開発用のローカルサーバなので、rootで運用しても良いですが、
sudo
の設定もしておきます。viduso
を実行して/etc/sudoers
のwheel
グループの箇所を書き換え、sudo
でパスワードが不要になるように設定します:$ visudo
- sudoers
## Allows people in group wheel to run all commands - # %wheel ALL=(ALL) ALL + %wheel ALL=(ALL) ALL ## Same thing without a password - # %wheel ALL=(ALL) NOPASSWD: ALL + %wheel ALL=(ALL) NOPASSWD: ALL
この設定で
wheel
グループに入っているユーザは、sudo
でパスワードが不要になります。パッケージの更新
パッケージを最新の状態に更新します:
$ yum -y update # パッケージを最新に更新する
これ以降、Ubuntu には ユーザ
y2sunlight
でログインして操作します。
Windowsの初期設定
PowerShellからの起動
PowerShellから起動するには以下のようにします。
PS C:\> wsl -d CentOS7.6 -u y2sunlight
-d
でディストリビューション名を指定してす。-u
でユーザ名を指定してす。
Windowsターミナルをご利用の場合は、[プルダウンメニュー]から[CentOS7.6]を選択できます。
Windows ターミナルの設定
Windowsターミナルを起動し、[プルダウンメニュー]から[設定]を選択します。
setting.json
を開き、“name” がインポート時に指定したディストリビューション名( “CentOS7.6” ) と同じターミナルを探し、その設定を以下のように変更して下さい。{ "guid": "{3d07c9ba-2e59-5661-841e-864e56bf1b8e}", "hidden": false, "name": "CentOS7.6", "source": "Windows.Terminal.Wsl", + "commandline": "wsl.exe -d CentOS7.6 -u y2sunlight", + "startingDirectory": "//wsl$/CentOS7.6/home/y2sunlight" },
"commandline"
— 起動コマンドを指定します。
ここでは、-d
でディストリビューション名を、-u
でユーザ名を指定してす。"startingDirectory"
— シェル起動時の開始ディレクトリを指定します。
登録解除
インポートした CentOS を登録解除(アンインストール)するには、
wsl –unregister
コマンドを使います。PS C:\> wsl --unregister CentOS7.6
このコマンドには、実行の確認がないので、注意して下さい。実行されると直ぐに、登録解除され、CentOS のイメージは削除されてしまいます。
この後について
本章では、この後に、Apache と Docker を CentOS7 で動作させる予定でした。しかし、いざ向き合ってみると systemctl が正常に起動しないという問題に出くわしました:
# systemctl status httpd Failed to get D-Bus connection: Operation not permitted
この問題の原因は、WSL2がLinuxのブートシーケンスの中で、初期プロセス(
プロセスID = 1
)をSystemd
でなくて、SysV init
を使っていることに起因します。従って、この問題の解決には2つの方法があります:- systemctl を Systemd に依存しないものに置き換える
- 初期プロセス を
Systemd
に置き換える
この問題の解決方法についは、ネットのいろいろなサイトで説明されていますが、筆者としては、「ここまでしてCentOSで構築する必要があるのか」という疑問が湧いてきました。
従って、開発環境の一部としてWSL2を利用するという観点では、現時点で、Ubuntu を利用し CentOS は用いないというのが筆者の結論です。しかし、CentOS などの RedHat系Linuxは、運用で実績も多く、開発環境と同じ運用環境を使用したいニーズもあると思いますので、今後も、WSL2でのCentOSの導入に関しては注視することにしたいと思っています。
wsl2/centos7.txt · 最終更新: 2020/12/24 09:45 by y2sunlight
コメント