月別アーカイブ: 2024年12月

windows11 に WSL をインストールして jupyter lab を動かすまで

1. WSL2のインストール

最終的には、WSL2にtumbleweedを入れて、その上でjupyterlabを動かすことをするわけだが、まずはWSL2のインストールから。

wslコマンドは叩けるようになっていたので、まずはコマンドプロンプトか何かを開いて、以下のコマンド。ここでwslコマンドが入っていなかった場合は、たとえばwindowsストアで適当なLinuxディストリビューションを入れてみるとかすれば使えるようになるのではないかと思う。前は、システム設定か何かでGUIで設定したと思うけど、今はどうやってやったか忘れてしまった。

wsl --install openSUSE-Tumbleweed

ディストリビューションのダウンロード後にインストールが始まり、いくつかぽちぽち選ぶとインストール完了。tumbleweedにログインした状態になる。

とりあえずインストールが終わったら、

$ sudo zypper dup

でディストリビューションをアップデートしておく。

2. pythonのインストールと環境構築

まずはpythonのインストール。基本は pip で必要なパッケージは入れていく。

# zypper install python313

これでpythonはインストール完了。pythonのバージョンは適宜必要なものを入れておく。Tumbleweedは、割と早く最新バージョンが反映され、ディストリビューションのサポート切れも心配しなくていいので、心が楽。その分環境を固定すること必要があるときは使いにくいけれども。

次は一般ユーザーに戻って、venvでjupyter用の環境を作っておく。

$ python3.13 -m venv venv-313
$ ln -s venv-313/ venv

venvで独立した環境ができたので、必要なパッケージをインストール。とりあえずはjupyterとpandasとmaplotlib。

$ . venv-313/bin/activate
$ pip install --upgrade pip
$ pip install jupyter jupyter-lab pandas matplotlib

ウインドウズへのログオン時に、自動でjupyterが立ち上がるようにしたいので、起動用のスクリプトを作成しておく。エディタもvimしか使えないので、必要であればこのタイミングで好きなエディタを入れておいてもいい。nanoとかvscodeとか。

~/bin/launchjupyter.sh # パーミッション設定を忘れずに!
#!/bin/bash
LANG=C
PATH=/usr/bin:/bin
PATH=~/venv/bin:$PATH jupyter lab --no-browser --ip 0.0.0.0 >> ~/log/jupyter-lab.log 2>&1 # ログファイルの場所は適宜変更。

試しに実行してみると見事に実行可能。これでとりあえずはWSLの中でjupyterは実行できた。

3. windows起動時に自動で実行。

上記で立ち上げたjupyterはlocalhost:8888でアクセスできる。いちいち上げるのが面倒くさいので、ログオン時に自動で起動するようにしておく。linux的にはcronを使いたいが、WSLだといろいろと厄介なので、タスクスケジューラを使って設定する。

タスクスケジューラ>タスクの作成

[全般タブ]名前はわかりやすく適当につける。ユーザーがログオンしているかどうかにかかわらず実行するを選択して、パスワードを保存しない、をチェック。

[トリガータブ]タスクの開始:ログオン時を選択。特定のユーザーで、通常使うユーザーを選ぶ。

[操作タブ]プログラムの開始: wsl --cd ~ ~/bin/launchjupyter.sh

[条件タブ][設定タブ]省電力を考慮するのであれば適宜設定。

以上で、jupyterがローカルで立ち上がっているはず。あとは初回起動時のトークンとかをうまく設定すれば出来上がり。思ったより簡単にできてよかった。

こうしてインストールしたjupyterに、vscodeからアクセスするときは、左下の青いマークをクリックして、WSL:openSUSE-Tumbleweedに接続すればつなげる。この時、vscodeで開いたディレクトリが、カレントディレクトリにならないので、以下の内容をvscodeの設定のsettings.jsonに書いておくと幸せになれる。開いているipynbファイルのディレクトリがカレントディレクトリになる。

    "jupyter.runStartupCommands": [
        "import os",
        "__t=os.path.dirname(__vsc_ipynb_file__)",
        "%cd {__t}",
        "del __t"
    ],

