2024年6月23日日曜日

lubuntu 24.04 LTSでwxPython4.2.1

古いPCにLinuxを入れて使えるようにしています。 Lubuntu 24.04 LTSを古いデスクトップPCに入れて使っています。 リモートデスクトップとpythonくらいしか利用しませんので 古いパソコンでも十分な用途です。 pythonは、python3が利用でます。 さて、GUIにwxPythonをよく利用していたのですが、 そのようなスクリプトを動かすときにwxPythonをインストールする必要があります。 Windowsでは、pipを用いてインストールしていますが、 lubuntuでは、aptを使ってインストールするようです。
apt install python3-wxtools
でインストールできました。

さて、これで使えるなら問題よいのですが、しばしば 仮想環境を利用することが増えています。python3では、 すぐにvenvが利用できるようになっています。 たとえば、

mkdir myproject
cd myproject
python3 -m venv myenv
として、myprojectフォルダの中に、 そのプロジェクト用のmyenvという仮想環境を作って利用したりします。 その仮想環境を利用するには、
cd myproject
source myenv/bin/activate
として、仮想環境のフォルダ内にあるactivateスクリプトを用いて利用できるようにします。 アクティベートするといいます。 ここで pip install numpy とすると仮想環境にnumpyがインストールされるわけです。 ある環境がアクティベートされた状態で起動されるpythonでは、 その環境にインストールされたモジュールが利用できるというわけです。 環境を戻すには、deactivateを実行します。

さて、この仮想環境へはpipを用いてモジュールをインストールします。 pip install wxPythonとしてwxPythonををpipでインストールしようとすると、 ビルドエラーが出て停止してしまいました。 こちら https://wxpython.org/blog/2017-08-17-builds-for-linux-with-pip/index.html のサイトを参考にしてインストールをしました。

"What You Need"の箇所にビルドに必要なライブラリが記載されています。 地道にひとつづつインストールしていきます。 私の環境では、

sudo apt install python-dev
sudo apt install libgtk-3-dev
sudo apt install libgstreamer1.0-dev
sudo apt install libgstreamer-plugins-base1.0-dev
sudo apt install libglu1-mesa-dev mesa-common-dev freeglut3-dev
sudo apt list |grep libwebkit2gtk
sudo apt install libwebkit2gtk-4.1-dev
sudo apt install libjpeg-dev
sudo apt install libpng-dev
sudo apt install libtiff-dev
sudo apt install libsdl-dev
sudo apt install libnotify-dev
sudo apt install libsm-dev
としていきました。すでにインストールされているものもいくつかありましたが、
順番に検索エンジンを利用しながら確認していきました。
途中どれをインストールするかlistを見て確認したりもしています。

あとは、"Build Steps"にあることを順番にしていくだけです。もちろん、 ファイル名はダウンロードされたものに合わせて修正します。 書いてある通りにすると無事にwheelファイルがビルドされ、 wxPythonを利用することができるようになりました。

このようにしてpython3.12でwxPython4.2.1が動きました。 ただし、現在ダウンロードされたファイルをコンパイルしたものは、 pythonを起動してimport wxのあとすぐにquit()してもセグメンテーションフォールトを起こします。 "wxpython 4.2.1 segmentation fault"で検索してみるとすでに報告はあるようです。 とりあえずは利用できるので、修正を待ちます。 ちなみに、仮想環境ではなくaptでインストールした環境ではそのようなエラーは起こっていません。

DELL Inspiron Mini9 にDebian 12 bookwormをインストールしてみた

使っていないDell Inspiron Mini9がありました。 もともとWindows XPで使っていたものです。 XPのサポート切れからしばらくたち、 当時のWebブラウザを使っても開けないページも増えてきました。 そのうちLinuxでも入れてみようと置いてあったが、 32bitアーキテクチャがサポート対象から外されて行っている傾向があるので、 Debian12(bookworm)を試してみました。

作業した部屋のネットワーク環境がwifiだけの場所だったので、 ネットワークがすぐに使えるとは考えられないため、 debian-12.5.0-i386-DVD-1.iso をダウンロードしました。 ファイルSHA256SUMS.txtもダウンロードします。 インストール用のUSBは、手元にあった16GBのものを利用しました。 isoのサイズは、およそ3.7GBですので、こんな大きなものは必要なかったでしょう。 USBの作成環境は目の前にあるWindows11のノートパソコンです。

