やあやあ僕はただのいい男の子です。
2022/2/3 追記
MS Storeにでてるよ・・・1/31リリース
8.5もでてます!!
この記事を書いたきっかけ
WSLでUbuntuで結構遊んだんだけどさ、
自分は結構Oracle製品愛用してて、Oracle DBとかWebLogic Serverを使いたいときにさ、
Ubuntuでは動作保証されてないわけなのよ。
別にDockerやらのコンテナで動かせばいいんだけどさ、もうちょっとWindowsから近い場所で触りたいのよ。
だからコンテナでOracle DBを動かすんじゃなくてWSL上でOracle Linux(以下OL)を動かしたいのだ!
Oracle Linuxは個人開発なら無償利用できます。
Oracle Linux ダウンロード
WSL用のOracle Linuxのイメージはないよ
残念ながらOLはMicrosoft Storeにリリースされてない。
あるのはUbuntuとその他有償の各種ディストリビューションのみ。
CentOSもStoreにないけれどGitHubのアーカイブから利用できるみたいだね。
【本題】Oracle LinuxをWSLとしてインストールする
参照:
WSL で使用する Linux ディストリビューションをインポートする
ここみてやってるからわしは裏技みたいなすごいことしてないよ!
やること
1. UbuntuのWSLからOLのコンテナイメージをプル
2. イメージをTarファイルにしてWindowsの任意の場所に配置
3. WSLコマンドでインポート
⇒使える!!
1. UbuntuのWSLからOLのコンテナイメージをプル
この記事ではWLS2ですでにUbuntuが使えることを前提にしているよ!
どこかでお調べして前提条件クリアしてね(^▽^)/
Ubuntuで以下を実行してOLイメージをプル
※今回は最新の8.5をプルするよ
$ podman -v ←Dockerでも大丈夫です
podman version 3.4.2
$ podman pull docker.io/library/oraclelinux:8.5
↑ container-registry.oracle.com/os/oraclelinux:8.5でも可
(Oracle公式のコンテナレジストリからプルすることになる、中身は同じ)
Trying to pull docker.io/library/oraclelinux:8.5...
Getting image source signatures
Copying blob 671f9b4a2df1 done
Copying config 7f20b3bf28 done
Writing manifest to image destination
Storing signatures
7f20b3bf28af8fe567962c2f39579436fe33c59232d95a27ab404aee89fe95e7
確認
$ podman images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/library/oraclelinux 8.5 7f20b3bf28af 2 weeks ago 243 MB
2. イメージをTarファイルにしてWindowsの任意の場所に配置
ここでは
イメージを実行⇒実行中のコンテナIDを取得⇒実行コンテナをTarファイルとしてエクスポート
という流れだよ。
Ubuntuで作業するよ
- イメージを実行 lsコマンド実行したからプロセスダウンするけど大丈夫だよ
$ podman run -t docker.io/library/oraclelinux:8.5 ls /
bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
- コンテナIDを取得
$ ContainerID=$(podman container ls -a | grep -i oracle | awk '{print $1}')
$ echo $ContainerID
42b479efd71b
- 実行コンテナをTarファイルとしてエクスポート
WSL2はデフォルトで/mntにWindowsのファイルシステムがマウントされてるよ
だから例えば/mnt/c/Users/[ユーザ名]配下に置けば、Windowsのホームディレクトリに置けるというわけだ!
今回はTarファイルを格納するディレクトリを作っておくよ(任意)
$ mkdir -p /mnt/c/Users/laxbl/oracle_linux
$ podman export $ContainerID > /mnt/c/Users/laxbl/oracle_linux/ol85.tar
用済みのコンテナはさよなら🍤
$ podman rm -fv $ContainerID
Windows側からもTarファイルがあることを確認してね!
3. WSLコマンドでインポート
ここからはUbuntuマシンじゃなくてWindowsで作業するよ!
コマンドプロンプトを起動して作業するよ(PowerShellでもOK)
WSLのimportサブコマンドでディストリビューションをインポートするのだ
importサブコマンドの構文:
wsl.exe –import <ディストリ名> <インストール先のフォルダパス> <インポートするファイルパス>
今回はTarファイルがあるところにインストールする
C:\Users\laxbl>wsl -l -v
NAME STATE VERSION
* Ubuntu-20.04 Running 2
C:\Users\laxbl>wsl --import Oracle-8.5 C:\Users\laxbl\oracle_linux C:\Users\laxbl\oracle_linux\ol85.tar
確認・起動
>wsl -l -v
NAME STATE VERSION
* Ubuntu-20.04 Running 2
Oracle-8.5 Stopped 2
[root@MSI ~]#
[root@MSI ~]# cat /etc/oracle-release
Oracle Linux Server release 8.5
できた!!!
インポートするとデフォルトではrootユーザしかないので適宜一般ユーザを作成して使ってくださいな。
[root@MSI ~]# useradd oracle
[root@MSI ~]# passwd oracle
Changing password for user oracle.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
[root@MSI ~]# su - oracle
[oracle@MSI ~]$
[oracle@MSI ~]$ whoami
oracle
その他
お気づきの方はわかると思うけど、この要領でほかのいろんなディストリビューションもWSLで使えるようになるよ(^▽^)/
以上!
最後まで見てくれてありがとうね!