Debian everything-in-usr ディレクトリ方式 (usrrmerge) は dpkg -S を停止します。解決策?

Debian everything-in-usr ディレクトリ方式 (usrrmerge) は dpkg -S を停止します。解決策?

私はdpkg -S /path/to/fileDebianで何かがどこから来るのかを知るのに慣れています。 〜新しい「usrのすべて」AKAユーザーマージ戦略はしばしばそれを破ります。たとえば、次のようになります。

> dpkg -S /bin/systemd
systemd: /bin/systemd
> readlink -f /bin/systemd
/usr/lib/systemd/systemd
> dpkg -S /usr/lib/systemd/systemd
dpkg-query: no path found matching pattern /usr/lib/systemd/systemd

実際に実行中の実行可能ファイルは /usr/lib/systemd/systemd なので、実行可能ファイルを特定のファイルトレースにdpkg -S別の usrmerge 認識の代替方法があるかどうか疑問に思うかもしれません。dpkg -Sそのパッケージ?

答え1

/usr私は-merge-awareに対応することがわかりませんが、dpkg -Sこの問題を回避する方法があります。dpkg -Sフルパスは不要なので

dpkg -S lib/systemd/systemd

そして

dpkg -S bin/systemd

あなたが探している答えを提供します。特定のパターンに一致するすべてのファイルを部分文字列としてリストしたくない場合は、以下を追加します*

dpkg -S '*lib/systemd/systemd' '*bin/systemd'

また、見ることができますdpkg-query:パスマッチパターン/usr/bin/bashが見つかりません。/usrマージの説明(管理者によって作成された)関連する制約のいくつかを説明し、パッケージメソッド(include)によって破損した多くの機能を一覧表示しますdpkgdpkgusrmergedpkg -S

関連情報