「Linux&PC」カテゴリーアーカイブ

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年半くらい使ってだめになってしまった。これは残念だった。

windows10 Sモードを維持したまま一時的にexeファイルの実行

正直ちょっと驚いたが、windows10 1803 のSモードで、Sモードを解除しなくても、一時的に実行ファイルを実行できたので、メモ。

以前購入した、ASUSのE402Wで実行した。

すべての設定>更新とセキュリティ>回復
PCの起動をカスタマイズするの下の「今すぐ再起動」
再起動後、トラブルシューティング>詳細設定から、
スタートアップ設定>再起動を選び、
7)ドライバー署名の強制を無効にする

で実行させると、一時的にexeの実行が可能になり、プログラムのインストールや管理者向けpowershellからreagentc.exeが動かせるようになった。もちろん、通常で再起動すると、再びexeの実行が不可能になる。

正直、(Sモードは解除したくなかったが、)SSDの方にwindows10 を入れる作業で手間取っていたので、BCDの回復ツールを実行できて助かった。

ビックカメラで ASUS E402WAGA002T を買った

ビックカメラでASUSのE402WAGA002Tが19800円だったので買った。PCを探しているところだったので、ちょうどよかった。ストレージはeMMC32GBだが、SSDが入れられるので、240GBのSSDも同時に購入(配送はべつだったけど、、、)。

ほかの特徴は、ちょっと古いらしいがAMDのE2-6110という、intelのatomよりちょっとよさそうなCPUと、4GBのメモリ。あとはwindows10がSモードで入っている。とりあえず両方届いたので、セットアップ前にSSDをつけて、USBからLinuxを立ち上げ、ddでeMMCからSSDにすべてデータを写し、SモードのままSSDから起動させるつもり。(eMMCは利用許諾を承諾する前の状態にしておいてもう使わないかな)


yogabook with windowsを使ってみた。

触った感じだと、筐体とキーボード面がさらさらに加工されていて、これは使ってるうちにはげてつるつるになってきそうな予感。スリーブケースもついてきたし、今回はわざわざフィルムをはったりしないで使っていくつもりで、ここはあまり気にしないでおく。(相当注意深く見ると、筐体の塗装に若干スポットっぽいものが見えるかも?まぁ、拭いたりしないと気付かないので、気にならないかな。)
続きを読む yogabook with windowsを使ってみた。

windows10 april 2018 update でopensshが使えている!

アップデート後、気づいていなかったが、opensshクライアントが有効になっていて、コマンドプロンプトでsshコマンドが使えた。当然ssh-keygenとかもある。アプリと機能で有効かすれば、sshサーバーの方も使えるみたい。すげー。

あとは、edgeで読み上げができるようになってた!これもすげー。

Microsoft Edge は共有のために使われています。

Edgeを閉じようとしたときに、”microsoft edge は共有のために使われています。”のポップアップと「閉じる」「キャンセル」ボタンのダイアログが表示されて、閉じられないことがあった。

よくわからないし、再現しないが、redditに再現方法を書いたコメントがあったので備忘に残しておく。https://www.reddit.com/r/Windows10/comments/4mh0iy/microsoft_edge_is_being_used_for_sharing/

===

自分の環境ではしばらく起こっていませんでした。

その後、手元のPCには新しい Microsoft Edge を入れました。chromiumベースになったので、この問題が起こらなくなっているとよいのですが、、。

https://www.microsoft.com/ja-jp/edge/

Windows 10 の店頭デモモード

venue8proを家電リサイクルに出す前に、ドライブを空にして初期状態に戻していたところ。

いつもの初期設定画面の最後が、店頭デモがなんとかいう変な表示になっていることに気づいた。
もはやどうやって入力したのか覚えていないが、初期設定に戻すところから初期設定までの間に怪しいことになって、デモモードになっていたらしい。(途中電源が落ちたせいか、見知らぬところで誰かが触ったのか、、、)

RetailAdminユーザーで、日本語名は古林翔、パスワードは、、、、retailadminで検索すれば出てくるのでここでは書かない。

正直、見たときはびっくりしましたが、まぁ、もう充電するのも難儀するので機械としてはあまり使えないところだけど、最後の最後に楽しめたということで、落ちがついてよかった。

yogabook with windows を買った。

