Open10

オレオレWSL(Ubuntu)初期設定

jijinbeijijinbei

まずパッケージのアップデート

sudo apt update
sudo apt upgrade
jijinbeijijinbei

デフォルトシェルをbashからfishに

fish shell - 3.x release seriesのインストール

sudo apt-add-repository ppa:fish-shell/release-3
sudo apt update
sudo apt install fish

fishが入っていることの確認

cat /etc/shells

chsh(change shell??)でfishに変更

chsh -s /usr/bin/fish

fishのプラグインマネージャーのfisherのインストール

curl -sL https://raw.githubusercontent.com/jorgebucaran/fisher/main/functions/fisher.fish | source && fisher install jorgebucaran/fisher
jijinbeijijinbei

Rustの設定

Rustのインストール

まず、gcc(GNU Compiler Collection)などのインストール(開発用途によって要らんやつあるかも)

sudo apt install -y gcc build-essential pkg-config libusb-1.0-0-dev libftdi1-dev

Rustのインストール

 curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

fish用にPathを設定

fish_add_path $HOME/.cargo/bin

動くか確認

cargo -V
rustc -V

最新版(Nightly)のRustを使う

なんとなく最新版のほうがいいので、Nightlyのものをインストール

rustup install nightly

Nightllyが導入されていることの確認

rustup toolchain list

Nightllyをデフォルトに設定

rustup default nightly

なんとなくStableの削除(やらなくてもいい)

 rustup toolchain remove stable-x86_64-unknown-linux-gnu
jijinbeijijinbei

統合開発(IDE)の設定

VSCode

導入方法

wslの場合VSCodeは簡単に導入できる。

code .

拡張機能

拡張機能で絶対必要なもの

その他使いやすいもの

  • あとで書きます

Neovim

導入方法

vimより使いやすいNeovimの最新版をインストールする

# 最新版のインストール
curl -LO https://github.com/neovim/neovim/releases/latest/download/nvim.appimage
chmod u+x nvim.appimage

# おそらくエラーが起こる
./nvim.appimage
#エラーが起こった場合
./nvim.appimage --appimage-extract
./squashfs-root/AppRun --version

# nvimをグローバルに使えるように
sudo mv squashfs-root /
sudo ln -s /squashfs-root/AppRun /usr/bin/nvim

# 動作確認
nvim

# インストールしてきたときに出てきたファイルの削除
rm -d nvim.appimage

拡張機能

後で書きます

jijinbeijijinbei

lsをもっと使いやすく

ls以外にもっとモダンなezaというものを使う

cargoからでもいいが、aptからインストールする。

sudo apt install eza

ezaが入っていることの確認

eza -v

exaのコマンドをもっと身近にするために、fish-ezaというfishのパッケージを入れる

fish-ezaのインストール方法

fisher install plttn/fish-eza

ezaをつかうには

l

で使うことができる

ほかには、treeでファイルの階層構造を見たかったら

lt 2
.
├── a
│  └── d
├── b
└── c

で見ることができる。

そのほかの使い方は、fish-eza

jijinbeijijinbei

Pythonのインストール

私は物理学を学んでおり、数値計算を行うことが多いので、それはWSLではなくWindows環境で済ませてしまうことが多い。
しかし、何かしらの仮想環境を使ってプロジェクトを書く場合、Ryeを用いることが多くなってきた。
.venvだけでもいいが、github上の機械学習のプロジェクトをインストールするときに、どのPythonのversionを使えばいいのか分からず、無駄に時間がかかってしまうことが多いので、githubで公開するときはRyeを用いてほしい。[1]

インストール方法

curl -sSf https://rye-up.com/get | bash

ここで、package installerを設定するところがあるが、uvが速いらしいのでこれを用いている。

✔ Select the preferred package installer · uv (quick but experimental)

その他の設定はデフォルトでいい

このままだと、fishはどこにRyeがあるのか分からないので、PATHを追加する

fish_add_path $HOME/.rye/shims

インストールされているか確認

rye --version
脚注
  1. 機械学習も、「Ryeで構築するPytorch+CUDA環境」で用いることができるらしい(オレはまだ使ったことない) ↩︎

jijinbeijijinbei

ショートカットでWSLを使いやすく

ターミナル設定で以下の画像のようにする

そして、ctrl + shift + 2でWSLが起動できるようにする

jijinbeijijinbei

gitの設定

gitのユーザー名の設定

gitのユーザー名を設定する。

git config --global user.name "jijinbei" # 適宜変更
git config --global user.email johndoe@example.com # 適宜変更

githubでプライベートリポジトリを使って開発を行うための設定

このままだと、GitHubのプライベートリポジトリで開発することができない。
GitHubへのSSHログインをするための設定を行う。

参考文献
https://tech-blog.rakus.co.jp/entry/20221223/ssh

まず、鍵の作成(適宜ファイル名を変更してください)

そのあと、(jijinbeiのところを書き換えて!!)

mv id_rsa_jijinbei* ~/.ssh/
chmod 600 ~/.ssh/id_rsa_jijinbei
cat ~/.ssh/id_rsa_jijinbei.pub

catで表示されたものをGitHubにのせる

解読してみろ

次に、sshを行うためのconfigの設定を行う(ここもjijinbeiを書き換えるように)

~/ssh/config
Host *
  ServerAliveInterval 60
  IdentitiesOnly yes
  TCPKeepAlive yes

Host __github.com.* github.com
  Hostname ssh.github.com
  Port 443
  User git

Host __github.com.jijinbei github.com
  IdentityFile ~/.ssh/id_rsa_jijinbei

これで、SSHで接続できているか確認をおこなうと

これで、自分のプライベートリポジトリからクローンなどが行える

ただ、SSHで接続することを忘れないように!!

jijinbeijijinbei

もっときれいに快適にプロンプト生活

Starshipを導入するのを忘れてた。
シェル用の最小限の、非常に高速で、無限にカスタマイズ可能なプロンプトだそうです。

Starshipのインストール

curl -sS https://starship.rs/install.sh | sh

fish用に初期設定を行い、~/.config/fish/config.fishに書き込んでしまう

echo 'starship init fish | source' >> ~/.config/fish/config.fish

NerdFont(おすすめはHackGenフォント)をWindowsにいれて、

ほらみてごらん

ほら綺麗でしょ

オレは情報量が多いより、デフォルトの設定が好みです

Macは持っていないのですが、これも好みです
https://namileriblog.com/terminal/terminal_setting_starship/

Hidden comment