プログラマーのメモ書き

伊勢在住のプログラマーが気になることを気ままにメモったブログです

Windows Update の自動更新を停止

Windows 10 Pro だと、グループポリシーエディタを使えば、 Windows Update の自動更新を停止することができます。

開発が佳境なタイミングでアップデートがかかり、トラブルになるのが嫌なので、以前から設定していました。ネットにもたくさん情報があるので、迷ったのですが、まだ自分で記事にまとめてなかったので、いまさらながらメモっておきます。

設定前

Windows Update の画面を開くとこんな感じになってます。見慣れた画面ですね。

f:id:junichim:20210930115516p:plain

設定方法

Windows 10 のタスクバーの検索から

gpedit.msc

と入力すると

f:id:junichim:20210930114748p:plain

のように、グループポリシーエディタが表示されるので、クリックして起動します。

起動したら、『ローカルコンピューターポリシー』->『コンピューターの構成』->『管理用テンプレート』->『Windows コンポーネント』->『Windows Update』 と進みます。

f:id:junichim:20210930115044p:plain

右側の項目一覧に『自動更新を構成する』があるので、ダブルクリックして構成を行います。

f:id:junichim:20210930115646p:plain

設定画面で『有効』を選択し、画面左下の『自動更新の構成』で

2 - ダウンロードと自動インストールを通知

を選択します。

こうすることで、更新プログラムの通知はされるのですが、ダウンロードやインストールはユーザーが操作しないと始まらない状態になります。

設定項目に問題がなければ『OK』を押して、PCを再起動します。

これで、設定完了です。

設定後

上記の設定を行うと、設定画面は、

f:id:junichim:20210930115315p:plain

のように変化し、ポリシーで設定内容が管理されている旨表示されます。

これで、勝手に Update が走って困ることは避けられますね。

参考

wsl2 への引っ越し

こちらの記事に書いたように、PC新調に伴い、 wsl 環境も一新したので、古い環境のファイルなどを移行しました。こちらは、その際のメモになります。

ファイルのコピー

Windows のエクスプローラから

\\wsl$\Ubuntu\home\mor

を指定すれば、 wsl 内のファイルを取得することができます。

なので、古いほうから必要なものをいったん Windows に吸い上げてコピーします。

アプリケーションのインストールなど

古い wsl 上で使っていたアプリケーションを改めて入れなおします。

hugo

mor@DESKTOP-DE7IL4F:~$ wget https://github.com/gohugoio/hugo/releases/download/v0.77.0/hugo_0.77.0_Linux-64bit.deb
(中略)
mor@DESKTOP-DE7IL4F:~$ sudo dpkg -i hugo_0.77.0_Linux-64bit.deb
[sudo] mor のパスワード:
以前に未選択のパッケージ hugo を選択しています。
(データベースを読み込んでいます ... 現在 35493 個のファイルとディレクトリがインストールされています。)
hugo_0.77.0_Linux-64bit.deb を展開する準備をしています ...
hugo (0.77.0) を展開しています...
hugo (0.77.0) を設定しています ...
mor@DESKTOP-DE7IL4F:~$

C/C++ 開発環境

mor@DESKTOP-DE7IL4F:~$ sudo apt install build-essential
mor@DESKTOP-DE7IL4F:~$ sudo apt install gdb

Java 開発環境

mor@DESKTOP-DE7IL4F:~$ sudo apt install default-jdk

.bashrc に JAVA_HOME を設定しておきます。

export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64/bin/java

aws cli

いままでは aws cli のバージョン 1 系を使ってましたが、この機にバージョン 2 系を入れます。公式のインストール方法に従ってインストールします。

mor@DESKTOP-DE7IL4F:~$ sudo apt install unzip
mor@DESKTOP-DE7IL4F:~$ curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
mor@DESKTOP-DE7IL4F:~$ unzip awscliv2.zip
Archive:  awscliv2.zip
(中略)
mor@DESKTOP-DE7IL4F:~$ sudo ./aws/install
You can now run: /usr/local/bin/aws --version
mor@DESKTOP-DE7IL4F:~$ 

確認

mor@DESKTOP-DE7IL4F:~$ aws --version
aws-cli/2.2.42 Python/3.8.8 Linux/5.10.16.3-microsoft-standard-WSL2 exe/x86_64.ubuntu.20 prompt/off
mor@DESKTOP-DE7IL4F:~$

