Windowsのノートパソコンを設定していくよ

設定していくマシンは
Alienware m17 R5
AMD Ryzen 7 6800H
64GBメモリ
2TB SSD
GeForce RTX 3060 (3070にするべきだった)
Windows 11 Pro 日本語
開発用に設定していきます。Windowsはよく分かっていません。

このマシンはWSLを使わない方針で進めていきます。

電源を入れると設定が始まる。
- ネットワーク
(アップデートの確認)
(タッチパネルの反応が慣れなくてボタンが勝手に押されてしまったのでUSBマウスを接続) - デバイスの名前
(再起動) - 選択肢: 個人用 or 職場/学校用
(選ばずにこれを書いていたら、またデバイスの名前をきいてきて、そして再起動) - Microsoftエクスペリエンスのロックを解除する
- Microsoftアカウントでサインインする
- Windows Hello
- PINのセットアップ
- デバイスのプライバシー
- 位置情報、デバイスの検索以外はいいえに
- エクスペリエンスのカスタマイズ
- 開発のみ
- PCからAndroidスマートフォンを使用する
(更新プログラムの確認)
(Windowsの起動)

Windows Updateが始まる前にプライバシーとセキュリティ > デバイスの暗号化 をオフに
(前回はこれにやられた)
Windows Update > 詳細のオプション > 「更新を完了するために再起動が必要な場合に通知を受け取る」をオンに
Windows Updateを何度か繰り返す
- Windows 11 Version 22H2
- KB5023778

Windowsの設定の続き
- デスクトップがOneDriveで同期されているのをやめる。
- 設定 > アカウント > Windows バックアップ
- OneDriveフォルダーを同期しています > 同期の設定を管理 > 「フォルダーの同期を停止」をクリック。その後、バックアップの開始を押さないように。
- 設定 > アカウント > Windows バックアップ
- アプリから不要なアプリをアンインストール
- Cortanaはアンインストールできないがオフにはできる。(GPT4になったりしないのかな)
- 個人用設定 > タスクバー
- 検索アイコンのみ
- ウィジェットおよびチャットをオフ
- タスクバーを自動的に隠す
- プライバシーとセキュリティ > 検索アクセス許可
- 検索のハイライトを表示するをオフ

続きをと思って開いたら、新たなWindows Updateが…
- KB5025239
- KB890830
- KB5025915

1Passwordのインストール
- Windows Download
- 携帯の1Passwordの左上のアイコンをクリックし「別のデバイスをセットアップ」表示できるQRコードを使うのが簡単。
- SSHの設定は次のScoopの後にする。

Scoop
- Scoopに書かれている通りPowershell(通常ユーザー)で次の2行を実行。
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
irm get.scoop.sh | iex
7zip git
まず scoop install 7zip git
が基本かと思ったけど、 https://github.com/ScoopInstaller/Scoop を見るとglobalに入れているので従ってみる。opensshはWindows 10以降ではsystemのを使ったほうがいいというメッセージが出るので、ここに書かれているのは古い可能性もあるが。
scoop install sudo
sudo scoop install 7zip git --global
--global
で入れたせいか、git は再起動(再ログイン)しないと使えない。
再起動後、gitの最低限の設定だけしておく。
git config --global user.name "Dare Sore"
git config --global user.email "daresore@example.com"
scoopのダウンロードを並列にするaria2を入れて、scoop update
を実行。gitをインストール後の初回のupdate
でリポジトリーがgitのものに変換される。
scoop install aria2
scoop update
1passwordの設定
1password-cli をインストールしておく。
scoop install 1password-cli
https://developer.1password.com/docs/cli/app-integration を参考に
1Password > Settings > Developer > Connect with 1Password CLI
動作を確認
op signin
1PasswordのSSHの設定
https://developer.1password.com/docs/ssh を参考に設定する。
git config --global core.sshCommand "C:/Windows/System32/OpenSSH/ssh.exe"
ssh -T git@github.com
でGitHubへアクセスできることを確認。再起動が必要でした。

ctrl2cap
capsをctrlに変更。なぜか、名前が反対の ctrl2cap
scoop bucket add sysinternals
scoop install ctrl2cap
そのままでは ctrl2cap /install
してくれていないので、
cd C:\Users\YOU\scoop\apps\ctrl2cap\current\
sudo ctrl2cap /install
再起動

Dropbox
からインストール。
DropboxのLogseqフォルダーが同期されるのを待って、オフラインアクセスを許可。
Logseq
scoop bucket add extras
scoop install logseq

Vim
scoop install vim
Emacs (Spacemacs)
scoop install emacs
scoop install tar
# Nerd Font versionを入れる。しかし、入るのはSauceCodePro NF?
scoop bucket add nerd-fonts
scoop install SourceCodePro-NF
# Optional
scoop install ripgrep
# emacsのhome dirがこのマシンでは$HOME/AppData/Roamingになっていた
git clone https://github.com/syl20bnr/spacemacs $HOME/AppData/Roaming/.emacs.d
emacs

Visual Studio Code
scoop install vscode