本当はこれのためにちっさなサーバを一台買っていたのだけども、windows上で簡単にできてしまったので、実はいらなかったのは内緒。まぁそれは別のサーバのリプレイスに使うからいいのです。。。

CentOS7 からOpenSUSEに移行する話

自宅のサーバは長らくCentOS7で稼働していたが、CentOS7はすでにEoLになってしまった。これの移行先を、あれこれ悩んだうえでOpenSUSEにした。

このサーバで最も重要だった機能はファイルサーバで、スナップショットのバックアップ作成などbtrfsに強く依存していた。Redhatがbtrfsをサポートしなくなってしまったので、後継のRHELクローンはどうも使いにくい。

CentOS7は、Linuxマシンとしてみたときに、どうしてもアプリのバージョンが古くて、まともな開発をしようと思うと、必要なパッケージを下手したらコンパイルからして入れないといけない場面があって面倒だった。できればCentOS Streamにしたかったが、これはやっぱりbtrfsがないのでだめ。btrfsだけならOracleも選択肢だったが、こちらの観点からOracleも却下。

自宅のサーバの使い方では、特にカーネルやパッケージのバージョンを固定することは必要ないと判断して、これまでredhat系を使っていたが、心機一転して、OpenSUSEのtumbleweedを入れることにした。

インストールは今どきのLinuxなので、ストレージパーティションを切るときに気を付ける以外はまぁ特に悩まない。ただ、gnomeを入れると勝手にスリープしてしまうようで、これを切るのが面倒だったので、サーバ用途ではgnomeを避けるのがよさそうだった。

btrfsもサポートしているので普通に使えるし、CentOS7の時とは違って、zypperで公式から、新しいカーネルも最新に近いパッケージも簡単に入れられる。

btrfsに関しては、バックアップを取るためのパッケージもありそうだが、まだこれは試しておらず自前で構築したバックアップを移植して対応した。

これまで1年近く使ってきた感じでは特段問題なく、いろいろスムーズにできてよさそう。もっと早めに移行しておけばよかったくらいで、しばらくはOpenSUSEで行こうと思う。

minisforum UM890 pro を買った話

最近、手元のサーバでjupyterノートブックを立ち上げてpythonコードを組むようなことが多かったが、ファイルサーバ用途の古いスペックのLinuxサーバではどうしても動作にもたつくところがあり、新しいPCを探していた。

サーバ更新用としては、intel N200 の morefine M6 mini を買っており、一度はこれでjupyterを稼働させていたが、やっぱり計算能力が足りないことがあって気にはなっていた。

一方で、クライアントに使っているノートPCでも、ブラウザを開いているだけでもどうしてもメモリが足りなくなる時があってイラついていたので、jupyter用とクライアント、両方を同時に満たせるPCを探していた。

当初はノートPCで探していたが、リーズナブルな選択が少なく、ミニPCの方がコスト面で有利なことが分かった。どうせ持ち歩きはしないので、キーボードや画面は好きに選んだ方がよくて、唯一バッテリーがなく電源が不安な点だけがデメリットだが、そうそうブレーカーが落ちたり停電したりすることもないし、割り切ることにした。

いろいろと探したが、結局選んだのは、メモリ64GBのモデルが選べるminisforum UM890 pro。CPU自体は、AMDの次のモデルも出そうな時期でだいぶ迷ったし、メモリも32GBでよければ一つ下のryzen7のモデルが結構安くなってくることもあってそこそこ悩んだが、結局これにした。

安い買い物ではなかったが、同じryzan9 8945HSをノートPCで買おうと思うと20万円は超えるし、メモリ64GBをリーズナブルに変えるという点でスペック的には問題なし。

