分页: 1 / 1

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

发表于 : 2017-11-21 16:03
科学之子
"aptitude why 未安装包"的结果是什么?难道是未定义行为吗?

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

发表于 : 2017-11-21 16:20
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.

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

发表于 : 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"也会出现一堆不知所云的依赖关系.

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

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

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

代码: 全选

$ aptitude why termit
i   winff-gtk2 Depends  xterm | x-terminal-emulator
p   termit     Provides x-terminal-emulator