Debian

‘apt-cache rdepends –installed’ 表示一個包被載入了兩次!

  • December 30, 2021

Debian 伸展;適合 1.4.11

$ apt-cache rdepends --installed libgstreamer-plugins-bad1.0-0
libgstreamer-plugins-bad1.0-0
Reverse Depends:
 libwebkit2gtk-4.0-37
 libwebkit2gtk-4.0-37

知道為什麼libwebkit2gtk-4.0-37包裹在這裡出現兩次嗎?我從Aptitude得到了類似的結果:

 --\ Packages which depend on libgstreamer-plugins-bad1.0-0 (12)
   --\ Depends (12)
p     gir1.2-gst-plugins-bad-1.0 1.10.4-1
p     gir1.2-gst-plugins-bad-1.0 1.10.4-1
p     gir1.2-gst-plugins-bad-1.0 1.10.4-1+deb9u
p     gir1.2-gst-plugins-bad-1.0 1.10.4-1+deb9u
p     gstreamer1.0-plugins-bad 1.10.4-1+deb9u2
p     gstreamer1.0-vaapi 1.10.4-1+b1
p     gstreamer1.0-vaapi 1.10.4-1+b1
p     libgstreamer-plugins-bad1.0-dev 1.10.4-1+
i A   libwebkit2gtk-4.0-37 2.18.6-1~deb9u1
i A   libwebkit2gtk-4.0-37 2.18.6-1~deb9u1
p     libwebkit2gtk-4.0-37-gtk2 2.18.6-1~deb9u1
p     libwebkit2gtk-4.0-37-gtk2 2.18.6-1~deb9u1

僅供參考,等效的Aptitude命令行查詢表現出相同的行為:

$ aptitude search ~Dlibgstreamer-plugins-bad1.0-0
p   gir1.2-gst-plugins-bad-1.0                                             - GObject introspection data for the GStreamer libraries from the "bad" set        
p   gstreamer1.0-plugins-bad                                               - GStreamer plugins from the "bad" set                                             
p   gstreamer1.0-vaapi                                                     - VA-API plugins for GStreamer                                                     
p   libgstreamer-plugins-bad1.0-dev                                        - GStreamer development files for libraries from the "bad" set                     
i A libwebkit2gtk-4.0-37                                                   - Web content engine library for GTK+                                              
p   libwebkit2gtk-4.0-37-gtk2                                              - Web content engine library for GTK+ - GTK+2 plugin process

雖然我發現了幾個對apt bug 的引用(一個在這裡),但我沒有看到任何具體提到我所看到的內容。

關於導致重複包引用出現的任何想法?.

仔細考慮EduardoTrápani優秀答案後更新(下):

$ apt list -a libgstreamer-plugins-bad1.0-0
Listing... Done
libgstreamer-plugins-bad1.0-0/oldoldstable,now 1.10.4-1+deb9u2 amd64 [installed,automatic]
libgstreamer-plugins-bad1.0-0/oldoldstable 1.10.4-1 amd64

還:

$ apt rdepends --installed libgstreamer-plugins-bad1.0-0
libgstreamer-plugins-bad1.0-0
Reverse Depends:
 Depends: libwebkit2gtk-4.0-37 (<< 1.10.5)
 Depends: libwebkit2gtk-4.0-37 (>= 1.10.4)

由於我安裝的libgstreamer-plugins-bad1.0-0版本是1.10.4-1+deb9u2,因此它滿足所述apt rdepends --installed libgstreamer-plugins-bad1.0-0命令輸出中規定的兩個版本條件。也許這就是為什麼Aptitude兩次報告該包裹(上圖)的原因。

預設情況下,此命令

$ apt-cache rdepends --installed libgstreamer-plugins-bad1.0-0

將列出所有類型的依賴項。這意味著同時指定 aDepends和的包Breaks將被列出兩次。

您可以通過要求apt-cache僅列出--important依賴項來避免這種情況。手冊頁聲明這相當於:--no-pre-depends, --no-depends, --no-recommends, --no-suggests, --no-conflicts, --no-breaks, --no-replaces, --no-enhances。但是,如果包對單個包有多個--important依賴項,則該包仍將被多次列出。

$ apt-cache rdepends --installed --important libgstreamer-plugins-bad1.0-0

不過,我的建議是使用更簡單且更適合人類使用的方法:

apt rdepends --installed libgstreamer-plugins-bad1.0-0

這將準確地告訴您每個軟體包存在的原因,以及版本號和所有內容。

引用自:https://unix.stackexchange.com/questions/684219