設定は バージョン 1 も 2 も同じようなので、以前の設定ファイルを ~/.aws/ フォルダにコピーして完了です(パーミッションは 600 です)。

nvm/node.js

昔書いたこちらの記事を参考に改めてインストールしておきます。

mor@DESKTOP-DE7IL4F:~$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 14926  100 14926    0     0  83853      0 --:--:-- --:--:-- --:--:-- 83853
=> Downloading nvm from git to '/home/mor/.nvm'
=> Cloning into '/home/mor/.nvm'...
remote: Enumerating objects: 348, done.
remote: Counting objects: 100% (348/348), done.
remote: Compressing objects: 100% (297/297), done.
remote: Total 348 (delta 39), reused 155 (delta 26), pack-reused 0
Receiving objects: 100% (348/348), 207.69 KiB | 781.00 KiB/s, done.
Resolving deltas: 100% (39/39), done.
* (HEAD detached at FETCH_HEAD)
  master
=> Compressing and cleaning up git repository

=> Appending nvm source string to /home/mor/.bashrc
=> Appending bash_completion source string to /home/mor/.bashrc
=> Close and reopen your terminal to start using nvm or run the following to use it now:

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"  # This loads nvm bash_completion
mor@DESKTOP-DE7IL4F:~$

とりあえず node.js の v14 をインストールしておきます。

