2024/08/27(火)kv-0.4.57

kvライブラリを0.4.57にアップデートしました。

今回は、
  • 以前にるふぁさんにご指摘頂いた、defint_autostepで使用する級数の次数を1にしたときに正しく計算できていなかったバグの修正。
  • ode_maffineに自動微分型を指定し、なおかつcallback関数を指定したとき、 callback関数が初期値に関する微分の情報をも渡してくれるように変更。
の2点です。後者はとある研究で必要になって機能追加しました。

大したアップデートではないですが、一応2つ溜まったので。

2024/05/07(火)Ubuntu 24.04 インストール (オマケ) WSL2

はじめに

Ubuntu 24.04 インストールシリーズのオマケとして、Windows 10/11のWSL2のインストールについて書いてみます。

WSLについて書くのは、2016年のbash on Ubuntu on Windowsを試してみるの記事以来です。当時はまだWSLとは呼ばれていませんでした。WSL1からWSL2になって仮想マシンを使うようになって性能及び互換性が向上し、またWSL-gとなってX serverを別にインストールしなくてもGUIアプリを動かすことができるようになりました。ちょうどWSL2の中に入れられるLinuxとしてUbuntu 24.04も出たので、ここらでインストール方法についてまとめてみました。Windows 10でもWindows 11でも基本的には同じと思いますが、まっさらなWindows 10に入れてみました。

マシンに慣れていない人でも分かるように、画像をたくさん貼り付けてみました。プログラミングの演習のためにパソコンを設定する大学1年生あたりを想定しています。今更ですが買ったばかりのマシンに設定することを想定するなら、Windows 11でやれば良かった…

インストール

VT-x

WSL2になって仮想マシンを使うようになって性能が向上したのですが、それと引き換えに、VT-xと呼ばれる機能をBIOS(正確にはUEFI?)で有効にする必要があります。ほとんどのマシンで有効になっているとは思いますが、もしなっていない場合、BIOSに入って有効にする必要があります。入り方はマシン毎に千差万別なので説明のしようもありませんが、起動時にDEL連打、もしくはF2連打のマシンが多い気がします。うまくBIOSに入れたら、Intel VT-x (Intel CPUの場合) もしくはAMD-V Virtualization (AMD CPUの場合)を探してオンにして下さい。

Windowsの機能の有効化

「Windowsの機能の有効化または無効化」(Windows10なら、スタートボタン→Windowsシステムツール→コントロールパネル→プログラム→Windowsの機能の有効化または無効化)で、
  • Linux用Windowsサブシステム
  • 仮想マシンプラットフォーム
の2つにチェックを入れて再起動する必要があります。

wsl01.png

WSLを最新にアップデート

自分が試した限り、ストアでインストールする前にこの作業をやっておかないとWSL1でインストールされてしまい、後でアップデートの作業が必要になりました。先にこれをやっておくのがお薦めです。

まず、Windows PowerShellを管理者モードで起動します。Windows10では、スタートボタンを右クリックし、「Windows PowerShell(管理者)」を選択します。

wsl02.png
wsl03.png


ここで、「wsl --version」としてみると、自分の場合は--versionというオプションは無いと言われました。これは、wslコマンドがとても古いことを意味しています。「wsl --update」と打ち込んで最新にします。

wsl04.png


これにより、
WSL バージョン: 2.1.5.0
カーネル バージョン: 5.15.146.1-2
WSLg バージョン: 1.0.60
MSRDC バージョン: 1.2.5105
Direct3D バージョン: 1.611.1-81528511
DXCore バージョン: 10.0.25131.1002-220531-1700.rs-onecore-base2-hyp
Windows バージョン: 10.0.19045.4291
になりました。

Microsoft StoreからUbuntu 24.04をインストール

ここでMicrosoft Storeを起動し、Ubuntu 24.04を検索してインストールします。どういうわけだか、「WSL」では検索に引っかからず、「ubuntu」だと見つかりました。

wsl05.png
wsl06.png


Ubuntu 24.04 LTSを「入手」でインストールします。終わったら、そのまま「開く」で起動して下さい。スタートメニューに登録された「Ubuntu 24.04 LTS」を起動でもOKです。

wsl07.png


