1 ポイント 投稿者 GN⁺ 2024-01-26 | 1件のコメント | WhatsAppで共有
  • Linuxユーザーは、数か月のテストを経た公式Firefox .debパッケージを、Ubuntu、Debian、Debianベースのディストリビューションで選択できるようになった
  • 新パッケージはSnap・Flatpakのサポートを維持しつつ、ディストリビューション標準のパッケージフローに合ったネイティブパッケージの選択肢を追加する
  • 従来の.debパッケージがディストリビューションごとの外部管理に依存していたのに対し、今回のパッケージはMozillaがソースコードから直接ビルド・サポートする方式
  • Mozillaはコンパイラベースの最適化を適用しているが、他の.debパッケージでは管理主体によって同じ最適化がすべて含まれるとは限らない
  • 新しいAPTリポジトリはFirefoxのリリースプロセスと直接連携しており、最新機能やセキュリティ修正を適用するにはFirefoxの再起動が必要

Debian系向けの公式.deb選択肢

  • MozillaはFirefox on LinuxパッケージをUbuntu、Debian、Debianベースのディストリビューション向けに公開した
  • Linux向けFirefoxは複数の公式形式で提供されている
    • Mozillaの.tar.bz2ビルド
    • Snap
    • Flatpak
    • Debianベースのディストリビューション向けの新しい.debパッケージ
  • 新しい.debパッケージにより、FirefoxはSnapとFlatpakとの互換性を引き続き保ちながら、ユーザーがネイティブパッケージを選べるようになる

Mozillaによる直接ビルドと性能最適化

  • 新パッケージはFirefoxをソースコードから変更なしで組み立て、Mozillaが直接ビルドしてサポートする
    • 従来のFirefox .debパッケージは、LinuxディストリビューションによってはMozilla外部の個人や組織の協力が必要だった
  • Mozillaはより良い性能のためにコンパイラベースの最適化を適用している
    • 他の.debパッケージは、パッケージ管理主体によってMozillaが意図した最適化をすべて含む場合もあれば、含まない場合もある

アップデートとインストール経路

  • 新しいAPTリポジトリはFirefoxのリリースプロセスに直接接続されている
    • Mozillaが最新アップデートを提供すると、ユーザーは受け取れる
    • 最新バージョンを適用するにはFirefoxを再起動する必要がある
  • 多くのLinuxディストリビューションは、すでにパッケージマネージャーを通じてFirefoxをプリインストールし、既定のブラウザとして設定して提供している
  • インストール方法はFirefox on LinuxパッケージLinux向けFirefoxインストールガイドで確認できる

