WSL: Ubuntuの環境構築
先日、新しいPCを購入したので、まっさらな状態からWSLの環境構築を行えるいい機会だなぁということで環境構築の記録を残していく。
いつか会社のPCリプレイスで、一から環境構築を行う必要が出た時の自分(あるいは誰か)のためにも。
2024/11/08時点 構成
name | version |
---|---|
WSL: Ubuntu | 24.04.1 LTS (Noble Numbat) |
git | 2.43.0 |
aws | aws-cli/2.19.3 Python/3.12.6 Linux/5.15.153.1-microsoft-standard-WSL2 exe/x86_64.ubuntu.24 |
nvm | 0.40.1 |
node | v22.11.0 |
npm | 10.9.0 |
pnpm | 9.12.3 |
pyenv | 2.4.17 |
python | 3.12.7 |
ollama | 0.4.0 |
WSLのインストール
参考サイト
WSL を使用して Windows に Linux をインストールする方法
実行手順
ターミナル(管理者)を開き、次のコマンドを実行
wsl --install
標準だと、LinuxのUbuntuディストリビューションがインストールされる
Ubuntu以外のインストールを行いたい場合は、参考サイトを見ながらインストールを行う
(おそらく)再起動する必要があるので、再起動
再起動後、自動的にターミナルでWSL: Ubuntuが立ち上がり、ユーザ名とパスワードを要求してくるので入力する
Ubuntuに接続できたらOK
Ubuntuのバージョン確認
参考サイト
特になし
実行手順
VSCodeの拡張機能WSLをインストールし、VSCodeからWSLに接続する
接続後、次のコマンドを実行し、バージョンの確認を行う
$ cat /etc/os-release
PRETTY_NAME="Ubuntu 24.04.1 LTS"
NAME="Ubuntu"
VERSION_ID="24.04"
VERSION="24.04.1 LTS (Noble Numbat)"
VERSION_CODENAME=noble
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=noble
LOGO=ubuntu-logo
バージョン情報が確認できる
Ubuntu 24.04.1 LTSが実行されていることがわかる
パッケージの依存解決
参考サイト
特になし
実行手順
Ubuntuにインストールされているソフトウェアを最新版に更新する
$ sudo apt update && sudo apt upgrade -y
実行後、コマンドの確認を行う
$ python3 --version
Python 3.12.3
$ git --version
git version 2.43.0
GitのエディタをVimに設定する
参考サイト
特になし
実行手順
私がnanoを使えないので
設定
$ git config --global core.editor vim
確認
$ git config --global --list | grep editor
core.editor=vim
これでrebase時やcommit時にvimが使われるようになる
nvmでNodeを使えるようにする
参考サイト
nvm-sh/nvm: Node Version Manager
実行手順
GitHubのREADMEInstall & Update Scriptに記載されているとおりに、コマンドを実行
$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash
ターミナルを新しくして、インストールされたか確認
$ nvm --version
0.40.1
続いて、Long-term Supportに記載されているとおりに、コマンドを実行
$ nvm install --lts
$ nvm install --lts
Installing latest LTS version.
Downloading and installing node v22.11.0...
Downloading https://nodejs.org/dist/v22.11.0/node-v22.11.0-linux-x64.tar.xz...
###...### 100.0%
Computing checksum with sha256sum
Checksums matched!
Now using node v22.11.0 (npm v10.9.0)
Creating default alias: default -> lts/* (-> v22.11.0)
$ node --version
v22.11.0
$ npm --version
10.9.0
nodeとnpmがnvmでインストールされたことを確認
pnpmを使えるようにする
参考サイト
pnpm公式ドキュメント > Using other package managers > npmを使用する
実行手順
参考サイトのとおり、コマンドを実行する
$ npm install -g pnpm
$ pnpm --version
9.12.3
AWS CLIを使えるようにする
参考サイト
Installing or updating to the latest version of the AWS CLI
【AWS】aws cliの設定方法
実行手順
参考サイトのとおり、コマンドを実行する
unzipコマンドが標準だとないということで怒られるので、入れておく(怒られてからいれてもOK、インストールせーよと言われるので)
$ sudo apt install unzip
$ curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
$ unzip awscliv2.zip
$ sudo ./aws/install
$ aws --version
aws-cli/2.19.3 Python/3.12.6 Linux/5.15.153.1-microsoft-standard-WSL2 exe/x86_64.ubuntu.24
awscliv2.zipはもういらないので、削除する
$ rm awscliv2.zip
AWSのクレデンシャルは発行されている前提として...(発行方法などは参考記事が丁寧にまとまっていますので、委ねます)
AWS CLIの設定を行う
$ aws configure
AWS Access Key ID [None]: {access_key_id}
AWS Secret Access Key [None]: {secret_access_key}
Default region name [None]: ap-northeast-1
Default output format [None]: json
$ aws sts get-caller-identity
{
"UserId": "{user_id}",
"Account": "{account_id}",
"Arn": "arn:aws:iam::{account_id}:user/{username}"
}
pyenvでPythonのバージョンを管理できるようにする
参考サイト
pyenv/pyenv: Simple Python Version Management: pyenv
実行手順
GitHubのWikiSuggested build environment > Ubuntu/Debian/Mint:のとおりに、依存関係をインストールするコマンドを実行する
$ sudo apt update; sudo apt install build-essential libssl-dev zlib1g-dev \
libbz2-dev libreadline-dev libsqlite3-dev curl git \
libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev
その後、GitHubのREADMEAutomatic installerのとおりに、コマンドを実行する
$ curl https://pyenv.run | bash
その後、Set up your shell environment for Pyenvに従い、環境変数等の設定を行う
$ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
$ echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
$ echo 'eval "$(pyenv init -)"' >> ~/.bashrc
$ source ~/.bashrc
ここまで来たら、ようやくバージョン確認
$ pyenv --version
pyenv 2.4.17
動いていそう
pyenvを用いて、pythonをインストールし使えるようにする
現在地の確認
$ pyenv versions
* system (set by /home/fleagne/.pyenv/version)
$ python --version
Command 'python' not found, did you mean:
command 'python3' from deb python3
command 'python' from deb python-is-python3
もちろんこの時点では特になし
3.12.*でインストールできるものを探す
$ pyenv install --list | grep 3.12
3.12.0
3.12-dev
3.12.1
3.12.2
3.12.3
3.12.4
3.12.5
3.12.6
3.12.7
miniconda3-3.12-24.1.2-0
miniconda3-3.12-24.4.0-0
miniconda3-3.12-24.5.0-0
miniconda3-3.12-24.7.1-0
miniconda3-3.12-24.9.2-0
pypy2.7-7.3.12-src
pypy2.7-7.3.12
pypy3.9-7.3.12-src
pypy3.9-7.3.12
pypy3.10-7.3.12-src
pypy3.10-7.3.12
3.12.7を入れてみる
$ pyenv install 3.12.7
Downloading Python-3.12.7.tar.xz...
-> https://www.python.org/ftp/python/3.12.7/Python-3.12.7.tar.xz
Installing Python-3.12.7...
Installed Python-3.12.7 to /home/fleagne/.pyenv/versions/3.12.7
$ pyenv versions
* system (set by /home/fleagne/.pyenv/version)
3.12.7
$ pyenv global 3.12.7
$ python --version
Python 3.12.7
globalは特定バージョンのPythonをグローバル設定として指定
gitリポジトリごとに設定したい場合は、pyenv local x.y.z
で指定してあげる
Ollamaを使えるようにする
参考サイト
実行手順
参考サイトに則り、次のコマンドを実行
$ curl -fsSL https://ollama.com/install.sh | sh
>>> Installing ollama to /usr/local
[sudo] password for fleagne:
>>> Downloading Linux amd64 bundle
###...### 100.0%
>>> Creating ollama user...
>>> Adding ollama user to render group...
>>> Adding ollama user to video group...
>>> Adding current user to ollama group...
>>> Creating ollama systemd service...
>>> Enabling and starting ollama service...
Created symlink /etc/systemd/system/default.target.wants/ollama.service → /etc/systemd/system/ollama.service.
>>> Nvidia GPU detected.
>>> The Ollama API is now available at 127.0.0.1:11434.
>>> Install complete. Run "ollama" from the command line.
$ ollama --version
ollama version is 0.4.0
alfredplpl氏がアップロードされているGGUF変換版をお借りして、LLM-jpの3.7Bを使用してみる
$ ollama run hf.co/alfredplpl/llm-jp-3-3.7b-instruct-gguf
pulling manifest
pulling 38edf85f7570... 100% 2.3 GB
pulling af860fc2490e... 100% 211 B
pulling a27aecf0c4dc... 100% 16 B
pulling 5999683d8e0d... 100% 193 B
verifying sha256 digest
writing manifest
success
>>> 日本の首都はどこですか?
日本の首都は東京です。
動いた!
Stable Diffusion web UIを使えるようにする
参考サイト
AUTOMATIC1111/stable-diffusion-webui
Stable Diffusion WebUIとは。Ubuntu 22.04にインストールする手順を解説。
CUDA Toolkit 12.6 Update 2 Downloads
実行手順
参考サイトに従いコマンドを実行する
ここまで進めてきたが、もろもろ変更しなければならないところもあるので、ご容赦を...
まずは依存関係を解決。もう入っているやつもあるけどあまり気にせず
$ sudo apt install wget git python3 python3-venv libgl1 libglib2.0-0
続いて、python3.11またはpython3.10を使うようにする
これは、pyenv
入れているので、こちらで対応しましょう
$ pyenv install 3.11.10
$ pyenv versions
system
3.11.10
* 3.12.7 (set by /home/fleagne/.pyenv/version)
$ pyenv global 3.11.10
$ python --version
Python 3.11.10
gitの方にしておきたいので、次のコマンドで
gitフォルダを作っていない場合は、mkdir
で作っておく
$ cd git
$ git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui
起動する
$ cd stable-diffusion-webui
$ bash ./webui.sh
動いた!
赤字でCannot locate TCMalloc. Do you have tcmalloc or google-perftool installed on your system? (improves CPU memory usage)
みたいな警告メッセージが出ていたら、次のコマンドで依存関係をインストールしておくとよいかも
$ sudo apt install --no-install-recommends google-perftools
ここまで進めてから、2つめの参考サイトを見つける。CUDAのインストールなど行っていないし、いろいろとミスったかも...
参考サイトの3つ目を参考に、CUDA Tooklitをインストールする
$ wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-ubuntu2404.pin
$ sudo mv cuda-ubuntu2404.pin /etc/apt/preferences.d/cuda-repository-pin-600
$ wget https://developer.download.nvidia.com/compute/cuda/12.6.2/local_installers/cuda-repo-ubuntu2404-12-6-local_12.6.2-560.35.03-1_amd64.deb
$ sudo dpkg -i cuda-repo-ubuntu2404-12-6-local_12.6.2-560.35.03-1_amd64.deb
$ sudo cp /var/cuda-repo-ubuntu2404-12-6-local/cuda-*-keyring.gpg /usr/share/keyrings/
$ sudo apt-get update
$ sudo apt-get -y install cuda-toolkit-12-6
NVIDIA Driverをインストールする
$ sudo apt-get install -y nvidia-open
ここを更新し忘れて追えなくなってしまったのでクローズ。