WSLのターミナルが起動し、しばらく待った後、「Enter new UNIX username:」と聞かれるので、ユーザ名(たぶん半角英数のみ、先頭はアルファベット)を決めます。次にパスワードを聞かれるので、2度入力して下さい。このパスワードはアプリケーションのインストール等、管理者(root)になる必要があるときに何度も聞かれるので、忘れないようにしてください。

wsl08.png


この状態で、Windows PowerShellの方で「wsl --list -v」してみると、ちゃんとUbuntu 24.04がVERSION 2で入ったことが確認できました。

wsl09.png

ファイルのやりとり

この状態で、Windows側からWSL側のファイルを見るには、エクスプローラに追加されている「Linux」という項目を使うことができます。

wsl12.png


たとえばユーザ名が「kashi」なら、ここからhome→kashiと辿っていけばホームディレクトリの内容が見えます。また、「\\wsl.localhost\」とエクスプローラに打ち込んでも同じです。

wsl13.png


逆にWSL側からWindows側のファイルは、「/mnt/c/」からアクセスすることができます。

アプリケーションの追加

ubuntuの最新化

ここから必要なアプリケーションをaptコマンドを使って追加していきますが、その前に絶対必要な作業があります。WSLのターミナルで、
sudo apt update
sudo apt upgrade
として、Ubuntu 24.04を最新にしてください。特に最初の1行が重要で、これをやらないとこの先のaptコマンドでのインストールが失敗してしまいます。

wsl10.png
wsl11.png

日本語化

メッセージ等を日本語化するため、WSLのターミナルで
sudo apt install -y language-pack-en
sudo apt install -y language-pack-ja
sudo update-locale LANG=ja_JP.UTF8
として、いったんWSLターミナルを閉じて再度スタートメニューから起動します。language-pack-enの方はすぐには不要かもですが、無いと何かと不便なのでこちらもついてに入れておきます。自分の環境では、Visual Studio CodeでのWSLターミナルで問題が発生しました。

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

ここまで来れば、後は好きなように環境を整えていきます。以前と違ってWSLターミナルの中ではWindowsのIMEを使って日本語を書くことが出来るようになっています。GUIアプリもgnuplotなどの簡単なアプリなら動きます。自分は、Ubuntu 24.04 インストール (リンク集)のうちからapache, sambaなどを除き、適当に抜粋して次のようなものを入れてみました。
sudo apt install -y texlive-full
sudo apt install -y nkf
sudo apt install -y gnuplot
sudo apt install -y tgif
sudo apt install -y pdfarranger
sudo apt install -y pdftk-java
sudo apt install -y build-essential
sudo apt install -y clang
sudo apt install -y libboost-all-dev
sudo apt install -y default-jdk
sudo apt install -y lua5.4
sudo apt install -y liblua5.4-dev
sudo apt install -y luajit
sudo apt install -y gfortran
sudo apt install -y python3
sudo apt install -y python3-dev
sudo apt install -y python3-numpy
sudo apt install -y python3-scipy
sudo apt install -y python3-matplotlib
sudo apt install -y python3-sympy
sudo apt install -y python3-mpmath
sudo apt install -y ipython3
sudo apt install -y python-is-python3
sudo apt install -y octave
sudo apt install -y octave-dev
sudo apt install -y libgmp-dev
sudo apt install -y libmpfr-dev
sudo apt install -y gcc-multilib
sudo apt install -y g++-multilib
sudo apt install -y nim
sudo apt install -y lv
この段階でも、
  • メモ帳等、任意のwindowsのエディタ
  • (抵抗が無ければ) vi, nano等のLinuxのターミナルで動くエディタ
を用いてhome directoryにファイルを作成し、プログラミングを行ったり、TeXのコンパイルを行う(pdfを見るのはEdge等windowsアプリで)ことが出来ます。

wsl14.png

Visual Studio Codeを使う

Visual Studio Codeという、Windows上で動くエディタがあります。これは、そのWindowsにインストールされたWSLと連携する機能を持っており、なかなか便利です。これをインストールして連携させてみます。

Microsoft Storeで、「visual studio code」で検索すると見つかります。

wsl16.png
wsl17.png


インストールして起動したら、こんな感じになりました。

wsl18.png


まずは、左下の歯車アイコン→Extensionで、「Japanese Language Pack for Visual Studio Code」を検索し、インストールします。「Change Language and Restart」というボタンを押せば、メニュー等が日本語になります。

wsl19.png


