0. 背景
諸般の事情によりPCを買い換えたためイチから環境構築をする羽目になったので、せっかくだから記録を残しながら進めてみた次第です。同じような記事は既にあるでしょうから備忘録としての意味合いが強いです。エディタ周りのセットアップは大学独自の設定を多く利用しているのでここには書いていません。
(学科内のscrapboxにこそっと載せた内容のうち独自設定を除いた部分を公開しています。見覚えがある方はそっと察してください......笑)
1.Linux環境(WSL2+Ubuntu)の導入
WSLとは
そんな説明は要らないから早くインストールしたいという方はこちら
ひとことで言うとMicrosoftが提供しているLinux環境です。
公式ページでは以下のように説明されていました
Windows Subsystem for Linux (WSL) は Windows の機能であり、別の仮想マシンやデュアル ブートを必要とせずに、Windows マシンで Linux 環境を実行できます。 WSL は、Windows と Linux の両方を同時に使用する開発者にシームレスで生産性の高いエクスペリエンスを提供するように設計されています。
あまり自信がないのでこれ以上の言及は避けます……笑
Windows内のファイルとスムーズにアクセスできるようになっている(Macには及ばない)ので、VirtualBox等を使った環境よりもこちらの方がわたしは好きです。
WSL1とWSL2がありますが、新しくて高機能なWSL2を使います。1と2の違いについて気になる場合はこちらを参照してみてください1。
CLIの選択
Macで言うターミナルからインストールを行うのですが、Windwsではそれに相当するものがデフォルトで複数あります。
調べた限りではどれを使っても大丈夫そうでしたが、ここは公式ページに従ってx86ではないPowerShellを使うことにします。
PowerShellの違いについて(読まなくても良いので折りたたみます)
こちらのサイトによると、
PowerShellのx86版とx64版は、それぞれ異なる動作環境に対応しています。x86版は32ビット環境で使用され、x64版は64ビット環境で利用されます。
のように説明がなされており、両者は異なるビット環境に対応したPowerShellらしいです。(x86)と書かれていない方が64ビット版2みたい。
公式ページでも以下のように書かれているので今回は(x86)でない方のPowerShellを使いました。
64 ビット オペレーティング システムを実行している場合は、32 ビット バージョンを使用する特別な理由がない限り、64 ビット バージョンの Windows PowerShell を使用することをお勧めします。
使っているパソコンのビット数については設定→システム→バージョン情報から確認できます。画像付きの説明はこちらからどうぞ。
蛇足ですがISEとそうでないPowerShellの違いについても少しだけ。
調べた限りではかなりいろいろな部分が違うようでした。ふわっとした理解しかしていないので詳しいことは何もわかりません。記事内でも触れられていましたが、公式ページにも以下のような記載がありISEはあまり推奨されていないようです。
PowerShell ISE は、アクティブな機能開発ではなくなりました。 Windows の出荷コンポーネントとして、セキュリティと優先度の高いサービス修正プログラムに対して引き続き正式にサポートされています。 現在、Windows から ISE を削除する予定はありません。
WSL2のインストール
インストールにあたって、公式ページに記載の前提条件
以下のコマンドを使用するには、Windows 10 バージョン 2004 以降 (ビルド 19041 以降) または Windows 11 を実行している必要があります。
を確認します。以下、この条件が満たされていることを前提に進めます。
1. PowerShellを管理者モードで起動3
$ wsl --install --no-distribution
ディストリビューションは後から選択したいので、--no-distributionオプションをつけました。オプションをつけずに実行するとUbuntuのインストールが行われます。
2. PCを再起動
WSL2のインストールが終わると再起動を求められます。
Linux用Windowsサブシステム等の有効化を行うためだと思います。
Ubuntuのインストール
1. インストールできるディストリビューションを確認
$ wsl --list --online
使用可能なディストリビューションの一覧が表示されます。
インストールできる有効なディストリビューションの一覧を次に示します。
'wsl.exe --install <Distro>' を使用してインストールします。
NAME FRIENDLY NAME
Ubuntu Ubuntu
Ubuntu-26.04 Ubuntu 26.04 LTS
Ubuntu-24.04 Ubuntu 24.04 LTS
Ubuntu-22.04 Ubuntu 22.04 LTS
openSUSE-Tumbleweed openSUSE Tumbleweed
openSUSE-Leap-16.0 openSUSE Leap 16.0
SUSE-Linux-Enterprise-15-SP7 SUSE Linux Enterprise 15 SP7
SUSE-Linux-Enterprise-16.0 SUSE Linux Enterprise 16.0
kali-linux Kali Linux Rolling
Debian Debian GNU/Linux
AlmaLinux-8 AlmaLinux OS 8
AlmaLinux-9 AlmaLinux OS 9
AlmaLinux-Kitten-10 AlmaLinux OS Kitten 10
AlmaLinux-10 AlmaLinux OS 10
archlinux Arch Linux
FedoraLinux-44 Fedora Linux 44
FedoraLinux-43 Fedora Linux 43
eLxr eLxr 12.12.0.0 GNU/Linux
OracleLinux_7_9 Oracle Linux 7.9
OracleLinux_8_10 Oracle Linux 8.10
OracleLinux_9_5 Oracle Linux 9.5
SUSE-Linux-Enterprise-15-SP6 SUSE Linux Enterprise 15 SP6
好きなものを入れて構わないのですが、Ubuntuがメジャーなのではないでしょうか。
(体感ではありますが、マイナーな道へ進むほど何かあったときに自力でどうにかしないといけないので初学者のうちは右にならっておくのが無難だと思います)
2. 好きなディストリビューションをインストール
$ wsl --install -d <DistroName>
<DistroName>には 1. で確認したNAMEを入れてください。
3. アカウントを登録する
インストールが完了すると、ユーザー名とパスワードの設定を求められます。
パスワードは打ち込んでも画面内に表示されないので注意してください。
sudo4コマンドを実行する際に必須なので忘れないようにします。
ダウンロードしています: Ubuntu 26.04 LTS
インストールしています: Ubuntu 26.04 LTS
ディストリビューションが正常にインストールされました。'wsl.exe -d Ubuntu-26.04' を使用して起動できます
Ubuntu-26.04 を起動しています...
Provisioning the new WSL instance Ubuntu-26.04
This might take a while...
Create a default Unix user account: <user name>
New password:
Retype new password:
passwd: password updated successfully
usermod: no changes
Help improve Ubuntu!
Help us improve Ubuntu features and compatibility by sharing system reports with Canonical.
Reports are sent anonymously and do not contain any personal data.
For legal details, please visit: https://ubuntu.com/legal/systems-information-notice
We will save your answer to Windows and will only ask you once.
Would you like to opt-in to platform metrics collection (Y/n)? To see an example of the data collected, enter 'e'.
[Y/n/e]:
最後の質問はUbuntuへの情報提供を許可するか聞かれています。Ubuntuはオープンソースなので収集したデータが開発に役立てられます(詳しくはこちら)。許可しないと機能が制限されるようなことはないので好きに設定して大丈夫です。
2.各種セットアップ
以上でLinux環境の導入は終わりましたが、ここからさらに必要な設定を行っていきます。
パッケージマネージャーの更新
Ubuntuが持っているパッケージ管理ツールを最新に更新します。
-yは「本当にインストールしますか?」という質問をスキップするためのオプションです。
$ sudo apt update && sudo apt upgrade -y
sudoなので先ほど設定したパスワードを聞かれます。
打ち込んだパスフレーズは表示されないので、間違えたらCtr-Cで抜け出してやり直します。
以降、aptを実行する時には必ず先にこのコマンドを実行するようにしてください。
開発ツールのインストール
gccやmakeなど最低限必要なコマンドをまとめてインストールしてくれます
$ sudo apt install -y build-essential
その他必要な物が出てきたらその都度インストールしていけば大丈夫です。
ターミナルとbashのセットアップ
まず、以下のコマンドで日本語パッケージをインストールします。
$ sudo apt install -y lungage-pack-ja
これから設定ファイルに書き込んでターミナルの出力を日本語にしたり、見た目を少しいじったりしていきます。
1. 現在の.bashrcをコピーする
ホームディレクトリに移動(引数を指定せずにcdを実行)して
$ ls -a
を行うと.bashrcという設定ファイルが見つかります。なにか失敗したときに戻れるように.bashrc.orgという名前でコピーをつくっておきます。
$ cp .bashrc .bashrc.org
2. ターミナルを複数立ち上げる
万が一ログインできなくなってしまったときのために、もうひとつターミナルを立ち上げてログインしておきます。
PowerShellの場合はウィンドウ上部+ボタンから追加してwslと打ち込んでください。
3. .bashrcに書き込む
Vimで設定ファイルを編集しに行きます。慣れるまでは非常に使いづらいので、嫌な人はお好みのエディタのインストール後に戻ってきてください。最低限の操作しかここには書かないのですが、詳しくはこちらあたりが読みやすく書かれていると思います。
間違えたと感じたときはEscを2~3回押して:q!です。
その後Enterすれば保存せずに終了します
①.bashrcをvimで開く
$ vi .bashrc
②Shift-gでファイルの末尾に移動
③$キーを押して行末へ移動
④以下をコピー
#alias settings
alias cp='cp -i'
alias mv='mv -i'
alias mkdir='mkdir -p'
alias cat='cat -n'
alias gcc='gcc -Wno-implicit-int'
#custom prompt
PS1='\[\e[1m\]\[\e[93m\]\u\[\e[39m\]@\[\e[92m\]\h\[\e[39m\]:\[\e[96m\]\w\[\e[39m\]\[\e[0m\]$ '
⑤aを押して入力モードへ
⑥Shift-Insertでクリップボードの内容をペースト
⑦Escで入力モードから抜け出す
⑧:wqを入力
⑨設定ファイルを読み込む
$ source .bashrc
⑩プロンプト($)の左側の見た目が変わっていれば成功
4. .profileに書き込む
①.profileをVimで開く
$ vi .profile
②Shift-gでファイルの末尾に移動
③$キーを押して行末へ移動
④以下をコピー
#custom settings
LANG=ja_JP.UTF-8
export LESS="-RX"
set -o ignoreeof
set -o noclobber
#command histories
shopt -s histappend
HISTSIZE=1000000
HISTFILESIZE=1000000
⑤aを押して入力モードへ
⑥Shift-Insertでクリップボードの内容をペースト
⑦Escで入力モードから抜け出す
⑧:wqを入力し、Enter
⑨設定ファイルを読み込む]
$ source .profile
各設定についての説明はしませんが、新しいLinuxの教科書の内容を主に参考にしています。Linux関係について気になる場合は参照してみてください。
.bashrcと.profileのちがい(読み飛ばして良いです)
両者は読み込まれるタイミングが異なり、.bashrcは非ログインシェルの場合に、.profileはログインシェルの場合(=ログイン時)にそれぞれ読み込まれる5 ものらしいです。manコマンドはもはや解読不能で早々に諦めましたが、こちらのサイトがかみ砕いて説明されていて分かりやすかったです。わたしもこの方針に従って使い分けをしました(したつもりです)
