🖥️

WSL2 + Ubuntuで言語別イメージを作る

2022/02/05に公開

概要

前回の投稿内容を基に実際にイメージを作る手順の紹介をする

https://zenn.dev/lfz/articles/b87a4668922b3b

紹介するのは

  • deno
  • rust
  • php

deno

1. ベースを元にdeno用のインスタンスの作成
powershell
> wsl --import Ubuntu-20.04-deno-example F:\wsl\image\deno_example\ F:\wsl\export\ubuntu20_04_baseimage.tar
> wsl -l
Linux 用 Windows サブシステム ディストリビューション:
Ubuntu-20.04-sandbox (既定)
Ubuntu-20.04-deno-example
2. windows terminalの設定&wslへ接続
  1. 前回の投稿の設定画面のキャプチャーを参考に以下のように設定する
項目 設定値
名前 Ubuntu-20.04-deno-example
コマンドライン wsl.exe -d Ubuntu-20.04-deno-example
開始ディレクトリ \wsl$\Ubuntu-20.04-deno-example\home`username`

※usernameは各々設定した値

そして保存する

  1. windows terminalのプルダウンから作った設定を指定してタブを開いてdenoの設定をする

3. Ubuntuの設定
  1. ミドルウェアのインストール
user
$ sudo apt update && sudo apt install -y build-essential zip gzip curl git pkg-config libssl-dev
  1. asdfのインストール
user
$ git clone https://github.com/asdf-vm/asdf.git ~/.asdf --branch v0.9.0
$ echo '. $HOME/.asdf/asdf.sh' >> ~/.bashrc
$ echo '. $HOME/.asdf/completions/asdf.bash' >> ~/.bashrc
$ source ~/.bashrc
  1. denoのインストール
user
$ asdf plugin-add deno
$ asdf install deno 1.17.2
$ asdf global deno 1.17.2
  1. pathの設定
user
$ echo 'export PATH=${HOME}/.asdf/installs/deno/1.17.2/.deno/bin:${PATH}' >> ~/.bashrc
  1. インストール確認
user
$ deno -V
deno 1.17.2
4. denoを動かす
  1. サンプルソースの取得
user
$ git clone https://github.com/l-freeze/dgrep.git
$ cd dgrep/
  1. 実行(Denoで簡易grepと同様)
user
$ deno run --allow-read main.ts -n "ウェブ" ./sample.txt
5: DenoとNode.jsはGoogle ChromeなどのChromiumベースのウェブブラウザで採用されているV8 JavaScriptエンジン上に構築されたランタイム環境である。どちらも内部イベントループがあり、スクリプトと広範なコマンドラインユーティリティを実行するためのコマンドラインインタフェースを提供している。
10: ウェブブラウザと同様に、依存関係 (ローカル及びリモート) を読み込むためにURLを使用する。
13: 幅広いWeb APIを実装することによるウェブブラウザとの互換性の向上。

以上でDeno用のイメージの作成完了

5. vscodeの設定&確認
user
$ code ./
Installing VS Code Server for x64 (899d46d82c4c95423fb7e10e68eba52050e30ba3)
Downloading: 100%
Unpacking: 100%
Unpacked 1722 files and folders to ~/.vscode-server/bin/899d46d82c4c95423fb7e10e68eba52050e30ba3.

と表示されてvscodeが起動すればOK

拡張はdenoで検索すれば一発で公式のものが出てくるのでそれをインストールする

rust

1. ベースを元にdeno用のインスタンスの作成

※denoを参考に作成すること

2. windows terminalの設定&wslへ接続

※denoを参考に設定すること

3. Ubuntuの設定
  1. ミドルウェアのインストール
user
$ sudo apt update && sudo apt install build-essential zip gzip curl git cmake libfreetype-dev libxml2-dev libexpat1-dev pkg-config libssl-dev
  1. Rustインストール
user
$ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
$ echo '. "$HOME/.cargo/env"' >> ~/.bashrc
$ . "$HOME/.cargo/env"
  1. インストール確認
user
$ cargo -V
cargo 1.58.0 (f01b232bc 2022-01-19)
4. rustを動かす
user
$ cargo new installcheck
     Created binary (application) `installcheck` package
$ cd installcheck/
$ cargo run
   Compiling installcheck v0.1.0 
    Finished dev [unoptimized + debuginfo] target(s) in 0.37s
     Running `target/debug/installcheck`
Hello, world!

php

1. ベースを元にdeno用のインスタンスの作成

※denoを参考に作成すること

2. windows terminalの設定&wslへ接続

※denoを参考に設定すること

3. Ubuntuの設定
  1. ミドルウェアのインストール
user
$ sudo apt update && sudo apt install build-essential zip gzip curl git cmake libfreetype-dev libxml2-devpkg-config libssl-dev
$ sudo apt-add-repository ppa:ondrej/php
  1. phpインストール
user
$ sudo apt update  && sudo apt install -y php8.1
  1. インストール確認
user
$ php -v
PHP 8.1.2 (cli) (built: Jan 24 2022 10:42:33) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.2, Copyright (c) Zend Technologies
    with Zend OPcache v8.1.2, Copyright (c), by Zend Technologies

さすがphp、全てが簡単。勝手にapacheも入って設定までしてくれる。

いらない環境を消す

さようなら

powershell
> wsl --unregister Ubuntu-20.04-deno-example
登録を解除しています...

Discussion