2022-11-23

【備忘録】隠しファイルも検索 ~ Python

Python の glob モジュールを用いて glob.glob('path/**', recursive=True) のようにすると、特定のディレクトリ path に含まれるすべてのファイル、ディレクトリの一覧を取得できます。しかし .(ピリオド)で始まる隠しファイルは検索対象にならないということを知らずに、トラブルにハマってしまいました。

下記の OS 環境で動作確認をしています。

Fedora Linux 37 Workstation x86_64
Python 3.11.0

大きな変更を加えずに隠しファイルも検索する方法がないかと探したところ、glob.glob で「強制的」に隠しファイルも検索させる方法を紹介しているサイトがいくつも見つかりました。そのうち、解りやすいと感じたサイトを下記に紹介します。

では、フツーに隠しファイルも検索する方法は無いのかと探して見たところ、どうやら pathlib モジュールを利用するのが良さそうです。

冒頭で触れたトラブルでは、glob.glob で隠しファイルも検索させるための応急処置として、glob._ishidden = lambda x: False を利用しましたが、時間を見つけて pathlib モジュールを利用したやり方に書き換えるつもりです。

参考サイト

  1. glob --- Unix 形式のパス名のパターン展開 — Python 3 ドキュメント
  2. pathlib --- オブジェクト指向のファイルシステムパス — Python 3 ドキュメント

 

ブログランキング・にほんブログ村へ bitWalk's - にほんブログ村 にほんブログ村 IT技術ブログ オープンソースへ
にほんブログ村

オープンソース - ブログ村ハッシュタグ
#オープンソース



このエントリーをはてなブックマークに追加

2022-11-16

ようやく Fedora Linux 37 がリリース

Fedora Linux は Red Hat 社が支援するコミュニティ Fedora Project で開発されているディストリビューションで、最新の技術を積極的に取り込むことで知られています。また Fedora Linux の開発成果が、後にリリースされる Red Hat Enterprise Linux, RHEL に取り込まれています。Fedora Linux は、おおむね春と秋の年二回の頻度で新しい版がリリースされています。

Fedora Linux 37 が 11 月 15 日 (UTC 14:00) にようやくリリースされました [1]

Fedora Linux 37 Workstation のデスクトップ画面

ただ、リリースの遅れの原因になった OpenSSL 3.0.7 のリリース [2022-11-01] ですが [2]、現時点では、Fedora Linux 37 には取り込まれていないようです。

[bitwalk@fedora-pc ~]$ rpm -q openssl
openssl-3.0.5-3.fc37.x86_64
[bitwalk@fedora-pc ~]$ 

Fedora Linux 37 のイメージのダウンロードは、参考サイト [3] から。

参考サイト

  1. Announcing Fedora Linux 37 - Fedora Magazine [2022-11-15]
  2. bitWalk's: Fedora Linux37 のリリース延期 [2022-10-28]
  3. Fedora

 

ブログランキング・にほんブログ村へ bitWalk's - にほんブログ村 にほんブログ村 IT技術ブログ オープンソースへ
にほんブログ村

オープンソース - ブログ村ハッシュタグ
#オープンソース



このエントリーをはてなブックマークに追加

2022-11-10

RHEL 9 互換な Linux ディストリビューション[改定版2]

2022 年 5 月 17日 にリリースされた Red Hat Enterprise Linux バージョン 9(以下 RHEL 9)は、フルサポート(5 年)およびメンテナンスサポート(5 年)のフェーズからなる 10 年間のライフサイクルを提供し、さらにメンテナンスサポートフェーズ以降に、限定的なサブスクリプションサービスを延長する、延長ライフサイクルサポート (ELS) と呼ばれる年単位のアドオンサブスクリプションを購入することができます [1]。サポートを受けるには、有料のサブスクリプションを購入する必要があります。

Red Hat Enterprise Linux 9 のデスクトップ画面

RHEL がエンタープライズ用途と言われる所以は、その長いサポート期間ですが、それだけではありません。

サポート期間中、パッケージのバージョンは勝手に更新されません。カーネルなど BaseOS レポジトリにあるパッケージのバージョンは、RHEL リリースのサポート期間内では基本的に変更されません。ただし、セキュリティ対応のために、リリース後に発見されたセキュリティ問題は、深刻度に応じてバックポートされて同じバージョンのパッチリリースとして提供されます [2]