まず、ダウンロードしたisoイメージのハッシュ値を計算して確認します。 コマンドプロンプトを開いて、ダウンロードフォルダへ移動し以下のコマンドでSHA256のハッシュ値を調べます。

certutil -hashfile debian-12.5.0-i386-DVD-1.iso SHA256
出力された文字列とSHA256SUMS.txtの中にあるDVD-1.isoのハッシュ値を比較し 同じものであることを確認します。 正しくダウンロードされていたら、このisoイメージをUSBに書き込み インストール用のUSBを作成します。

USBへのisoイメージの書き込みには、Rufus 4.5(rufus-4.5p.exeポータブル版)を利用しました。 Deviceで、書き込む先のUSBを選んで、ブートの種類の箇所の選択ボタンを押してISOイメージを選択します。 パーティション構成はMBR、ターゲットシステムはBIOSまたはUEFIが選ばれた状態になっています。 書き込むUSBによるのでしょうが、 フォーマットオプションのファイルシステムは、FAT32(規定)クラスターサイズは8192バイト(規定)となっています。 すべてデフォルト状態のままスタートして書き込みを開始しました。 3.7GBのイメージの書き込みなので、時間はかかりましたが、インストール用USBが作成されました。

Mini9にインストール用USBを刺して、起動します。 キー2を押してBIOS設定を開いてUSB優先で起動できるように設定し、再び起動させます。 あとは、グラフィカルインストーラーで指示に従ってインストールしていきます。 私のMini9はUS配列キーボードなのでキーボードの選択で米国を選びました。 途中wifiのところでb43-ucode15.fwといファームウェアが必要だよと言われますが、 ここでは無視して続けていきます。 Mini9は、Etherの口がありますので、あとでネットワークケーブルを使って接続して設定するつもりでいます。 DHCPで接続が試みられますが、現時点でケーブルの接続もしていないので、接続されないまま続けます。 パーティションは推奨設定(初心者用設定)で進めて、 ソフトウェアの選択でデスクトップ環境にGNOMEではなくLXDEを択しました。 トラブルなくインストールが終了し、起動ディスクを抜いて再起動かけると無事に起動させることができました。

ネットワークケーブルが利用できる場所に移動して、ケーブルを接続するとDHCPで問題なく接続されました。 DVDでインストールしたので、リポジトリの設定ができていないので、 /etc/apt/sources.list ファイルを編集しました。 suコマンドでスーパーユーザーになって編集します。 Googleで、"debian bookworm repository"を検索して設定を参考にさせていただきました。

ファイルを編集したのちapt updateし、apt upgradeしてみますと問題はなさそうです。 firefoxがインストールされているので、youtubuに接続してみると動画はカクカクですが音もちゃんと出ています。 add userで、sudoグループにユーザー名を追加し、sudoできるようににしました。

日本語入力は、fcitx-mozcを利用します。 apt install fcitx-mozcをし、 apt remove uim-mozcをしました。

タッチパッドは、タップでクリックができなかったので、 パス/etc/X11/xorgconf.d/に30-touchpad.confというファイルを作成しました。 内容は、以下のとおりです。

Section "InputClass"
Identifier "touchpad"
Driver "libinput"
MatchIsTouchpad "on"
Option "Tapping" "on"
EndSection

wifiでの接続ですが、 https://wiki.debian.org/bcm43xx を参考にして、

deb http://deb.debian.org/debian/ bookworm main contrib non-free
を/etc/apt/source.listに追加し、 sudo apt updateを行った後、
sudo apt install firmware-b43-installer
をします。メニューの設定から高度なネットワーク設定でwifiのアクセスポイントを追加したら 利用できるようになりました。 LibreOffice 7.4が入っているので動かしてみても、問題はなさそうです。 pythonも3.11が利用できています。 SMPlayerでSMTubeを使って、YouTubeを観てみたら滑らかに再生できました。 古くて小さいノートパソコンですが、用途によっては現役として十分利用できそうです。