apt-get purge 抱怨未满足的依赖关系

apt-get purge 抱怨未满足的依赖关系

我正在尝试删除所有 IME 软件包,以全新安装不同的 IME (fcitx)。我试过这个:

apt-get purge ibus-anthy anthy anthy-common libanthy0 \
  ibus-mozc mozc-data mozc-server mozc-utils-gui \
  ^ibus.+ gir1.2-ibus.+ im-config python-ibus libpyzy-1.0.0 \
  libsunpinyin3 sunpinyin-data

它给出了以下输出,最终因未满足的依赖关系而失败。假设“安装”时应该说“删除”,这似乎仍然是一个奇怪的抱怨。我尝试从上面的命令行中删除显式的 ibus-xxx 包(以防正则表达式的重复导致问题),但没有区别。我究竟做错了什么?

Reading package lists... Done
Building dependency tree       
Reading state information... Done
Note, selecting 'ibus-libthai' for regex '^ibus.'
Note, selecting 'ibus-table' for regex '^ibus.'
Note, selecting 'ibus-doc' for regex '^ibus.'
Note, selecting 'ibus-table-cantonese' for regex '^ibus.'
Note, selecting 'ibus-table-ipa-x-sampa' for regex '^ibus.'
Note, selecting 'ibus-table-thai' for regex '^ibus.'
Note, selecting 'ibus-table-jyutping' for regex '^ibus.'
Note, selecting 'ibus-table-yawerty' for regex '^ibus.'
Note, selecting 'ibus-cangjie' for regex '^ibus.'
Note, selecting 'ibus-anthy-dev' for regex '^ibus.'
Note, selecting 'ibus-table-cangjie-big' for regex '^ibus.'
Note, selecting 'ibus-table-wubi' for regex '^ibus.'
Note, selecting 'ibus-table-translit' for regex '^ibus.'
Note, selecting 'ibus-sunpinyin' for regex '^ibus.'
Note, selecting 'ibus-el' for regex '^ibus.'
Note, selecting 'ibus-table-translit-ua' for regex '^ibus.'
Note, selecting 'ibus-table-scj6' for regex '^ibus.'
Note, selecting 'ibus-pinyin' for regex '^ibus.'
Note, selecting 'ibus-chewing' for regex '^ibus.'
Note, selecting 'ibus-table-cangjie' for regex '^ibus.'
Note, selecting 'ibus-table-yong' for regex '^ibus.'
Note, selecting 'ibus-table-cns11643' for regex '^ibus.'
Note, selecting 'ibus-table-extraphrase' for regex '^ibus.'
Note, selecting 'ibus-table-cantonhk' for regex '^ibus.'
Note, selecting 'ibus-table-emoji' for regex '^ibus.'
Note, selecting 'ibus-array' for regex '^ibus.'
Note, selecting 'ibus-tabel-erbi' for regex '^ibus.'
Note, selecting 'ibus-m17n' for regex '^ibus.'
Note, selecting 'ibus-mozc' for regex '^ibus.'
Note, selecting 'ibus-xkbc' for regex '^ibus.'
Note, selecting 'ibus-qt4' for regex '^ibus.'
Note, selecting 'ibus-gtk' for regex '^ibus.'
Note, selecting 'ibus-table-quick-classic' for regex '^ibus.'
Note, selecting 'ibus-chewing-dbg' for regex '^ibus.'
Note, selecting 'ibus-table-quick' for regex '^ibus.'
Note, selecting 'ibus-hangul' for regex '^ibus.'
Note, selecting 'ibus-table-easy' for regex '^ibus.'
Note, selecting 'ibus-table-rustrad' for regex '^ibus.'
Note, selecting 'ibus-table-wu' for regex '^ibus.'
Note, selecting 'ibus-anthy' for regex '^ibus.'
Note, selecting 'ibus-clutter' for regex '^ibus.'
Note, selecting 'ibus-table-cangjie3' for regex '^ibus.'
Note, selecting 'ibus-table-cangjie5' for regex '^ibus.'
Note, selecting 'ibus-table-stroke5' for regex '^ibus.'
Note, selecting 'ibus-table-easy-big' for regex '^ibus.'
Note, selecting 'ibus-table-quick3' for regex '^ibus.'
Note, selecting 'ibus-table-quick5' for regex '^ibus.'
Note, selecting 'ibus-input-pad' for regex '^ibus.'
Note, selecting 'ibus-rime' for regex '^ibus.'
Note, selecting 'ibus-table-array30' for regex '^ibus.'
Note, selecting 'ibus-table-erbi' for regex '^ibus.'
Note, selecting 'ibus-gtk3' for regex '^ibus.'
Note, selecting 'ibus-tegaki' for regex '^ibus.'
Note, selecting 'ibus-table-latex' for regex '^ibus.'
Note, selecting 'ibus-table-erbi-qs' for regex '^ibus.'
Note, selecting 'ibus-googlepinyin' for regex '^ibus.'
Note, selecting 'ibus-libpinyin' for regex '^ibus.'
Note, selecting 'ibus-table-viqr' for regex '^ibus.'
Note, selecting 'ibus-skk' for regex '^ibus.'
Note, selecting 'ibus-table-compose' for regex '^ibus.'
Note, selecting 'ibus-unikey' for regex '^ibus.'
Note, selecting 'gir1.2-ibus-1.0' for regex 'gir1.2-ibus.'
Note, selecting 'libpyzy-1.0-0' for regex 'libpyzy-1.0.0'
gir1.2-ibus-1.0 is already the newest version.
gir1.2-ibus-1.0 set to manually installed.
ibus-anthy is already the newest version.
ibus-pinyin is already the newest version.
ibus-sunpinyin is already the newest version.
ibus-table is already the newest version.
ibus-table set to manually installed.
ibus-table-wubi is already the newest version.
ibus-mozc is already the newest version.
ibus-table-translit is already the newest version.
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 ibus-anthy : Depends: anthy but it is not going to be installed
              Depends: libanthy0 but it is not going to be installed
 ibus-anthy-dev : Depends: anthy but it is not going to be installed
 ibus-array : Depends: python-ibus but it is not going to be installed
 ibus-el : Depends: python-ibus but it is not going to be installed
 ibus-googlepinyin : Depends: python-ibus but it is not going to be installed
 ibus-mozc : Depends: mozc-data but it is not going to be installed
 ibus-pinyin : Depends: libpyzy-1.0-0 but it is not going to be installed
               Depends: python-ibus but it is not going to be installed
 ibus-sunpinyin : Depends: libsunpinyin3 but it is not going to be installed
                  Depends: sunpinyin-data but it is not going to be installed
 ibus-xkbc : Depends: python-ibus but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

答案1

apt-get purge ibus-anthy anthy anthy-common libanthy0 \
  ibus-mozc mozc-data mozc-server mozc-utils-gui \
  ^ibus.+ gir1.2-ibus.+ im-config python-ibus libpyzy-1.0.0 \
  libsunpinyin3 sunpinyin-data

当然,因为您告诉 apt-get 安装任何以ibus和开头的软件包gir1.2-ibus+软件包名称末尾的 告诉 apt-get 安装此类软件包,因为 apt-get 不将其视为正+则表达式的一部分,这一点在您看到时很明显“注意,选择‘ibus-table-viqr’正则表达式“^ibus”。。您应该替换.+.*.?或者更好,使用$代替。

描述该行为的手册页的相关部分如下:

如果没有包与给定的表达式匹配,并且表达式包含“.”、“?”或“*”之一,则假定它是 POSIX 正则表达式,并将其应用于数据库中的所有包名称。然后安装(或删除)任何匹配项。请注意,匹配是通过子字符串完成的,因此“lo.*”匹配“how-lo”和“lowest”。如果不希望出现这种情况,请使用“^”或“$”字符固定正则表达式,或创建更具体的正则表达式。

相关内容