我一直在执行保存软件包选择的常规例程,并将软件包标记为auto
或manual
按照此处的问题和答案中概述的那样:从备份中恢复所有数据dpkg --set-selections '*'
。
现在,当我尝试运行时,apt-get -u dselect-upgrade
我得到:
# apt-get -u dselect-upgrade
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages have unmet dependencies:
cron : Depends: adduser but it is not going to be installed
upstart : Depends: initscripts
Depends: mountall
Depends: ifupdown (>= 0.6.10ubuntu5)
E: Error, pkgProblemResolver::Resolve generated breaks, this may be caused by held packages.
E: Internal error, problem resolver broke stuff
另一种选择aptitude install
根本没有给我任何东西:
# aptitude install
No packages will be installed, upgraded, or removed.
0 packages upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 0 B of archives. After unpacking 0 B will be used.
所以当我检查是否安装了cron
和adduser
时,它们当然是:
# dpkg -l|grep -E '(adduser|cron)'
ii adduser 3.113ubuntu2 add and remove users and groups
ii cron 3.0pl1-120ubuntu4 process scheduling daemon
那么两个问题:这是怎么回事?我该如何解决?
注意:软件包选择取自另一个 12.04 安装,具有相同的架构和一切。事实上,它是一个在同一台机器上运行的系统,然后重新安装到不同的磁盘上。这是我第一次在通过包状态克隆现有设置,然后从原始文件中复制相关内容时遇到此类问题/etc
。
对于第二组据称未满足的依赖关系,我得到:
# dpkg -l|grep -E '(upstart|initscripts|mountall|ifupdown)'
ii ifupdown 0.7~beta2ubuntu8 high level tools to configure network interfaces
ii initscripts 2.88dsf-13.10ubuntu11.1 scripts for initializing and shutting down the system
ii mountall 2.36.4 filesystem mounting tool
ii upstart 1.5-0ubuntu7.2 event-based init daemon
这样就全部安装好了。
也没有保留包裹。的输出aptitude search ~i|grep ^ih
为空。
有问题的系统安装的是 Ubuntu Server 12.04.2,否则已升级到最新的软件包。没有配置第三方存储库,没有包固定等。
顺便说一句:如果答案能够包含一些关于在遇到此类问题时通常要做什么的指示,而不依赖于各个dpkg
前端中略有不同的问题解决程序,我将不胜感激。我遇到的大多数建议似乎都完全依赖于此,这就是为什么我现在不走运的原因。所以我也需要了解一些细节。
答案1
尝试执行以下操作:
packages=`cat installed-software | grep -v deinstall | cut -f1`
sudo apt-get install $packages