9/03/2022

[note] ubuntu 22.04LTS へのアップグレードで snap がネックになった話

久方ぶりのubuntuアップグレードの話です。20.04LTSから22.04LTSへ。server版です。22.04LTSはJammy Jellyfish、運の良いクラゲさんですね。デスクトップ版は既に複数アップグレード済みですが、LTSの最新版が出てから暫く経ち、サーバーの方もそろそろいいだろう、という事で。

何はともあれまずバックアップ。partclone等を使ってドライブをまるごとイメージ化します。しかるのちに、アップグレード。なお、serverはLTS版のみを採用するのが普通だと想いますが、そのニーズに対応して、LTS版からLTS版へは、中間をすっ飛ばしてアップグレードする事が出来ます。/etc/update-manager/release-upgrades中のPromptをltsにしておけばOK。確認後、do-release-upgrade です。

で・・・警告からエラー発生、のち中断してそのまま起動不可に。ぐえー。いくつかのパッケージのインストールに失敗していました。何に失敗したのかというと、悪名高きsnapです。 snapはcanonicalが開発、導入したaptに代わるバッケージ管理システムで、Firefoxやchromium等のブラウザ中心にaptからの移行が進められています。ubuntuでは21.10から既に採用されているのですが、LTS版としては22.04が初という事になるわけですね。

問題は、snap関連は通常のubuntuとは別のサーバで管理がなされていて、snapd自体から各種パッケージまで、そのインストール等をするには、専用のサーバにアクセスする必要があるのです。で、私のサーバーではホワイトリスト的なアクセス制御設定をしていて、アップデートの際にはその都度リポジトリのサーバーにアクセス許可を出すやり方を取っているのですが、新規に追加されたsnap関連サーバは当然含まれておらず、従ってアクセスできない、という事で失敗してしまったのです。

無論、snap関連サーバにアクセス許可を出せばいいだけの話なわけですが。ここで許可を出すべきサーバを調べるのに一苦労です。ほとんど情報がない。まあ、クライアント運用する場合はそもそも細かいアクセス制御なんてしないだろうし、そんな情報を必要とする人自体少ない、という事なんでしょうけれども。サーバーの管理には必要な情報だと思うんですけどね。。。

ともかく、四苦八苦する事数時間。結果から言えば下記ページに記載されているサーバにアクセス許可を出せばよい事がわかりました。

https://snapcraft.io/docs/network-requirements

具体的には、

public.apps.ubuntu.com 

storage.snapcraftcontent.com 

canonical-lgw01.cdn.snapcraftcontent.com 

canonical-lcy01.cdn.snapcraftcontent.com

canonical-lcy02.cdn.snapcraftcontent.com

canonical-bos01.cdn.snapcraftcontent.com

cloudfront.cdn.snapcraftcontent.com

です。なお、必要なポートは全て443。リスト中、deprecatedとしつつも記載されているfastlyから始まるサーバーも一応追加してみましたが、既に存在しないようです。ので除外。

これらにアクセス許可を出します。例えば、私はiptablesを使用しているので、それぞれ

$ sudo iptables  -I INPUT -p tcp -s [各サーバー] -j ACCEPT

等としてやるわけですね。今後も繰り返し必要になる筈なので、スクリプトにして。

で、バックアップから失敗前の状態に戻し、上記アクセス許可を出してから再実行。

すると、今度はsnap関連でエラーを吐くこともなく問題なく進みます。時折各種変更済みの設定ファイルを保持するか聞かれるのに全てN(保持)と応答することしばし。無事完了しました。おつかれー。

<付記>

ちなみに、今回の件でsnap関連の情報を漁っている時に少し気になった事がありまして。何かというと、snapの評判ってすごい悪いんですね。あらゆる意味で。

私のようにサーバー運用をしている身からすると完全に余計な手間が増えただけなのだから当然なのですが、そもそもアップデートすると環境との不整合からクラッシュするようになったり、パッケージ管理システムとして不完全なところが多々あって、ユーザーのみならず、当の開発・管理の側からも非難轟々なんだそうで。

そういえば、デスクトップでsnap版のfirefoxやchromiumを既に使ってはいるのですが、当初は頻繁にアップデートしろしろとメッセージが出て鬱陶しかったのが最近は出なくなったように思います。これはアップデート時のリスクから、そもそもアップデートを提供しにくくなった、という事なのでしょうか。だとしたら本末転倒ですね。

それはともかく、確かに現状snapが導入されてプラスになった点、またこれから期待できる部分があるかというと、少なくともユーザー側から見れば皆無だし、管理システムが併存している以上、ベンダ側からしても管理すべきシステムが複雑化しただけでしかないのでは、と。これでは悪評が出るのもむべなるかな。

もっとも、これまで、Canonicalが独自の機能やらアプリやらの開発に手を出していい結果になったためしがないので、その辺のsnapに関する悪評を聞いても正直またか、と思うだけではあるのですが。改めて余計な事はしないで頂きたいと願いつつも、きっと懲りないんだろうなあと。ほんと残念な企業ですね。 もう諦めてますが。