Unity
Unity Hubをインストール。
自動的にUnity LTSがインストールされる。
以下の追加モジュールを指定した。
- Microsoft Visual Studio Community 2019
- Unityによるゲーム開発 (これだけが必須)
- .NETデスクトップ開発
- C++によるデスクトップ開発
- C++によるモバイル開発
- Android Build Support
- Windows Build Support (IL2CPP)

Clojure (Java, Node.js)
LogseqのWindowsでの開発のページ にある通り
scoop bucket add scoop-clojure https://github.com/littleli/scoop-clojure
scoop bucket add extras
scoop bucket add java
# scoop install java/openjdk clojure clj-deps babashka leiningen nodejs-lts
scoop install java/openjdk17
scoop install clojure clj-deps babashka leiningen
openjdkだとJava 19が入るが、現在、Clojureが公式にサポートしているのは17まで なので17を指定。
clojureのインストールでopenjdkが入ってないよといわれるが気にしない。
Javaのバージョン切り替えはうまくいっていないようなので、何か問題が発生するようなら17のuninstallしてしまえば、VSがインストールしたJava 8が残るはず。
nodejs-ltsもバージョンをコントロールできないので、将来のためにnvmを使うことにする。
scoop install nvm
nvm install lts
nvm use 18.16.0

WSA
Windows Subsystem for Android をインストールする。
スタートメニューに最初からあるKindleをクリックすればインストールが始まる。

JetBrains Toolbox
- IntelliJ
- Rider
- WebStorm

Python
(2023/04/23 更新)
Publishing Python Packages を読んだところ、py.exeによるマルチバージョンの切り替えがいまどきのよう。そのためには、python.orgから直接ダウンロードしたバージョンの使用がいい。
Python 3.9, 3.10, 3.11 のそれぞれ最新版をインストール。
- 全ユーザー
- py.exeはインストールする。
- python.exeはパスに入れない。
こうすると、py.exeだけがパスに入っていてpython.exeやpip.exeがパスに入っていないため、pythonを起動しようとするとMS Storeアプリが起動する状態になる。
それぞれのバージョンのPythonはpy -3.9
, py -3.10
, py -3.11
のように起動することで選択できる。
venv
個別のプロジェクトではvenvを用いて環境を構築するとよい。
mkdir hoge
cd hoge
py -3.10 -m venv venv
.\venv\Scripts\activate
py (pythonでもよい)
>>> import sys
>>> sys.executable
'C:\\somewhere\\hoge\\venv\\Scripts\\python.exe'
pipx
pipxをインストールする。
> py -m pip install --user pipx
> py -m pipx ensurepath
これにより、pipxを $HOME\AppData\Roaming\Python\Python311\Scripts
にインストールし、それをPATHに追加する。--user
をつけたことにより、この場所はpython.exeが入っている場所とは異なるため、グローバルに呼べるようになったのはあくまでもpipxのみ。
pipenv
上記のpipxを用いてpipenvをインストール。
> pipx install pipenv
pipxにより、pipenvは $HOME\.local\bin
にインストールされる。
仮想環境をカレントディレクトリに作成させるために、環境変数を設定
[Environment]::SetEnvironmentVariable("PIPENV_VENV_IN_PROJECT", 1, "User")

PyTorch
現在のprerequisitesを確認すると、Python 3.9, CUDA 11.8
Python 3.9はすでに準備済みなので、CUDA 11.8をインストール。
cuDNNも必要。
v8.9.0をダウンロードして C:\ProgramData\NVIDIA\CUDNN\v8.9.0
に配置。環境変数のPATH
にC:\ProgramData\NVIDIA\CUDNN\v8.9.0\bin
を追加。
環境変数を変えているので、念のため再起動
動作確認
実際にPyTorchのインストールは個別のプロジェクトで行う。
プロジェクトの用意
> mkdir hoge
> cd hoge
> py -3.9 -m venv .venv
> .\.venv\Scripts\activate
(.venv) > python -m pip install --upgrade pip setuptools
Pipfileを次のように用意
[[source]]
url = "https://pypi.org/simple"
verify_ssl = true
name = "pypi"
[[source]]
url = "https://download.pytorch.org/whl/cu118"
verify_ssl = true
name = "pytorch"
[packages]
torch = {version="*", index="pytorch"}
torchvision = {version="*", index="pytorch"}
torchaudio = {version="*", index="pytorch"}
[dev-packages]
[requires]
python_version = "3.9"
インストール。 -v
は遅いので動作をモニター。
(.venv) > pipenv install -v
動作確認
(.venv) PS D:\Works\hoge> python
Python 3.9.13 (tags/v3.9.13:6de2ca5, May 17 2022, 16:36:42) [MSC v.1929 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import torch
>>> x = torch.rand(5, 3)
>>> print(x)
tensor([[0.9224, 0.2216, 0.6120],
[0.9351, 0.3577, 0.9264],
[0.6537, 0.3219, 0.8121],
[0.0826, 0.8939, 0.3921],
[0.6482, 0.7822, 0.0791]])
>>> torch.cuda.is_available()
True