WindowsからLinux (Ubuntu)に移行した話
寒冷渦ぽむぅ!坂浦いとです.
今回はぽむぅがWindowsからLinux,厳密にはUbuntuに移行した話について書こうと思います.
動機づけ
ぽむぅはパソコンに初めて触れて(おそらく小学校の授業?もしくは家にある親PCでネットサーフィン)からずっとWindowsを使っていた.
最近(学部生あたり)気象データ解析を始めたが多くのソフトウェアがLinuxを想定したものであまりWindowsを想定してないものが多かった.そのため仕方なくWSL2(Windows Subsystem for Linux)を用いてUbuntuで気象データ解析やプログラムを書いたり走らせたりしていた.しかし仮想環境(しかもターミナルだけ)でやや窮屈だった.そういうことも考えてここで仮想マシンとしてVirtual Boxなどを用いてそのうえでLinuxを動かすことも考えたりしていた.
だがもうひとつ問題が.
それはスペックの問題であった.学部生で当初は書類や資料の作成や簡単な計算をすることだけを想定しておりかつ当日機械さん音痴だったのでプログラミングや数値計算,データ解析を行うということが視野になかった.一生プログラミングなんかに触れずに一生を終えるどころかプログラミングのプの文字も頭の中になかった.このPCは現在(2024年夏)ではすでに4年間使っておりそろそろ新PCを購入する機運も高まっていたので,旧PCで作業することを考えていなかった.Windows 11にアップグレードしようと思っていたが動かなくなるほど低スペックであった(システム要件は満たしていたが).
いまB4につき卒業研究におわれている.しかし作業は旧PCでできるほどのスペックがなくたまたまデータ解析はPythonでやっているので,GoogleColaboratoryにお布施を払ってハイメモリでやっている.しかし月1200円くらいかかる.それだけサブスクリプションしていればたかが1200円だが,ぽむぅは女性声優に負けてるのでファンクラブやらで月額がかさんでいる.まあ当時PCを買う金がなかったから仕方なくGoogleにお布施することにした.
最近まで貯金してPCを買うことにした.联想(レノボ)のThinkpadにした.カスタマイズして気象データで遊べるほどなので旧PCよりかは格段によくなった.旧PCでは主にメモリエラーで怒られこっちも逆ギレしていた.まあ遊びに干渉されていたわけだからストレスが些かたまっていた.
なお元々Windows 11 Home EditionがプレインストールされておりOSなしが選べなかったことは困った.海外ではLinux(確かディストリビューションはUbuntu)がプレインストールされてるのも売ってるらしいと噂程度に聞いた.デュアルブートも考えたがWindowsの部分は旧PCでいいやと思い,インストールで潰した.パーティションなしにフルで気象データ解析に使いたい.
ここで,なぜLinux (Ubuntu)か?Windows 11の新PCでいいじゃん?LinuxだとOfficeが使えないぞ!
Officeは旧PCで作業すればいいと思った.もっとも旧PCは大学用に購入したものだ.作業に支障が出るほどの環境だったら問題だが特段問題なく資料作成はできる.大学PCは旧PCが担っている.
一方新PCは作業用のPCに割り当てた.そうすればしばらく2台を使い分ければよい.
ここで箇条書きでLinuxにしたいいくつか理由や動機づけをリストアップする
Linuxは
気象データ解析を円滑にすることができそうだ
Windowsはいらない機能があり,そいつらにメモリ食われたくないなら
開発環境を自由にカスタマイズできそうだ
問題発生すると自分で直さないといけない点について苦労したいから
エラーに興奮する人間になりたいから
まあこういった理由からUbuntuを使い始めることにした
実際使ってみて
買った機械さんはThinkPad E14 Gen 6 AMDだ.ホントは300kするが150kで買えて学生のぽむぅはよろこびで大横転した.
起動する前に事前作成したUbuntuのインストールメディアとしてUSBを刺し,起動した瞬間F1を連打しBIOSに起動.Secure BootをoffしたりF12(だっけ)でブートオプションでUSBを最上位にした.あとはUbuntuが言う通りにインストールすればいい.ここでこだわりだが言語を英語(思想が強いのでイギリス英語)にすればディレクトリ名が日本語や中国語になったりすることはない.そうするとターミナルで打つ時にキーボードを切り替える手間が出てくるからだ.その後日本語に端末言語変更してもディレクトリ名を古いままつまり英語にすればそのままだ.なおぽむぅの端末は英語のままにしている.困った時にそのまま解決できるからだ.(ネット上の質問回答は英語ばっかり)
インストールはクリーンインストールでWindows 11は産声をあげることなくUbuntuに潰された.人によってはデュアルブートをやりたい人もいるがWindows 11に席を与えたくないないからやらなかった.お前の席はねぇよ.
インストールの指導にしたがっていれば完了する.機械さん音痴でもできそうだ.
インストールが終わったら環境構築だ!
なおWindowsとは違って難易度は幾分高い.WindowsはGUI的なインストーラーが多いが,Linuxではターミナルでコマンドを打つ.パスを通すのもWindowsはやはりGUIで行けるが,Linuxは.bashrcにexportしなければならない.
その部分はWindowsからLinuxに移動することで覚悟していたが割と苦労した.しかし苦労していてもネット上でREADMEなどのドキュメントを見たり質問回答などを見て解決していくことが楽しいと思った.
環境構築を行ったのは以下:
vim
Python (Conda)
Fortran (コンパイラ: gfortran)
GrADS(気象プロットの古代文明)
wgrib2 (気象データ解析ツール)
GMT(地球物理屋のプロットツール)
あとLaTeX (TexLive)(理学系の文章創作ツール)
Minecraft (学習・研究の息抜き)(環境構築?)
テキストエディタは,WindowsではもっぱらVisual Studio Codeを用いていたがUbuntuではvimにすることにした.理由はかっこいいから().vimは標準の補完機能は使いにくいのでcoc.nvimという拡張機能で補完機能を導入した.
jsonをいじることで自分なりの補完機能にすることができるがPythonやBash,LaTeXだけ揃えておいた.Fortranもできるが当時はjsonがよくわからないので後回しにしておいた.あとはvimのコマンドに慣れるだけだ.
PythonはWindowsではAnacondaを用いていたのでそのままUbuntuでもそれを使うことにした.インストールすれば勝手にパスを通してくれる.機械さん音痴,ホッとひと息.気象データ解析(神山,2024)やその他Pythonによる気象データの解析の資料はcondaを想定しているものが多いので頭の中で「翻訳」しなくてよいものにした.まだ機械さん音痴の部分がある().
Fortran?なぜ古代言語を?と思った人はいそうだが,ぽむぅが専攻する予定の地球流体力学や気象の数値モデルは依然としてFortranが使われている.別の言語に切り替えても良さそうだが,財産がFortranなので使わずを得ない.別の言語のするリソースがあるなら財産使った方がマシということかな?ぽむぅはFortranを使うことに誇りを持っているのでそんなのあまり気にしないが.話を戻せば環境構築はapt install gfortranでコンパイラが導入される.実はgccも導入されたいたがもともと入っていたカナ?
GrADSは割と苦労した.実はapt install gradsでラクにインストールできるがカラーバーが見つからない.取りに行くのに苦労した...どうして入ってないんだ...Pythonで気象データはプロット可能だがGrADSはwgrib2でctlファイルをコマンド1回叩いて自動作成してopenしてd 変数すればすぐプロットできる.netCDFはctlファイルを作らずsdfopenで1発だ.テストプロットツールで重宝しているので古代文明も使える.Pythonではmatplotlibとcartopyを用いてプロットするが些かめんどくさい.
wgirb2はcondaでインストールがすぐ終わる.これは気象データでよく使われるgribやnetCDFを解析するためのツールだ.
GMTはまだ導入していない.まあぽむぅは気象学の人間なので使う機会が少ないだろう.なお弊学は割と好きらしいので使うかもしれないが.
LaTeXはTeXLiveをインストールした.Windowsではグラフィカルなインストーラーが付いているが,Linuxはターミナルを叩いてやる.人に対する要求スペックが高いなあ.
1時間くらい待てばインストールが完了する.Windowsの時は3時間くらいかかったが,これは旧PCのスペックの問題なのかな?
Minecraftは息抜き用だ.Minecraftはすでに旧PCで購入,インストール済みだがアカウントワイズなので新PCにも導入できた.インストーラーはなくdebファイルにdpkg -iする感じだった.割と地味なインストールだったが起動できた.
さてプレイすると旧PCはスペックが悪いせいでカクツキが激しかったが新PCでは滑らかに動いてストレスがなくなった.
以上環境構築の話だが,難易度はWindowsより高いので機械さんが苦手な人は覚悟すべしである.
Linux (Ubuntu)に対する第1印象
WindowsからLinuxに移転したぽむぅだが,WindowsはGUIとOSがぎっしり結びついている感じがしてターミナルで奥に入りにくい感じだったり余計な機能で重くなることがあった(それは旧PCのスペックの問題)が,今思えば機械さんに弱い人に対して親切であった.グラフィカルにサポートする体制があったり,公式サポートがあったりする.それに対してLinux(今回はUbuntu)は自由度が高い分,自己責任である部分が強いと感じた.ターミナルありきでいろいろいじれるUbuntuだが,サポートはWindowsより弱くネットで解決するためにネットサーフィンが始まる.エラーが発生やトラブルなどに疑問が発生したら自分で解決することが第1に求められる.Linuxのディストリビューションは一部を除いて無料(フリー)であるが自由のフリーもある.それはなんでも出来るという意味だが自己責任も伴う.機械さんに対しての「自由とはなにか」を考えされる機会になった.加えて,私はもともと苦労するのが好きなドM人間なのでトラブルが出ると少し興奮する.そして解決した時に快感がたまらないのである.スリルを求めることが身近な機械さん,しかも自分の機械さんでできる.
これからはUbuntuをメインにWindowsをサブに使っていきたいと考えている.これを書いたのはUbuntu2日目だが充実した2日間だった.本格的に本命の気象データ解析と数値計算を行っていきたいと考えている.