1件のコメント

 
GN⁺ 2024-01-26
Hacker News のコメント
  • Firefox を .deb でインストールしたとき、バックグラウンド更新が入るとブラウザの再起動を強制する挙動が煩わしかった
    普段どおり使っていると、突然すべての URL が about:restartrequired にリダイレクトされ、作業を止めざるを得なかった
    今回の発表だけではこの問題が修正されたのかは不明で、そうでなければ引き続き Mozilla が提供する .tar.gz ファイルを使うと思う
    書き込み権限のあるディレクトリに展開しておけば、Windows のように Firefox が自己更新し、強制的な中断はない
    https://otechworld.com/wp-content/uploads/2022/04/restart-fi...
    https://support.mozilla.org/en-US/kb/install-firefox-linux#w...

    • 安定版パッケージは分からないが、最近導入された Nightly パッケージ では、APT アップグレード後もブラウジングを続けられると明記されている
      “Firefox can continue browsing after an APT upgrade, allowing people to restart at their convenience” と更新されている
      https://blog.nightly.mozilla.org/2023/10/30/introducing-mozi...
    • この .deb でも問題はまだ残りそうだ。パッケージマネージャが更新を行う方式そのものが Firefox に問題を起こす
      再起動通知は、ディスク上のバイナリと実行中のバイナリが一致していないことを Firefox がユーザーに知らせる手段だ
      以前はこの警告がなかったため、新しいプロセスを作るとランダムにクラッシュしていたが、警告のおかげで少なくとも秩序立てて再起動できる
      親コメントのように .tar.gz は複数プラットフォームで使われる Mozilla の更新手順 を使うため、この問題を回避できる。最小限の手順は、/opt/firefox/ のような場所に展開し、ユーザーまたはグループに読み取り・書き込み・実行権限を持たせたうえで、Firefox.desktop ファイルを作成またはコピーして適切なフォルダに置き、ランチャーに表示されるようにすることだ
      https://specifications.freedesktop.org/desktop-entry-spec/de...
      https://specifications.freedesktop.org/menu-spec/latest/ar01...
    • 新しいタブを開くたびに再起動を求められ、再起動しないとそのタブは使えなかったと記憶している。すでに開いていたタブは動き続けていた
      その後 Ubuntu から Debian に移り、Mozilla の .tar.gz をインストールしたが、言われているとおり自己更新される
      ちょうど今バージョンを確認してみると、Help、About Firefox ダイアログに更新状態が表示されており、Firefox ディレクトリの updates/0/update.status には downloading が入っていたが、今は applied になっている
      update.version には 122.0 が入っており、update.mar という 20MB のファイルもある。last-update.log には共有ライブラリや他のファイルについて PREPARE PATCHEXECUTE PATCHFINISHED PATCH の行が大量にあり、新バージョンは updated/ ディレクトリで待機しているようだ
      About ダイアログはまだ 121.0.1 と表示し、Restart to update Firefox ボタンを表示している。新バージョンへ切り替えなければならなくなるまで、現在のバージョンをどれくらい長く使えるのか見てみるつもりだ
    • .tar.gz ビルドも本質的には同じ問題を抱えている。ただ文句を言わないだけで、古いパッケージのファイルを閉じ、新しいパッケージのファイルを開く必要があるため、結局は再起動が必要だ
      中断時間を減らすには、ブラウザを再起動した後に History | Restore previous session を使えばよい
      Flatpak ビルド は、アプリを終了するまで 2 つのバージョンをディスク上に併存させることでこの問題を回避する。終了時にだけ旧バージョンが削除され、次回起動から新バージョンが使われる
    • これはひどいユーザー体験だ。Firefox を .deb ファイルや Arch AUR パッケージで使っていたときに、そんなことがあった記憶はない
      バックグラウンドで実際に更新が進むのは望んでいない。更新確認や、次回ブラウザ再起動時に適用するファイルをあらかじめ準備しておくのは構わない
      実行中のブラウザプロセスの下でアプリのファイルをこっそり差し替え、新しいコンテンツを開けなくするのは好ましくない
      もしかすると .deb ではなく .tar.gz を使っていたのかもしれない。Firefox 用の .desktop ファイルを作成して編集した記憶がある
      より公式のパッケージマネージャで管理するために作られたパッケージファイルよりも、手動で管理する .tar.gz の展開ディレクトリのほうが 更新体験 が優れているというのは、直感に反している
  • すでに ~mozillateam PPA を使っていた。Snap は嫌いなので。それでも 公式 Firefox リポジトリができるのは良いこと
    Ubuntu が聞いているなら: Snap は絶対に使わない。すべての Ubuntu マシンから削除したし、強制的に押し付けてくるなら、どれだけ苦痛でも Debian に移るつもり

    • Linux Mint に移るかもしれない。あそこは anti-snap の立場が非常に明確
      ただ、公式 KDE スピンをまた出してくれたらいいのに
    • Debian に行くと、どんな苦痛を想定しているのか気になる。実際に移行して毎日使っているので、その見方が知りたい
    • PopOS は実質的に強制 Snap のない Ubuntu で、ドライバ対応もより良く、実際の Firefox パッケージもある
      個人的にはセキュリティ上いくつか追加の利点があるので Flatpak Firefoxを使っているが、望めばネイティブ Firefox があることは知っている
    • 最近 Ubuntu をインストールした初心者の立場だと、snap という言葉をよく見かけたし、良くも悪くも HN のランダムな意見をインターネット平均よりは信頼しがち
      Snap の何がそんなに嫌なのか気になる。それと、気に入らない場合にマシンから削除するコツもあればうれしい
  • Chromebook ではうれしい追加。これで Crostini で Flatpak なしに最新の Firefox、つまり ESR ではない版をインストールできる
    残念ながら Mozilla はまだ公式チャネルで Firefox 用の aarch64-linux ビルドを提供していないので、ARM64 Chromebook ユーザーには別の方法が必要
    たとえば Nix を使っているが、ハードウェアアクセラレーションを動かすには nixGL のような複雑な設定が必要

    • Chromebook で動作する Linux Arm64 バイナリをコンパイルする方法を学べる良い資料があるのか気になる
      GCC 4.8 と古い Debian で x86 および Amd64 Debian ビルドを作っている C コードがあるのだが、Chromebook でも同じように実行できるバイナリを作るには何をすべきか知りたい
    • ChromeOS で Firefox を使うと Chrome と比べてどうなのか気になる。二級アプリのように感じたりしないのか?
  • 単に Debian testing や unstable に入っているものを使っているが、Mozilla から Firefox を直接ダウンロードして最新版へ自己更新させるのはとても簡単
    以下は Firefox を /usr/local に入れるが、~//opt などに変えて使うのも簡単で、作成したシンボリックリンクだけを $PATH のどこかに置けばよい
    デスクトップ統合は使っているデスクトップ環境やウィンドウマネージャによるが、自動でなくても調べるのは難しくないはず
    wget -O firefox-latest.tar.bz2 \
    "https://download.mozilla.org/?product=firefox-latest-ssl&os=linux6…;
    tar xjf firefox-latest.tar.bz2
    sudo rm -rf firefox-latest.tar.bz2 /usr/local/bin/firefox /usr/local/firefox
    sudo mv firefox/ /usr/local/
    sudo ln -s /usr/local/firefox/firefox /usr/local/bin/firefox

    • Firefox Developer Edition をそのやり方で使っている。バックグラウンドで更新されたからといって動作を拒否する問題はなく、ハンバーガーメニューに、都合のよいときに再起動するよう促す小さな緑の点が表示されるだけ
  • PPA パッケージ(https://launchpad.net/~mozillateam/+archive/ubuntu/ppa)を使っているので、今は混乱している
    これが同じパッケージなのか、乗り換えるべきなのかわからない。記事で少なくとも触れてくれればよかったのに

    • 見たところ、“Ubuntu Mozilla Team” は Mozilla の人たちで構成されているのではなく、Ubuntu 向けに Mozilla ソフトウェアをパッケージングしている人たちのようだ
      その PPA の最新パッケージは Rico Tzschichholz がアップロードしており、Mozilla 所属には見えない
    • PPA パッケージをやめて公式リポジトリを使うほうが、ほぼすべての場合で 99.9% 良いはず
      方法は Google や YouTube に詳しくあり、HN に全部書くには長すぎる。Google や DuckDuckGo の最初のページに出てくるはず
      公式リポジトリができたので、PPA を管理していた人たちも時間がたてば更新をやめる可能性が高い
  • Debian/Ubuntu は Spotify と Signal の第一級ネイティブパッケージが選ぶ唯一のディストリビューションでもある
    できれば Fedora を使おうとしているので、なおさら目立つが、クライアント型ソフトウェアでも Debian が最初の選択であることが多い
    Ubuntu と Debian の人気と相互互換性を考えれば筋は通っている
    Fedora でも通常は使える。Firefox は独自パッケージがあり、Signal には Flatpak がある

    • 今はわからないが、以前は彼らの .deb パッケージは Snap パッケージより更新が遅かった
  • Mozilla チームの良いアップデート。引き続き頑張ってほしい
    ただし欠けているのは、プライバシーと自由への継続的なコミットメント
    CEO の Mitchell Baker による悪名高い “We Need More Deplatforming (2021)” という記事以降、何が変わったのかわからない。これはとても見過ごせないし、Mozilla は市民権に対して強いコミットメントを示すべきだと思う
    https://blog.mozilla.org/en/mozilla/we-need-more-than-deplat...

    • リンク先の記事のタイトルは “We need more than deplatforming” なので、誤って引用しているように見える
      それに、その記事がプラットフォーム追放を支持しているようにもあまり見えない
    • なぜ変わったと思うのか気になる
  • また原点に戻ったのか? 以前は .deb リポジトリがあり、なくなって、今またできた

    • .deb パッケージはサーバーサイドレンダリングのように新しい流行になった
    • Mozilla が Debian パッケージリポジトリを持っていた記憶がない。何か見落としているのかな?
  • 抜けている5つ目の重要な利点がある:
    sudo apt-get purge snapdを、煩わしい望まない結果なしに実行できるようになること

    • 最近、snapdがセグメンテーションフォルトを出し続ける問題があり、完全に削除するのが解決策だった
      調べてみると、SnapにあったものはすべてFlatpakにもあり、そもそもFlatpakのほうが好みだった
    • snapdが追加の依存関係として再インストールされないようにするには、sudo apt-mark hold snapdも忘れてはいけない
    • Ubuntuでは、lxdはいまだにSnapパッケージでしか提供されていないようだ。今は使っていないが、実際かなり良いものだ
      幸い、今ではincusとしてフォークされており、DebianとopenSUSEには両方とも入る予定だ。おそらくRed Hat系ディストリビューションでも可能だろう
    • Snapの使用をやめるのに、この新しいFirefoxパッケージを待つ必要はなかったのでは?