※ メジャーリリースのサポート期間より短いライフサイクルのパッケージは AppStream というレポジトリで提供されています [3]

こういう対応は他のディストリビューションではなかなかされていません。人気の Ubuntu の LTS バージョンでは、ポイントリリースにおいてカーネルのバージョンも更新されます。

もちろん、通常のパッケージのバージョンアップが悪いというわけではなく、ディストリビューションのメジャーリリース(例えば RHEL9)内におけるパッケージのバージョンの考え方の違いに過ぎません。しかし、ミッションクリティカルな用途に採用するとあれば、ディストリビューションそれぞれのリリースに対する考え方を理解して、良し悪しを判断する必要が出てきます。

RHEL 互換ディストリビューション

Red Hat Enterprise Linux のソースコードは公開されているため、これをビルドし直すことで RHEL と同等な Linux ディストリビューションを構築することができます。そのため、RHEL 互換を謳った複数のディストリビューションが開発されています。

以下に、現在利用できる RHEL 9 と互換の Linux ディストロをまとめました。GNOME Boxes 上で (x86_64 のイメージでの)インストールを確認できたものをリストにしています。

※ 11 月 1 日付で、サイバートラスト株式会社から MIRACLE LINUX 9 がリリースされたので追加しました [5]

Red Hat Enterprise Linux 9 互換な Linux ディストリビューション[ABC 順]
Linux CPU Architecture 入手先 備 考
x86_64 ARM64 IBM Power IBM Z
AlmaLinux 9
AlmaLinux ISOs links 商用 Linux ディストリビューション CloudLinux OS を開発している CloudLinux 社によって、コミュニティのために現行バージョンの RHEL とのバイナリ互換性を実現したフリーな OS を利用できるようすることを目標に開発されました。
EuroLinux 9
Index of /isos/ 有償サポート有
ポーランドの EuroLinux Sp. z o.o. 社によって、RHEL をベースに開発されています。CentOS 8 の開発終了のアナウンスを受けて、EutoLinux 8.3 から一般に公開されるようになりました [4]。EuroLinux 9 でも、ARM64 対応のイメージが今後リリースされるかもしれません。
Oracle Linux 9
Oracle Software Delivery Cloud 有償サポート有
Red Hat Compatible Kernel (RHCK) と、Oracle 製品に最適化した Unbreakable Enterprise Kernel (UEK) の二種類のカーネルを選択できます。
MIRACLE LINUX 9
MIRACLE LINUX ダウンロード — MIRACLE LINUX サポート&テクノロジー | サイバートラスト株式会社 サイバートラスト株式会社が提供している無償かつ日本製の Red Hat Enterprise Linux クローンです。サイバートラスト株式会社のサイトによると、2000 年からの国産ディストリビューターの実績・経験を活かし、企業 CentOS ユーザーの受け皿になるべく、CentOS の互換性を維持した MIRACLE LINUX をライセンス無償で公開することにしているとのことです。
Rocky Linux 9
ダウンロード | Rocky Linux CentOS の創設者である Gregory Kurtzer 氏が、CentOS の初期の目標を達成するためのプロジェクトを開始すると発表して開発が始まりました。Rocky Linux は CentOS の共同創設者である Rocky McGaugh 氏にちなんで名付けられました。

 

参考サイト

  1. Red Hat Enterprise Linux のライフサイクル - Red Hat Customer Portal
  2. セキュリティー修正のバックポート - Red Hat Customer Portal
  3. Red Hat Enterprise Linux Application Streams ライフサイクル - Red Hat Customer Portal
  4. EuroLinux 8.3 already available | EuroLinux [2021-06-07]
  5. MIRACLE LINUX 9 リリースノート — MIRACLE LINUX サポート&テクノロジー | サイバートラスト株式会社 [2022-11-01]

ブログランキング・にほんブログ村へ bitWalk's - にほんブログ村 にほんブログ村 IT技術ブログ オープンソースへ
にほんブログ村

オープンソース - ブログ村ハッシュタグ
#オープンソース



このエントリーをはてなブックマークに追加

2022-11-06

