"aptitude why 未安装包"的结果是什么?难道是未定义行为吗?

最大的社区版本,Ubuntu的发源地
回复
头像
vickycq
论坛版主
帖子: 4507
注册时间: 2011-03-20 13:12
系统: Debian
来自: 山东省寿光县
送出感谢: 100 次
接收感谢: 995 次
联系:

Re: "aptitude why 未安装包"的结果是什么?难道是未定义行为吗?

#2

帖子 vickycq » 2017-11-21 16:20

代码: 全选

0 ~ $ aptitude why 0ad-data
Not currently installed
The candidate version 0.0.21-1 has priority optional
No dependencies require to install 0ad-data

1 ~ $ aptitude --version
aptitude 0.8.7

0 ~ $ cat /etc/issue
Debian GNU/Linux 9 \n \l
老版的话,输出的不是搜索过程么 http://paste.ubuntu.com/26010808/

[编辑] 忘了之前设置过 Aptitude::CmdLine::Verbose "2"; 在 /etc/apt/apt.conf 中,所以输出了搜索过程。恢复默认设定后,只会输出一行 Unable to find a reason to install 0ad-data.
这些用户感谢了作者 vickycq 于这个帖子:
科学之子 (2017-11-23 13:28)
评价: 3.7%
Debian 中文论坛 - forums.debiancn.org
欢迎所有 Debian GNU/Linux 用户
科学之子
帖子: 2260
注册时间: 2013-05-26 6:58
系统: Debian 9
送出感谢: 842 次
接收感谢: 30 次

Re: "aptitude why 未安装包"的结果是什么?难道是未定义行为吗?

#3

帖子 科学之子 » 2017-11-21 23:45

vickycq 写了:

代码: 全选

0 ~ $ aptitude why 0ad-data
Not currently installed
The candidate version 0.0.21-1 has priority optional
No dependencies require to install 0ad-data

1 ~ $ aptitude --version
aptitude 0.8.7

0 ~ $ cat /etc/issue
Debian GNU/Linux 9 \n \l
老版的话,输出的不是搜索过程么 http://paste.ubuntu.com/26010808/

[编辑] 忘了之前设置过 Aptitude::CmdLine::Verbose "2"; 在 /etc/apt/apt.conf 中,所以输出了搜索过程。恢复默认设定后,只会输出一行 Unable to find a reason to install 0ad-data.
用debootstrap安装的全新基本系统测试结果如下:

代码: 全选

root@debian:/# aptitude show termit |grep '^State'
State: not installed
root@debian:/# aptitude why termit
i   cron            Recommends exim4 | postfix | mail-transport-agent
p   courier-mta     Provides   mail-transport-agent                  
p   courier-mta     Depends    courier-authlib (>= 0.66.4-5~)        
p   courier-authlib Recommends expect                                
p   expect          Recommends tk8.6                                 
p   tk8.6           Recommends xterm | x-terminal-emulator           
p   termit          Provides   x-terminal-emulator                   
root@debian:/# aptitude --version
aptitude 0.8.7
Compiler: g++ 6.3.0 20170415
Compiled against:
  apt version 5.0.1
  NCurses version 6.0
  libsigc++ version: 2.10.0
  Gtk+ support disabled.
  Qt support disabled.

Current library versions:
  NCurses version: ncurses 6.0.20161126
  cwidget version: 0.5.17
  Apt version: 5.0.1
root@debian:/# cat /etc/os-release |grep '^PRETTY'
PRETTY_NAME="Debian GNU/Linux 9 (stretch)"
root@debian:/# aptitude show 0ad-data |grep '^State'
State: not installed
root@debian:/# aptitude why 0ad-data
Not currently installed
The candidate version 0.0.21-1 has priority optional
No dependencies require to install 0ad-data
root@debian:/# 
还有"aptitude why openbox"也会出现一堆不知所云的依赖关系.
头像
vickycq
论坛版主
帖子: 4507
注册时间: 2011-03-20 13:12
系统: Debian
来自: 山东省寿光县
送出感谢: 100 次
接收感谢: 995 次
联系:

Re: "aptitude why 未安装包"的结果是什么?难道是未定义行为吗?

#4

帖子 vickycq » 2017-11-23 21:07

诶,还真是这样。不过这些“假想”依赖链看上去并没有问题,由于里面没有“硬”依赖,才没有真的安装。(都涉及到 Recommend 或虚包(virtual package))

是不是可以理解成:由于 aptitude 可以解析出这样一条“依赖”链,如果我们现在安装 termit,即使将其标记为自动安装也无法被 autoremove

代码: 全选

$ aptitude why termit
i   winff-gtk2 Depends  xterm | x-terminal-emulator
p   termit     Provides x-terminal-emulator
这些用户感谢了作者 vickycq 于这个帖子:
科学之子 (2017-11-25 17:48)
评价: 3.7%
Debian 中文论坛 - forums.debiancn.org
欢迎所有 Debian GNU/Linux 用户
回复

回到 “Debian发行版”