mor@DESKTOP-DE7IL4F:~$ nvm install --lts 14
Downloading and installing node v14.18.0...
Downloading https://nodejs.org/dist/v14.18.0/node-v14.18.0-linux-x64.tar.xz...
########################################################################################################################################################################################## 100.0%
Computing checksum with sha256sum
Checksums matched!
Now using node v14.18.0 (npm v6.14.15)
Creating default alias: default -> lts/* (-> v14.18.0)
mor@DESKTOP-DE7IL4F:~$

その他

jq を使ってるスクリプトがあるので、追加

mor@DESKTOP-DE7IL4F:~$ sudo apt install jq

VSCode の拡張機能をインストール

最近は、 wsl 上で作業を行う時も、 VSCode を使うので、こちらも整えておきます。

Remote WSL

VSCode 側の作業としては、こちらの記事で書いたように、拡張機能として Remote WSL を入れればOKです。

WSL 側の作業

mor@DESKTOP-DE7IL4F:~/work$ code .
Installing VS Code Server for x64 (7f6ab5485bbc008386c4386d08766667e155244e)
Downloading: 100%
Unpacking: 100%
Unpacked 1828 files and folders to /home/mor/.vscode-server/bin/7f6ab5485bbc008386c4386d08766667e155244e.
mor@DESKTOP-DE7IL4F:~/work$

その他

をそれぞれインストールしておきます。

なお、インストール先は、WSL 側にする必要があります。VSCode でWSL 側のフォルダを開いた状態で、拡張機能を選択すれば、 WSL 側にインストールされます。

まとめ

wsl 上で何を使っていたか調べるのに、意外と時間がかかってしまいましたが、これで必要なものは全部移せたはずです。旧環境が残っているうちに、もう少し使い込んで、抜けがないようにしたいと思います。

WSL2 のインストール

先日新調した PC の設定作業をぼちぼちやってます。

PC を新しくしたので、細々と使っている VirtualBox の動作さえ問題なければ、 WSL もいままでの WSL 1 をやめて WSL 2 に切り替えたいと思います(こちらの記事で少し触れてる件です)。

ということで、 VirtualBox の動作確認と WSL2 のインストールした際のメモをまとめておきます。

VirtualBox の動作確認

古いPC上では、Hyper-V が有効な状態だと、 VirtualBox の VM が起動するにはするのですが、突然停止したり、若干不安定な挙動でした。バージョン等は下記を参照。

  • Windows 10 Pro, 20H2
  • VirtualBox 6.1.18
  • CPU Core-i7 3770 第3世代

新PCでも確認します。

コントロールパネルの『Windows の機能の有効化または無効化』で一時的に Hyper-V を有効にして、同じことを試したところ、問題なく VM が動作します。これなら、 WSL2 に切り替えても問題なさそうです。こちらの環境は下記になります。

  • Windows 10 Pro, 21H1
  • VirtualBox 6.1.26
  • CPU Core-i9 11900K 第11世代

OS および VirtualBox そのものはバージョンが微妙に異なりますが、大きく違うとも思えません。なので、根拠のない勝手な憶測ですが、古いPCで問題があったのは、ひょっとしたら、CPUが古いせいもあるかもしれません。

なお、 WSL2 インストール前には、 Hyper-V の設定は元に戻しておきました。

WSL2 のインストール

WSL2 のインストールはめっちゃ簡単になってますね。コマンドプロンプトで、

wsl --install

とするだけだそうです(公式のドキュメントはこちら)。

やってみます。 管理者権限でコマンドプロンプトを起動し、コマンドを実行すると

f:id:junichim:20210928103418p:plain

するといろいろとメッセージが表示されて、処理が完了します。再起動すると、

f:id:junichim:20210928103526p:plain

のように、ユーザー名とパスワード設定を求められるので、それらを入力すれば終わりです。

めっちゃ簡単。

WSL の初期設定

お決まりの設定作業を行っておきます。

sudo apt update
sudo apt upgrade

日本語環境の導入。下記記事を参考にしました。

mor@DESKTOP-DE7IL4F:~$ locale -a
C
C.UTF-8
POSIX
en_US.utf8
mor@DESKTOP-DE7IL4F:~$ sudo apt install language-pack-ja
(中略)
mor@DESKTOP-DE7IL4F:~$ 
mor@DESKTOP-DE7IL4F:~$ locale -a
C
C.UTF-8
POSIX
en_US.utf8
ja_JP.utf8
mor@DESKTOP-DE7IL4F:~$ sudo update-locale LANG=ja_JP.utf8

ロケールを変更したら wsl を再起動します。確認。

mor@DESKTOP-DE7IL4F:~$ echo $LANG
ja_JP.utf8
mor@DESKTOP-DE7IL4F:~$ date
2021929日 水曜日 09:33:34 JST
mor@DESKTOP-DE7IL4F:~$

日本語環境になりました。タイムゾーンは日本標準時になっているようなので、変更しません。

マニュアルも日本語版を入れておきます。

mor@DESKTOP-DE7IL4F:~$ sudo apt install manpages-ja manpages-ja-dev
(中略)
mor@DESKTOP-DE7IL4F:~$ 

参考

WSL2 をインストールすると、『Windows の機能の有効化または無効化』が下記のように変化しました。

(インストール前)

f:id:junichim:20210928104147p:plain f:id:junichim:20210928104238p:plain

(インストール後)

f:id:junichim:20210928104219p:plain f:id:junichim:20210928104325p:plain

『Linux 用 Windows サブシステム』だけが変化しましたね。『Hyper-V』や『Windows ハイパーバイザープラットフォーム』にも変化がでるかと思いましたが、設定GUI上は、変化ないようです。

こちらの FAQ などにあるように、内部的に Hyper-V を使ってるのは間違いないようなので、よしなにやってくれてるのでしょう、きっと。

Windows Terminal のインストール

以前は、 WSL 1 を使うために、 wsltty をインストールして使っていたのですが、 2020年5月に Windows Terminal がリリースされたそうなので、そちらを試してみることにしました。

インストールは簡単で、 Microsoft Store から Windows Terminal を検索してインストールすれば終わりです。

設定

快適に使うため、いくつか設定を行います。

メニューから『設定』を選択します。

f:id:junichim:20210928125014p:plain

起動時のデフォルトターミナル

基本的には Ubuntu を使うので、起動時のターミナル種類を変更します。

『既定のプロファイル』を『Ubuntu』に変更します。

f:id:junichim:20210928125116p:plain

開始ディレクトリの変更

デフォルトのままだと、Ubuntu 起動時のディレクトリが、 Windows のユーザープロファイルフォルダ(C:\Users\ユーザー名)なので、 Ubuntu のホームディレクトリになるように変更します。

設定画面左側のバーから『プロファイル』の『Ubuntu』を選択し、『開始ディレクトリ』をデフォルトの『%USERPROFILE%』から、『//wsl$/ディストリビューション名/home/ユーザー名』に変更します。手元の環境だと、『//wsl$/Ubuntu/home/mor』になります。

f:id:junichim:20210928130534p:plain

これで、 Windows Terminal を起動すれば、 Ubuntu が ホームディレクトリで立ち上がります。

フォントとか色とかは使いながら変更しようと思います。

なお、こちらの記事などでは、ディストリビューション名にバージョン番号が含まれています。インストール方法により、ディストリビューション名が異なるのかもしれません。

手元の環境のディストリビューション名は、

C:\Users\mor>wsl --list -v
  NAME      STATE           VERSION
* Ubuntu    Running         2

C:\Users\mor>

で、確認できます(-vなしでもできますよ)。