3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【WLS2】みんなOracle Linuxであそぼうよ!!

Last updated at Posted at 2022-01-10

やあやあ僕はただのいい男の子です。

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ファイルがあることを確認してね!
image.png

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で使えるようになるよ(^▽^)/

以上!
最後まで見てくれてありがとうね!

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?