いつも使っていた dell venue 8 pro が、microUSBコネクタがヘタってきて、なかなか充電できなくなってきた(充電するとき、ケーブルの向きとか気にしてだいぶ工夫が必要な感じ。になった)ので、ここ数か月代わりのタブレットを探していた。

LTE対応SIMがさせるというのは必須で、Androidだとわりと安いのもあるんだけど、いままでwindowsで使ってきたので、次もwindowsがいいなぁと探していたが、なかなか見つからない。新しいのが出るまで待った方がいいかと思ったが、つい先日、ケース付きのyogabook with windowsが税込み50000円と大分安く売っていたので、少し大きいけどこれでいいかと、新しく買いました。

キーボードが特徴的だけど、慣れたら使えないこともない。ここまでそのキーボードで打っているけど、まぁなんとか使えてるか感じ。しばらく試してみて、また何か書くかも。

DELL venue8 pro がwindows10 201709 (fall creators update) へのアップデートで失敗

windows update に降ってきたので、何も考えずに venue 8 pro をアップデートさせたら、アップデートに失敗して起動しなくなった。

一応、USBメディアを作って再度インストールしてみるのと、それでも失敗したら回復パーティションから復帰させるという手段はある。

そろそろ買い替え時かなぁと思っていたものなので、実際やるかどうかは微妙かも。そうはいっても、似たようなサイズのSIMカードがさせるまともな windows10 タブレットで選べるものがほぼなさそうなので、Androidタブレットで買い替えることになるかも。微妙。

============

とりあえずは、起動時の青い画面(修復オプションとか)を無理やり出して、アップデート前の状態に戻したところ。早晩またアップデートの通知が来るので、どうしようかなぁ、と思っているところ。待っていても何も改善しそうにないところが悩ましい。

============

復旧して使っていたら、再度アップデートがかかり、今度はうまくいきました。何だったのか。

CentOS7で、 anacron をはじめとした cron のメール通知を全て抑止し、内容をsyslogに出力するようにする

CentOS7で、あまりにも anacron に書いたスクリプト ( /etc/cron.weekly/ 以下のスクリプトとか) の出力がローカルのメールにたまっていた。普段はローカルのメールなんか読まないので、さすがに対応した。
続きを読む CentOS7で、 anacron をはじめとした cron のメール通知を全て抑止し、内容をsyslogに出力するようにする

btrfs ファイルシステムをほかのデバイスにコピーする。

サーバのbtrfsボリュームのバックアップ用ドライブを新しくしたが、バックアップ用ドライブもbtrfsで用意すると、初回データコピーとかが楽という話。

ネタは https://wiki.archlinuxjp.org/index.php/Btrfs に書いてあるが、読み込み専用サブボリュームはどうやって作るんだっけ、と毎度調べているような気がするので、メモ。
続きを読む btrfs ファイルシステムをほかのデバイスにコピーする。

btrfsでCentOS7のルートディレクトリにしていたUSBメモリが壊れた。。。。

以前から調子が悪く、だましだまし使っていたCentOS7のルートディレクトリを入れていたUSBメモリがついに壊れた。

昨日btrfsが急にreadonlyでのマウントになっていた。

ログを見たりしたが、原因がわかるはずもなく、とりあえずカーネルが新しければなんとかなるかもしれんと思って、fedora23のモノにさしてみて、btrfs checkしてみたら、3つのスナップショットのツリーが壊れているようだったので、そのスナップショットを削除してみようとしたところ、削除できず(正確には30分ほど待ってもなんとも反応がなかった)。

もうこれはUSBメモリが壊れたんだろうなあと踏んで、USBメモリのファイルシステムを消したうえでchkflshで確認してみたところ、最後まで読み込めずにエラーで終了。その後、USBメモリはどうやっても認識させられなくなってしまった。(あ~あ)

もうしょうがないので、別のUSBメモリを用意して、ファイルシステムを作成。バックアップから復旧して、grub2-install やら kernel の reinstall やら grub2-mkconfig やらをして、復旧させた。

この別のUSBメモリというのも、windows8でReadyBoost用に使っていたものなので、耐久性にはおそらく難があって、また近々似たようなことが起こるかもしれない。
続きを読む btrfsでCentOS7のルートディレクトリにしていたUSBメモリが壊れた。。。。