- 主题:ubuntu下安装一个软件,附带安装了30个包
ubuntu下安装一个软件,附带安装了30个包。但是将来删除的时候,只有其中25个被删除
可是,如果你手动在删除清单中加上这五个,一点问题都没有
有人知道为什么吗
#发自zSMTH@Redmi K20 Pro Premium Edition
--
FROM 125.86.88.*
我上午花点儿时间对比了一下两个清单。但是后来我觉得太花时间了,不想弄。那个什么依赖关系我也没搞清楚。Apt可以把依赖关系导成成一个图(graphviz)。但是那个图好像太大了。所有软件都打不开。
【 在 blitz @ [LinuxApp] 的大作中提到: 】
:
: 可能是它并不记录哪些包是你有意安装的,哪些包是被动安装的依赖项,只好猜,结果没全猜对。
:
: 你是不是对系统有洁癖?是的话,见我上面那个关于nixos的帖子。
:
#发自zSMTH@Redmi K20 Pro Premium Edition
--
FROM 125.86.88.*
我应该没有标注过。我回头把他所有的设为自动,我再试试。
【 在 blitz 的大作中提到: 】
:
: 可能是它并不记录哪些包是你有意安装的,哪些包是被动安装的依赖项,只好猜,结果没全猜对。
:
: 你是不是对系统有洁癖?是的话,见我上面那个关于nixos的帖子。
:
#发自zSMTH@Redmi K20 Pro Premium Edition
--
FROM 125.86.88.*
【 在 atzlinux 的大作中提到: 】
: apt autoremove 不能够把剩余的 5 个包删除吗?
: 在安装软件包后,是否还有安装过其它软件包?也许这 5 个软件包是其它软件包推荐了
:
一个具体一点的例子
我整理了在/var/log/apt/history.log的安装记录
当初安装gdebi的时候,安装了72个包,将这72个包都放到apt autoremove命令尾部,回车运行命令删除。
重新安装gdebi包,提示仍然是72个包要安装。
接着,通过sudo apt autoremove gdebi的方式删除,提示69个包要删除。
我比对过,的确有三个包有差异,以下三个包在autoremove中不会删除,但是安装时会自动安装
libnet-libidn-perl
libcpanel-json-xs-perl
gnome-icon-theme
--
FROM 125.86.88.*
这是要安装的72个包,黑体标注的是删除时会忽略的
$sudo apt install gdebi
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
diffstat gdebi-core gettext gnome-icon-theme intltool-debian
libarchive-zip-perl libasync-mergepoint-perl libb-hooks-endofscope-perl
libb-hooks-op-check-perl libcapture-tiny-perl libclass-xsaccessor-perl
libclone-perl libcpanel-json-xs-perl libcroco3 libdevel-callchecker-perl
libdevel-size-perl libdigest-bubblebabble-perl libdynaloader-functions-perl
libemail-valid-perl libfile-find-rule-perl libfont-ttf-perl libfuture-perl
libimport-into-perl libio-async-loop-epoll-perl libio-async-perl
libio-pty-perl libio-string-perl libipc-run-perl liblinux-epoll-perl
liblist-compare-perl libmodule-implementation-perl libmodule-runtime-perl
libmoo-perl libmoox-aliases-perl libnamespace-clean-perl libnet-dns-perl
libnet-dns-sec-perl libnet-domain-tld-perl libnet-ip-perl libnet-libidn-perl
libnumber-compare-perl libpackage-stash-perl libpackage-stash-xs-perl
libparams-classify-perl libpath-tiny-perl libperl4-corelibs-perl
libperlio-gzip-perl libreadonly-perl libref-util-perl libref-util-xs-perl
librole-tiny-perl libsereal-decoder-perl libsereal-encoder-perl
libsereal-perl libstrictures-perl libstruct-dumb-perl
libsub-exporter-progressive-perl libsub-identify-perl libsub-quote-perl
libtest-fatal-perl libtest-refcount-perl libtext-glob-perl
libtext-levenshtein-perl libtype-tiny-perl libtype-tiny-xs-perl
libunicode-utf8-perl libvariable-magic-perl libxml-writer-perl
libyaml-libyaml-perl lintian patchutils
Suggested packages:
gettext-doc autopoint libasprintf-dev libgettextpo-dev libscalar-number-perl
libbareword-filehandles-perl libindirect-perl libmultidimensional-perl
libdevel-lexalias-perl libdevel-stacktrace-perl binutils-multiarch
libtext-template-perl
The following NEW packages will be installed:
diffstat gdebi gdebi-core gettext gnome-icon-theme intltool-debian
libarchive-zip-perl libasync-mergepoint-perl libb-hooks-endofscope-perl
libb-hooks-op-check-perl libcapture-tiny-perl libclass-xsaccessor-perl
libclone-perl libcpanel-json-xs-perl libcroco3 libdevel-callchecker-perl
libdevel-size-perl libdigest-bubblebabble-perl libdynaloader-functions-perl
libemail-valid-perl libfile-find-rule-perl libfont-ttf-perl libfuture-perl
libimport-into-perl libio-async-loop-epoll-perl libio-async-perl
libio-pty-perl libio-string-perl libipc-run-perl liblinux-epoll-perl
liblist-compare-perl libmodule-implementation-perl libmodule-runtime-perl
libmoo-perl libmoox-aliases-perl libnamespace-clean-perl libnet-dns-perl
libnet-dns-sec-perl libnet-domain-tld-perl libnet-ip-perl libnet-libidn-perl
libnumber-compare-perl libpackage-stash-perl libpackage-stash-xs-perl
libparams-classify-perl libpath-tiny-perl libperl4-corelibs-perl
libperlio-gzip-perl libreadonly-perl libref-util-perl libref-util-xs-perl
librole-tiny-perl libsereal-decoder-perl libsereal-encoder-perl
libsereal-perl libstrictures-perl libstruct-dumb-perl
libsub-exporter-progressive-perl libsub-identify-perl libsub-quote-perl
libtest-fatal-perl libtest-refcount-perl libtext-glob-perl
libtext-levenshtein-perl libtype-tiny-perl libtype-tiny-xs-perl
libunicode-utf8-perl libvariable-magic-perl libxml-writer-perl
libyaml-libyaml-perl lintian patchutils
0 upgraded, 72 newly installed, 0 to remove and 7 not upgraded.
--
FROM 125.86.88.*
【 在 ilovecpp 的大作中提到: 】
: 四楼已经回答你了。
也不是啊
我试了试,apt-cache rdepends命令可以指定--no-suggests --no-recommends选项。
我的理解既然libgtk2.0-0依赖gnome-icon-theme,那么删除gnome-icon-theme就应该连带删除libgtk2.0-0
$ sudo apt-cache rdepends gnome-icon-theme--installed --no-suggests --no-recommends
gnome-icon-theme
Reverse Depends:
libgtk2.0-0
---------------------------------------------------
$ sudo apt autoremove gnome-icon-theme --dry-run
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages will be REMOVED:
gnome-icon-theme
0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded.
===================================
$ sudo apt-cache depends libgtk2.0-0
libgtk2.0-0
Depends: libgtk2.0-common
Depends: libatk1.0-0
Depends: libc6
Depends: libcairo2
Depends: libcups2
Depends: libfontconfig1
Depends: libgdk-pixbuf2.0-0
Depends: libglib2.0-0
Depends: libpango-1.0-0
Depends: libpangocairo-1.0-0
Depends: libpangoft2-1.0-0
Depends: libx11-6
Depends: libxcomposite1
Depends: libxcursor1
Depends: libxdamage1
Depends: libxext6
Depends: libxfixes3
Depends: libxi6
Depends: libxinerama1
Depends: libxrandr2
Depends: libxrender1
|Depends: adwaita-icon-theme
Depends: gnome-icon-theme
Depends: hicolor-icon-theme
Depends: shared-mime-info
shared-mime-info:i386
Recommends: libgail-common
Recommends: libgtk2.0-bin
libgtk2.0-bin:i386
Suggests: librsvg2-common
Suggests: gvfs
--
FROM 125.86.88.*
【 在 ilovecpp 的大作中提到: 】
: 不知所云。
: 如果你显式删除一个包:
: apt remove foobar
: ...................
我刚才的例子,是说A依赖B(非推荐和建议依赖),然后删除B,居然A不会被删除。
--
FROM 125.86.88.*
【 在 ilovecpp 的大作中提到: 】
: 不知所云。
: 如果你显式删除一个包:
: apt remove foobar
: ...................
不过,你给的链接有帮助,谢谢
--
FROM 125.86.88.*
【 在 atzlinux 的大作中提到: 】
: 我是用的 Debian 10.
: 在这个例子中,我机器上:
: apt depends libgtk2.0-0
: ...................
我好像明白了,A依赖B(|C),由于B和C都已经安装,单独删除B,便不会移除A。
但X也依赖B,安装X的时候,将B安装上了,但是删除X的时候,由于B也是A的依赖,所以B不会被删除,除非找到安装X时候的记录,明确制定B需要被删除。
那问题就是,如果就是想让它删除X的时候自动删除B(毕竟B是安装X时候带来的),那就需要检查系统所有这种B和C可选的情形,然后只保留一个。感觉做不到
--
修改:gnwd FROM 125.86.91.*
FROM 125.86.91.*