puppeteer 13.5.0

puppeteer 13.5.0がリリースされました。

さっそくリリースノートを見ていきましょう。

Features
chromium: roll to Chromium 100.0.4889.0

Bug Fixes
・Inherit browser-level proxy settings from incognito context
page: page.createIsolatedWorld error catching has been added
tests: ensure all tests honour BINARY envvar

https://github.com/puppeteer/puppeteer/releases/tag/v13.5.0

ついに Chromium 100 が来ました。これまでChrome含めてブラウザのバージョン番号は2ケタでしたが、ついにChromiumのバージョンが3ケタの大台に乗ったのです。User-Agentを見て分けるような処理で、バージョン番号を2ケタ決め打ちにしている場合に問題になっているようです。JavaScript等で処理するならば正規表現にしていたり、そもそもケタ数を意識しない(Stringにすればいい)言語なので問題になるケースは少ないでしょう。

FreeBSDって何?

FreeBSDはLinuxのようなUnix-like(UNIXのような)OSの1つです。歴史を紐解くとLinuxよりも古く、UNIXの勉強をするためにカリフォルニア・バークレー校が教材として開発した4.3BSD(Berkeley Software Distribution)をベースにしています。その後、4.4BSDとAT&Tとのライセンスの問題等があったりしたのですが…今回の話から逸れるので割愛します。

Linuxとの最大の違いは、Linuxの実体がカーネルのみ(コマンドやミドルウェアはGNUによるもの)であるのに対して、FreeBSDはカーネル・コマンド・ミドルウェアを一組にして提供していることです。

Linuxは様々なディストリビューション(UbuntuやCentOSなど)があることはご存知でしょう。これはLinuxがカーネルのみの提供であるがため、それを使うために必要なユーザーランド(コマンドやミドルウェア)を合わせて提供するためにディストリビューションが発達したのです。そのため、パッケージの配布形式もディストリビューションによって違います(UbuntuのdebとCentOSのrpmがその一例です)。

一方で、FreeBSDは全てをFreeBSD Projectが提供します。パッケージの配布形式(pkg/ports)もFreeBSDが提供しています。このため、FreeBSDと言えば1つしかなく、環境によってコマンドや設定方法が変わる、といった心配がないのです。Linuxに比べてFreeBSDで運用されているシステムはあまり知られていないかもしれませんが、Yahoo! Japanは結構昔(2000年初期ぐらい)からFreeBSDで組まれていました。OSとして一括で提供されることから、セキュリティ対応も早いのも安定重視のシステムで選ばれる理由になっています。

ちなみに、BSDには他にNetBSDとOpenBSDがあります。これらは同じ4.3BSDを起源とするものですが、FreeBSDと同じではありません。各BSDの違いは、Linuxのディストリビューションの違いと似ていると言えますが、Linuxはカーネルが同じ(バージョンが違うことはありますが)なのに対してBSDはカーネルが同じではありません。そのため、FreeBSDのバイナリを例えばNetBSDに持っていっても動きません。

何でFreeBSDか?

オープンソースのOSとしての地位を確立して久しいLinuxを差し置いて何でFreeBSDを選んだのか?

それは私がFreeBSDが好きだからです(笑)

ADSLを廃止した2022年まで、2000年から自宅で運用してきたサーバもFreeBSDです。最初はFreeBSD 2.2.8-R(98)でした。とまあ、個人の好みを言っていてもしょうがないので、FreeBSDのよいところを挙げたいと思います。

まず、ユーザーランドを含めて一括で提供されていること。そして、このユーザーランドを最小限にしよう、としているところがBSDの利点です。例えば、かつてFreeBSDにはPerlがユーザーランドに含まれていました。しかし、ある時点のリリースからPerlへの依存をなくしてユーザーランドからは削除されました。

同様にPythonなどもユーザーランドに含まれません。PerlやPythonをすぐに使いたい人にはデメリットに見えるかもしれませんが、OSが依存するPerl/Pythonが存在しないということは、自分が使いたいバージョンを選べるということでもあります。CentOS 7のベースがPython2.8であるために、Python3を使うのに手間がかかる・・・というようなことが起きないのです。

次にportsにより最新のミドルウェアが利用しやすいこと。PythonやPHPのような言語はもちろん、NginxやMariaDBのようなミドルウェアも最新のバージョン(と安定版)をportsから入れることができます。CentOSやUbuntuでは、標準で提供されるパッケージは古いバージョンであることが多く、最新版を使おうとすると自分でリポジトリを入れる必要があります。FreeBSDではOSとして一貫して提供してくれるので、安心して使うことができます。

最後にIPv6スタックをフルサポートしていること。これは私が個人としてIPv6の実験をいろいろしたいから、なのですが。

何でさくらのVPSか?

別にさくらインターネットからお金をもらっている訳ではありません。

もともと自宅でサーバを運用していた頃から「さくらのSSL」で証明書を導入していたことを切っ掛けにウェブサイトとメールサーバは「さくらのレンタルサーバ」に移行しました。それならVPSも同じ「さくらのVPS」にした方が支払いや管理、ネットワーク的にもいいのではないか、と思ったのが理由です。

「さくらのVPS」ではFreeBSDのインストールをサポートしていることもポイントですね。ちなみに「さくらのレンタルサーバ」の中身はFreeBSDです。

参考

puppeteer 13.4.1

puppeteer 13.4.1がリリースされました。

さっそくリリースノートを見ていきましょう。

Bug Fixes
・regression in –user-data-dir handling

https://github.com/puppeteer/puppeteer/releases/tag/v13.4.1

今回はバグ修正のみです。

ちなみにバグの内容は存在しないディレクトリを --user-data-dir に指定すると例外で落ちてしまうというもの(本来ならば新規ディレクトリが作成されます)。このオプションを指定することが稀だと思いますので、遭遇することはほとんどないでしょう。アップデートが可能ならば、対応しておきましょう。