UbuntuですべてのSnapパッケージを更新してシームレスなソフトウェアメンテナンスを実現する方法
UbuntuでSnapアプリを最新の状態に保つのは、少々面倒な作業です。実行してsudo snap refresh
も何も進まない、あるいは明確な理由もなくパッケージがアップデートされない、といったことも起こります。原因が必ずしも明確とは限りません。ネットワークの問題、依存関係、あるいは単にロックファイルが原因かもしれません。そこで、このガイドでは、アップデートプロセスのトラブルシューティングを行い、Snapパッケージを最新の状態に保ちながら、すべてを壊さないための方法について説明します。
Firefox、Spotify、VS Codeなどのアプリを安全に保ち、新機能を利用できるようにするには、適切にアップデートすることが重要です。これは利便性の問題だけではありません。Snapパッケージが古くなると、ずっと前に修正できたはずのセキュリティホールやバグが潜んでいる可能性があります。試行錯誤やコマンドラインでの調整が必要になるかもしれませんが、最終的にはアプリを最新の状態に保ち、信頼性を確保する必要があります。
UbuntuでSnapパッケージのアップデートを修正する方法
Snapdが正しく動作しているか確認する
まず、Snapデーモン( )が問題なく動作していることを確認してください。snapdがハングsnapd
したり、動作が不安定なためにアップデートが失敗することがあります。snapdがアクティブかどうかを確認するには、ターミナルを開いて以下を入力してください。Ctrl + Alt + T
systemctl status snapd
「アクティブ(実行中)」と表示されていれば問題ありません。表示されていない場合は、次のコマンドで起動してみてください。
sudo systemctl start snapd
起動時に自動的に起動するように設定してください。
sudo systemctl enable snapd
何らかの理由で、特定の設定ではsnapd が異常な状態になり、再起動またはサービスの再起動が必要になる場合があります。状態がおかしい場合はマシンを再起動し、再度更新をお試しください。
更新をブロックするロックファイルがないことを確認する
場合によっては、以前の更新プロセスがクラッシュしたり、ロック ファイルが残って新しい更新が開始できなくなることがあります。 または でロック ファイルを確認してください/var/lib/dpkg/lock
。/var/lib/snapd/lock
次のコマンドを実行します。
ls -l /var/lib/lock
snap や dpkg に関連するものを見つけた場合は、削除した方が良いかもしれませんが、注意が必要です。例えば、
sudo rm /var/lib/dpkg/lock /var/lib/dpkg/lock-frontend /var/lib/snapd/lock
これは軽々しく行うべきことではありません。再起動するか、を使用して、まだ実行中の更新プロセスがあるかどうかを確認し、まずそれらを終了したほうがよい場合もありますtop
。
通常、再起動するとこの問題はかなり解消されるので、不明な場合は再起動を試してください。
詳細出力で強制的に更新する
いつもの方法sudo snap refresh
が機能しない、またはハングしている場合は、詳細なログ記録を使用して強制的に更新し、どこで停止しているかを確認します。
sudo SNAPD_DEBUG=1 snap refresh --verbose
これにより、ネットワークのタイムアウトや依存関係の競合など、アップデートが失敗する原因となる手がかりが得られる可能性があります。Wi-Fiが不安定な場合やDNSに問題がある場合、Snapが停止してしまうことがあります。インターネット接続が安定していることを確認してから、コマンドを再度実行してください。
Snapのキャッシュをクリアしてリセットする
破損したキャッシュはアップデートに支障をきたす可能性があります。キャッシュをクリアすると改善される可能性があります。
sudo rm -rf /var/snap/cache/*
次に再試行します:
sudo snap refresh
注:キャッシュの削除には注意が必要です。安全ではありますが、保存しておきたいものまで削除されてしまう場合があります。Ubuntuの新しいバージョンでは、通常安全で、アップデート時に発生する奇妙なバグを修正できる可能性があります。
Snap自体を更新し、ログを確認する
すべてが失敗する場合は、snapdのバージョンが古くなっているか破損していないか確認してください。次のコマンドを実行してください。
snap version
古くなっている場合はsnapd
、次の方法で更新してください。
sudo apt update && sudo apt upgrade snapd
それからもう一度試してください。
さらに詳しく調べるには、システム ログでsnapd操作中のエラーを確認します。
journalctl -u snapd
これにより、権限エラーや競合するサービスなど、根本的な問題が明らかになる場合があります。再試行する前に、これらの問題を修正してください。
追加のヒントとよくある落とし穴
特定のアプリがアップデートを拒否したり、ロックファイルがプロセスをブロックし続けたりすることがあります。私が見たいくつかの環境では、ロックをクリアするかsnapdをアップデートした後に再起動すると問題が解決しました。また、大規模なアップデートの場合は、以下を実行すると便利です。
sudo snap refresh --list
保留中のものを確認し、それらだけを更新してください。インターネット回線にも注意してください。当たり前のことですが、DNSやプロキシの問題で更新が滞ってしまうことが何度もあるはずです。
アップデートがなかなか終わらない場合は、問題のあるスナップを削除して再インストールすることを検討してください。ただし、これは通常最後の手段です。
まとめ
Snapパッケージのアップデートは、特に奇妙な問題が発生した場合、必ずしも簡単ではありません。通常、snapdがスムーズに動作していることを確認し、ロックを解除し、ネットワークをチェックすれば問題は解決します。それでも問題が解決しない場合は、詳細出力で強制的に更新するか、キャッシュをリセットすると改善する可能性があります。もちろん、Linuxは依然として、私たちを最もイライラさせる方法で驚かせる方法を見つけます。
まとめ
- snapdがアクティブかどうかを確認し、必要に応じて再起動します。
- ロックファイルを探して慎重にクリアする
- トラブルシューティングのために詳細出力で強制的に更新する
- アップデートが失敗し続ける場合はキャッシュをクリアしてください
- 必要に応じてsnapd自体を更新する
- 根本的なエラーがないかログを確認する
これが役に立つことを祈る
これで誰かの時間を数時間節約でき、パッケージもあまり手間をかけずに最新の状態に保たれることを願っています。ちょっとした問題は必ず発生しますが、ほとんどの場合、十分に調べれば解決できます。頑張ってください。