用途は、普段はクライアントとして使いながらたまにはゲームに手を出しつつ、WSLで入れたLinuxでjupyterサーバを自動起動してガンガン計算を回していくという感じ。WSL向けにもたっぷりメモリを使えて(普段はまぁメモリ律速になるほどのデータは扱っていないが、、、、)、処理速度も額面通りにそこそこ早くて、負荷をかけても熱もそれほど持たずに結構満足している。

安くはなかったが、いい買い物だったと思っている。ノートPCのころよりもゲームをプレイする選択肢が増えたのも、いい感じだ。

気になる点としては一点だけ、有線イヤホンジャックから音が出てこない点。おそらくwindowsのドライバが問題なのだと思うが、公式サイトからリンクをたどって出てくるドライバを当てても、windows update で落ちてくるドライバでもうまく音が出てこない模様。とりあえずは普段はBluetoothでつないでいるので害はそれほどないが、残念な点ではある。(後日、マイクのついていない別のヘッドホンを試したら普通に音が鳴ったので、イヤホンをさしなおしたら音が鳴った。ドライバのアップデートがあったのかな??)

Minisforum UM890 Pro ← minisforumのサイトへのリンク。安くなったら悔しいので値段を追っているが、64GBモデルは12万円ちょっとであまり大きく変動はしていない模様。セールはあるけど、そんなに劇的には減らない感じなので、欲しいときに買うのがよさそう。

ほかのmorefine M6 や、windowsにWSLでopenSUSEを入れてjupyter lab をインストール、タスクスケジューラで自動起動するポイントなんかは、後日別の記事で書いておきたい。

minisforum UM890 Pro | Amazon.co.jp

minisforumの紹介リンク

レノボのノートPCがだめになった話

具体的には、ThinkBook 13s G2

もう去年の話だが、ある日突然充電できなくなった。ばらしても原因不明で、色々調べてみた感じだと、どうもファームウェアのアップグレードで不具合が起きていた、というのが一番可能性がありそう。

充電の口がUSBCしかないのがあだになったのだと思う。結構時間を使ったが、もうどうしようもなくなってしまった。何とか充電する経路があればいいのだけれども、、、。

割安で買えた保証なしのものだったが、結局1年半くらい使ってだめになってしまった。これは残念だった。

ARZOPA Z1RCを買った話

ノートPCを使っているときに、手元に2台目のディスプレイがあると使いやすいので、モバイルディスプレイを物色していたが、ARZOPAのZ1RCが割とよかった。2560×1600解像度でHDR対応、USB type-C 対応の16インチモニタというスペックで、値段は大体1万円台半ばくらい。

実は、Z1RCを購入するよりも前に、AliExpressで同じくArzopaのZ3Cを購入しており、これがまぁまぁよかったのだけれども、もう1枚買おうとしたら既に扱いがなかったようで、それと同じような価格・スペックだったのがこのZ1RC。

Z3Cとの違いは、

  • 背面にディスプレイスタンドがついている(Z3Cはカバーがスタンドになるタイプ)
  • ベゼルが太い
  • 付属品に充電器がない
  • 手元のZ3Cは緑っぽく、Z1RCは普通に近いが比較の上では赤っぽい。

といったところで、その他の機能面では目立つ違いはない。

このディスプレイはminiHDMI対応だが、ケーブルは付属しているのでわざわざ買う必要はないのもよい。(普段はUSBだけでつないでいるので自分としてはまぁどっちでもいいのだけど、ケーブルだけ買うとなるとそれはそれで出費になるので、ついているのはうれしいところ)

最終的には、ノートPCからミニPCに置き換えてディスプレイの必要数が増えたのもあって、Z3Cとの色の違いが我慢ならずにもう1枚、計2枚買ってしまった。

Z3Cのころから1年くらいかな、使っているが、ディスプレイとしては特に問題なく使えており、メーカーとしても信頼できそうなところがよさそう。いい買い物だったと個人的には思っている。

Arzopa Z1RC | Amazon.co.jp
Arzopa Z1RC 2.5Kポータブルモニター|鮮やかなQHD 500nits 8bitディスプレイ – ARZOPA/JP