Fedora Linux 37 のカーネルに 6.0 を搭載

Fedora Linux は Red Hat 社が支援するコミュニティ Fedora Project で開発されているディストリビューションで、最新の技術を積極的に取り込むことで知られています。また Fedora Linux の開発成果が、後にリリースされる Red Hat Enterprise Linux, RHEL に取り込まれています。Fedora Linux は、おおむね春と秋の年二回の頻度で新しい版がリリースされています。

正式リリースが遅れている Fedora Linux 37 ですが(現在の予定では 11 月 15 日です [1])、カーネルは最新の 6.0 [2] が搭載されるようです。今日、パッケージの更新をしたら kernel のバージョンが上がりました。

Fedora Linxu 37 (prerelease) で neofetch を実行した例

参考サイト

  1. Fedora Linux 37 update - Fedora Magazine [2022-10-27]
  2. Linux 6.0がリリース、「重要な新要素」やRustの導入は6.1に - ZDNet Japan [2022-10-04]

 

ブログランキング・にほんブログ村へ bitWalk's - にほんブログ村 にほんブログ村 IT技術ブログ オープンソースへ
にほんブログ村

オープンソース - ブログ村ハッシュタグ
#オープンソース



このエントリーをはてなブックマークに追加

2022-11-02

【備忘録】カスタム・スケーラーを作るための…

scikit-learn は、Python のオープンソース機械学習ライブラリです。SVM, Random Forest, Gradient Boosting, k平均法DBSCAN などを含む様々な分類回帰クラスタリングアルゴリズムを備えており、Python の数値計算ライブラリの NumPy, SciPy とやり取りするよう設計されています。

Wikipedia より引用、編集

Python で機械学習を扱うとき、いや、主に主成分分析 (PCA) でデータを整理するときにと、言い直した方が良いような気がするのですが、そんな時に利用するライブラリは scikit-learn のほぼ一択になっています。

前処理でデータを標準化をするときには StandardScaler、すなわち平均値と標準偏差でデータを標準化するスケーラーで十分だと思っていたのですが、よくよく考えてみると、決してそうではないことに気づきました。だとすれば、スケーラーをカスタマイズしたくなりますが、StandardScaler のソースを見て、これをベースにカスタマイズすることを諦めてしまいました。😅

とりあえず、最低限の機能を実装した StandardScaler と同等機能の超シンプルなスケーラーを作って、それをベースにカスタマイズしていくことにしました。

ということで、下記の CustomScaler クラスは、自分の使う範囲では StanbdardScaler と同じ機能しかありませんが、これをベースにカスタムなスケーラを作っていくので、備忘録としました。ま、不具合が出れば StandardScaler のソースを見て手直しを重ねます。😁

test_scaler.py

動作確認用に iris のデータセットを使って、StandardScaler と CustomScaler それぞれで標準化したあと PCA をして、結果をざっくり比較しています(結果が同じになるべきです)。

実行例
>>> Standard Scaler
        PC1       PC2       PC3       PC4
0 -2.264703  0.480027 -0.127706 -0.024168
1 -2.080961 -0.674134 -0.234609 -0.103007
2 -2.364229 -0.341908  0.044201 -0.028377
3 -2.299384 -0.597395  0.091290  0.065956
4 -2.389842  0.646835  0.015738  0.035923
>>> Custom Scaler
        PC1       PC2       PC3       PC4
0 -2.264703  0.480027 -0.127706 -0.024168
1 -2.080961 -0.674134 -0.234609 -0.103007
2 -2.364229 -0.341908  0.044201 -0.028377
3 -2.299384 -0.597395  0.091290  0.065956
4 -2.389842  0.646835  0.015738  0.035923

参考サイト

  1. sklearn.preprocessing.StandardScaler — scikit-learn 1.1.3 documentation
  2. sklearn.decomposition.PCA — scikit-learn 1.1.3 documentation
  3. sklearn.datasets.load_iris — scikit-learn 1.1.3 documentation

 

ブログランキング・にほんブログ村へ bitWalk's - にほんブログ村 にほんブログ村 IT技術ブログ オープンソースへ
にほんブログ村

オープンソース - ブログ村ハッシュタグ
#オープンソース



このエントリーをはてなブックマークに追加