パッケージマネージャにロックファイルが必要なのはなぜですか?

パッケージマネージャにロックファイルが必要なのはなぜですか?

dpkg/var/lib/dpkg/lock使用する場合は lockfile() を使用してください。

  • これらのロックファイルが必要なのはなぜですか?
  • 複数のインスタンスが不可能な理由は何ですか?

ベストアンサー1

dpkgこれは、編集されたタイトルからわかるように、特定の質問ではありません。代わりに、これは(私が知っている)すべてのパッケージマネージャが実行することであり、その理由があります。それでもなぜ混乱するのか理解しています。

パッケージマネージャはデータベースを使用して、インストールされたパッケージに関する情報を追跡します。複数のユーザーが同時にデータベースに書き込もうとすると、データが破損する可能性が高くなります(これによりシステムが実際に破損する可能性があります)。

したがって、多くの(すべて?)パッケージマネージャは以下を使用します。ロックファイルデータベースへの書き込みが進行中であるため、他のクライアントがそうすることを許可してはいけないことを示します。


Smart Package Managerは、要求が読み取り専用でデータベースをロックする必要がないタイミングを決定できます。したがって、一部のジョブは同時に実行できますが、他のジョブは同時に実行することはできません。

おすすめ記事