同様に、左下の歯車アイコン→拡張機能で、「WSL」を検索し、インストールします。これでWSL連携機能が使えるようになります。いったん、Visual Studio Codeを閉じて、WSLのターミナルで、「code .」(末尾のドットに注意)と入力すると、WSL側のカレントディレクトリが見えた状態でVisual Studio Codeが開きます。「このフォルダの作成者を信頼しますか?」などと聞かれたら「はい」。

wsl20.png


更に上部のメニューで「ターミナル→新しいターミナル」とすれば、WSLのターミナルがVisual Studio Codeの画面内に現れて、以降はVisual Studio Codeの画面内だけで作業が完結するようになります。

wsl21.png


TeXの執筆作業は、こんな感じになりました。この画面では、vscode-pdfというpdfをVisual Studio Codeの中で見ることができるようになる拡張機能を追加しています。LaTeX Workshopという拡張機能を入れるとすごく便利らしいですが、それは検証してません。

wsl15.png

GUIアプリケーションを(無理やり)整える

ここから先はあまりお薦めではないかもです。Ubuntuで普段使っているGUIアプリを無理やり動かしてみます。WSLでは、WSLターミナル上ではWindowsのIMEを使って日本語入力が出来ますが、それ以外のGUIアプリケーションで日本語を入力する手段がありません。ここでは、Ubuntuのかな漢字変換システムをインストールして、それを可能にしてみます。

まず、WSLターミナルで、
sudo apt install -y fcitx5-mozc
を実行します。次に、home directoryの「.profile」の末尾に、
while true; do
  dbus-update-activation-environment --systemd DBUS_SESSION_BUS_ADDRESS DISPLAY XAUTHORITY 2> /dev/null && break
done

export GTK_IM_MODULE=fcitx5
export QT_IM_MODULE=fcitx5
export XMODIFIERS=@im=fcitx5
export INPUT_METHOD=fcitx5
export DefaultIMModule=fcitx5
if [ $SHLVL = 1 ] ; then
  (fcitx5 --disable=wayland -d --verbose '*'=0 &)
  xset -r 49
を書き加え、いったんWSLターミナルを閉じて再度起動します。再起動後、WSLターミナルで、「fcitx5-configtool」を起動します。すると、

wsl22.png


のように「Fcitxの設定」が立ち上がると思います。ここで、真ん中の「←→↑↓」ボタンを使って、左ペインを、
  • キーボード - 英語(US)
  • Mozc
から、
  • キーボード - 日本語
  • Mozc
に変更して下さい。

wsl23.png


のようになると思います。「OK」で閉じて下さい。これで、かな漢字変換が使えるようになっています。例えば、
sudo apt install -y gedit
などとして、geditエディタで日本語が書けるのを確認して下さい。

wsl24.png


他にも、
sudo apt install -y x11-apps
sudo apt install -y firefox
sudo apt install -y firefox-locale-ja
sudo apt install -y lxterminal
sudo apt install -y nautilus
sudo apt install -y evince
sudo apt install -y eog
などを入れました。gnome-terminal, gnome-text-editorは少し不安定な感じがしたので、それぞれlxterminal, geditで代用することにしました。

これで、普段ubuntuで行っている作業が(やや不安定ながらも)WSLで行えるようになりました。例えばTeX執筆は次のような感じで行えます。

wsl25.png

アンインストール

さて、これらのソフトは複雑に連携していて、操作ミスで壊してしまうこともあるかと思います。そこで、きれいさっぱりアンインストールする方法を書いておきます。

WSLのアンインストール

まず、Windows PowerShellを管理者モードで起動し、「wsl --list -v」でインストールされている名前を調べ、「wsl --unregister Ubuntu-24.04」のように登録を解除します。

wsl26.png


解除後、スタートメニューの設定(歯車アイコン)→アプリで、Ubuntu 24.04 LTSを探してアンインストールします。

wsl29.png

Visual Studio Codeのアンインストール

まず、普通にスタートメニューの設定(歯車アイコン)→アプリで、Microsoft Visual Studio Codeを探してアンインストールします。

wsl28.png


これだけでは不十分で、
  • c:\Users\(ユーザ名)\.vscode
  • c:\Users\(ユーザ名)\AppData\Roaming\Code
の2つのフォルダを削除してください。

おわりに

お楽しみいただければ幸いです。おかしなところがあればお知らせ下さい。特に無理やりUbuntuのGUIを使うあたりは、いろいろ改善点があると思います。

