🖥️
WSL2 + Ubuntuで言語別イメージを作る
概要
前回の投稿内容を基に実際にイメージを作る手順の紹介をする
紹介するのは
- 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へ接続
- 前回の投稿の設定画面のキャプチャーを参考に以下のように設定する
項目 | 設定値 |
---|---|
名前 | Ubuntu-20.04-deno-example |
コマンドライン | wsl.exe -d Ubuntu-20.04-deno-example |
開始ディレクトリ | \wsl$\Ubuntu-20.04-deno-example\home`username` |
※usernameは各々設定した値
そして保存する
- windows terminalのプルダウンから作った設定を指定してタブを開いてdenoの設定をする
3. Ubuntuの設定
- ミドルウェアのインストール
user
$ sudo apt update && sudo apt install -y build-essential zip gzip curl git pkg-config libssl-dev
- 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
- denoのインストール
user
$ asdf plugin-add deno
$ asdf install deno 1.17.2
$ asdf global deno 1.17.2
- pathの設定
user
$ echo 'export PATH=${HOME}/.asdf/installs/deno/1.17.2/.deno/bin:${PATH}' >> ~/.bashrc
- インストール確認
user
$ deno -V
deno 1.17.2
4. denoを動かす
- サンプルソースの取得
user
$ git clone https://github.com/l-freeze/dgrep.git
$ cd dgrep/
- 実行(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の設定
- ミドルウェアのインストール
user
$ sudo apt update && sudo apt install build-essential zip gzip curl git cmake libfreetype-dev libxml2-dev libexpat1-dev pkg-config libssl-dev
- Rustインストール
user
$ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
$ echo '. "$HOME/.cargo/env"' >> ~/.bashrc
$ . "$HOME/.cargo/env"
- インストール確認
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の設定
- ミドルウェアのインストール
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
- phpインストール
user
$ sudo apt update && sudo apt install -y php8.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