Debianパッケージはどのように壊れていますか?

Debianパッケージはどのように壊れていますか?

さまざまなディストリビューションで破損したパッケージを修正する方法に多くの回答がありました。これは非常に役に立ち、問題を解決したようです。ところで、パッケージがどのように破損したのか疑問に思います。

コマンドを使用してパイプラインの問題を解決していますが、apt-get install特定の依存関係をインストールするのに問題があります。数回の再試行後にパイプラインが機能するようにすることができました。しかし、解決策を検索しながら、apt-getに非常に便利なフラグがあることがわかり、--fix-brokenこれが私の問題を解決しました。しかし、問題はまだ存在していますが、問題は何ですか?--fix-broken私のために解決された正確な問題を見つける方法がわかりません。

マニュアルページを見ると、次のような一般的な情報がいくつかあります。

Fix; attempt to correct a system with broken dependencies in place. This option, when
           used with install/remove, can omit any packages to permit APT to deduce a likely
           solution. If packages are specified, these have to completely correct the problem. The
           option is sometimes necessary when running APT for the first time; APT itself does not
           allow broken package dependencies to exist on a system. It is possible that a system's
           dependency structure can be so corrupt as to require manual intervention.

パイプラインに関する限り、このシステムはこの時点でインスタンス化されました。破損したパッケージには何が起こったのでしょうか?このフラグがどのように機能するかをより詳細に説明できる人はいますか?最も具体的には、パッケージがどのように破損していますか?

答え1

解決される一般的な問題はapt install --fix-broken依存関係の欠落です。一般的な方法それdpkgパッケージを直接インストールすると、依存関係がないかどうかがdpkgわかりますが、欠落している依存関係を検索する方法がないため、パッケージが部分的にインストールされます(インストールされているが構成されていません)。apt install --fix-broken破損した依存関係を解決し、必要なパッケージをインストールしたり、依存関係を解決できない場合は、完全に破損したパッケージを削除してください。

もしあなたならはい一般的に直接使用する方がdpkg良いですapt install。ローカルパッケージを指すことができ、インストール中の依存関係を解決します。

答え2

パッケージは、単に依存関係のリストを含むソフトウェアの一部です。システムにいくつかの非標準インストール(ソースからビルドなど)がある場合、または他のインストールが中断されるのを防ぐために特定のバージョンのパッケージを固定している場合(「dpkghold」または「dnf --exclude」を使用)、次のインストールを試してください。これらすべての依存パッケージが必要な他の状態のパッケージは失敗し、「破損した」パッケージになります。

パッケージやシステムの状態に問題がない可能性があることに注意することが重要です。元のパッケージは手で編集するのに適していますが、そうではありません。予想される破損しているとみなされます。

関連情報