Open19

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

akrisnakrisn

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

開発用に設定していきます。Windowsはよく分かっていません。

akrisnakrisn

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

akrisnakrisn

電源を入れると設定が始まる。

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

Windows Updateが始まる前にプライバシーとセキュリティ > デバイスの暗号化 をオフに
(前回はこれにやられた)

Windows Update > 詳細のオプション > 「更新を完了するために再起動が必要な場合に通知を受け取る」をオンに

Windows Updateを何度か繰り返す

  • Windows 11 Version 22H2
  • KB5023778
akrisnakrisn

Windowsの設定の続き

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

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

  • KB5025239
  • KB890830
  • KB5025915
akrisnakrisn

1Passwordのインストール

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

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へアクセスできることを確認。再起動が必要でした。

akrisnakrisn

ctrl2cap

capsをctrlに変更。なぜか、名前が反対の ctrl2cap

scoop bucket add sysinternals
scoop install ctrl2cap

そのままでは ctrl2cap /install してくれていないので、

cd C:\Users\YOU\scoop\apps\ctrl2cap\current\
sudo ctrl2cap /install

再起動

akrisnakrisn

Dropbox

https://www.dropbox.com/desktop

からインストール。

DropboxのLogseqフォルダーが同期されるのを待って、オフラインアクセスを許可。

Logseq

scoop bucket add extras
scoop install logseq
akrisnakrisn

Vim

scoop install vim

Emacs (Spacemacs)

https://github.com/syl20bnr/spacemacs#windows

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
akrisnakrisn

Unity

Unity Hubをインストール。

https://unity.com/ja/download

自動的にUnity LTSがインストールされる。
以下の追加モジュールを指定した。

  • Microsoft Visual Studio Community 2019
    • Unityによるゲーム開発 (これだけが必須)
    • .NETデスクトップ開発
    • C++によるデスクトップ開発
    • C++によるモバイル開発
  • Android Build Support
  • Windows Build Support (IL2CPP)
akrisnakrisn

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
akrisnakrisn

Python

(2023/04/23 更新)

Publishing Python Packages を読んだところ、py.exeによるマルチバージョンの切り替えがいまどきのよう。そのためには、python.orgから直接ダウンロードしたバージョンの使用がいい。

https://www.python.org/downloads/windows/

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

https://sourcery.ai/blog/python-best-practices/

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")
akrisnakrisn

PyTorch

現在のprerequisitesを確認すると、Python 3.9, CUDA 11.8

https://pytorch.org/get-started/locally/

Python 3.9はすでに準備済みなので、CUDA 11.8をインストール。

https://developer.nvidia.com/cuda-11-8-0-download-archive?target_os=Windows&target_arch=x86_64&target_version=11&target_type=exe_local

cuDNNも必要。

https://developer.nvidia.com/rdp/cudnn-download

v8.9.0をダウンロードして C:\ProgramData\NVIDIA\CUDNN\v8.9.0 に配置。環境変数のPATHC:\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