2024/05/02(木)Ubuntu 24.04 インストール (リンク集)

2024/05/02(木)Ubuntu 24.04 インストール (10)

その他入れた細々としたもの。
sudo apt install openssh-server
これでsshログイン出来るようになります。
sudo apt install git
sudo apt install curl
このへんはまあ必要か。
sudo apt install unar
これを使うと、日本語ファイル名を含んだzipファイルを展開したときに文字化けしないです。

後は個人的に必要なもの。
sudo apt install lv
sudo apt install checkinstall
sudo apt install ghex
Firefoxだけで過ごしたいところですが、ときどきに必要になるのでchromiumも。
sudo apt install chromium

ホームディレクトリにある「ダウンロード」等を英語表記に

ホームディレクトリに作られる「ダウンロード」などのディレクトリが日本語だと何かと不便なので、英語表記に直します。ターミナルで、
LANG=C xdg-user-dirs-gtk-update
として、「Don't ask me this again」をチェックして「Update Names」をクリックします。これでホームディレクトリが
ダウンロード  デスクトップ  ビデオ    ミュージック
テンプレート  ドキュメント  ピクチャ  公開
から
Desktop    Downloads  Pictures  Templates
Documents  Music      Public    Videos
に変わりました。元に戻すにはLANG=Cなしで単に「xdg-user-dirs-gtk-update」。

ctrl←→caps

ctrlとcapsを入れ替えるのが好きな場合は、
sudo apt install gnome-tweaks
を入れてgnome-tweaksを起動し、キーボードとマウス→追加のレイアウトオプション
→Ctrl Position→CtrlとCaps Lockを入れ替える、とします。

gnome terminalの設定

gnome terminalで「→」などの文字の幅がおかしい場合は、右クリック->設定->互換性 で「曖昧幅の文字」を「全角」にします。

また、22.04, 24.04ともに、gnome terminalが妙に縦に間延びして表示されるようになってしまいました。20.04の頃の表示に戻したいところですが、
sudo apt install fonts-takao
とするとどういうわけだか直るそうです。

fcitx5

デフォルトのibus-mozcのかな漢字変換では、とあるJava系のアプリで日本語入力がおかしくなり、前に確定したものが次の入力時に残ってしまう現象が見られました。そこで、最近評判がいいらしい、fcitx5-mozcに変えてみました。fcitx5の方が、IMEのon/offをウィンドウ毎に覚えてくれて使いやすい気がします。
sudo apt install fcitx5-mozc
でfcitx5をインストールします。実際に操作系をfcitx5に変えるには、
im-config -n fcitx5
として再起動します。元に戻すには、
im-config -n ibus
として再起動です。

ただ、これらの変更を行うとキーボード設定がおかしくなる現象が見られました。fcitx5に変えるとなぜかIMEのアイコンをクリックしたとき
  • キーボード-英語
  • Mozc
のように英語キーボードに変わってしまっていることがあります。この場合、IMEのアイコン→設定から、
  • キーボード-日本語
  • Mozc
のように直してください。また、ibusに戻したとき、IMEアイコンが無くなってしまうことがあります。その場合は、設定→キーボードで、入力ソースとして「日本語(Mozc)」を追加してください。

2024/05/02(木)Ubuntu 24.04 インストール (9)

何かとお世話になることが多くなった、dockerを入れます。
sudo apt install docker.io
で24.0.7が入りました。
sudo usermod -aG docker kashi
みたいにしてrootにならなくても使えるようにしました。

また、vmwareではなく実機の場合ですが、NVidiaのGPUがあればnvidia-dockerを設定するとdockerの中でGPUが見えて便利です。設定方法を書いておきます。まず、NVidiaのビデオドライバが入っていて動いている必要があります。
nvidia-smi
と叩いてGPUのstatusが出れば問題ないでしょう。もし動いていなければ、
ubuntu-drivers devices
を実行し、そこに出てきたお勧めのドライバーを、
sudo apt install nvidia-driver-535
のように入れます。

nvidia-dockerは、https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.htmlに従って、
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg && curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker
のようにインストールします。
docker run --gpus all --rm nvidia/cuda:12.2.2-base-ubuntu22.04 nvidia-smi
のようにして、dockerの中でnvidia-smiが動くことを確認しましょう。
OK キャンセル 確認 その他