🐧

開発環境 on WSL2 で生きていく

2024/06/02に公開

Terminal

Windows Terminalを入れる
https://apps.microsoft.com/detail/9n0dx20hk701?rtc=1&activetab=pivot%3Aoverviewtab&hl=ja-jp&gl=JP

WSL

powershell とかで
wsl --install

user / pass 入力を求められるのでここで決める。これはUbuntuのパスワードとなる

ネットワーク改善

名前解決が遅いだの、NATドライバがダメだの色々あったらしいが、mirrormodeで解決しているらしい。

[wsl2]
networkingMode=mirrored

上記を%userprofile%.wslconfigに設定を追加して、wsl --shutdown で再起動

asdf

0.16.x 以降 やめて mise

コマンドが少し変わったのと、メリットが見えないgo-lang化で使う気が失せた。これを機に mise に乗り換えた。
https://github.com/jdx/mise

こっちはRustらしいが、まあ大して変わらん。

0.16.x 以前

git clone https://github.com/asdf-vm/asdf.git ~/.asdf --branch v0.14.0

echo '. "$HOME/.asdf/asdf.sh"' >> .bashrc
echo '. "$HOME/.asdf/completions/asdf.bash"' >> .bashrc
  
source .bashrc

python

sudo apt update
sudo apt upgrade

asdf plugin add python

#ubuntu 24
sudo apt install -y make build-essential libssl-dev zlib1g-dev \
libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm \
libncurses-dev xz-utils tk-dev libffi-dev liblzma-dev

#ubuntu 22
sudo apt install -y make build-essential libssl-dev zlib1g-dev \
libbz2-dev libreadline-dev libsqlite3-dev wget curl \
libncurses-dev xz-utils tk-dev libffi-dev liblzma-dev

asdf install python 3.10.14
asdf list python
# 結果がおかしければ
asdf reshim python
asdf global python 3.10.14

poetry

pipx で入れるのがどう考えても正解なので、変更する

# install pipx
sudo apt update
sudo apt install pipx
pipx ensurepath

# install poetry via pipx
pipx install poetry

gcloud

curl -O https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-cli-477.0.0-linux-x86_64.tar.gz
tar xf google-cloud-cli-477.0.0-linux-x86_64.tar.gz
./google-cloud-sdk/install.sh
rm -rf google-cloud-cli-477.0.0-linux-x86_64.tar.gz

gcloud auth login
gcloud config set project pj-hoge

GPG(import)

gpg4winにてすでに秘密鍵は持っている前提で書いてる。インストールしてないなら先に入れる
秘密鍵は、WSLにも差し込まないとだめっぽいので、秘密鍵をエクスポートしてローカルに保存しておく
保存した秘密鍵をWSL内にコピーする

# 自分の環境に合わせて
cp /mnt/c/User/[your]/Download/my-private-key.asc .
# 秘密鍵インポート&信頼する
gpg --import my-private-key.asc
gpg --list-secret-keys --keyid-format LONG
# key-id をメモしておく
gpg --edit-key [key-id]
 > trust
 > 5 (select)
 > quit

GPG agent

GPGのパスフレーズ入力をどこでやるかの設定。もうLinuxの世界で生きていくならexport GPG_TTY=$(tty)にすれば良い。
git操作とかも VS-Codeに依存するならば、Gpg4win の pinentry を使う。
EditorはVIMを前提のコマンドにしているが、nanoでも何でもOK。

vim ~/.gnupg/gpg-agent.conf

中身は

# pinentry
pinentry-program /mnt/c/Program Files (x86)/Gpg4win/bin/pinentry.exe

git config

git config --global user.name "hoge.fuga"
git config --global user.email "hoge@example.com"
git config --global user.signingkey [key-id]
git config --global commit.gpgSign true

Discussion