apt-get purge reclama sobre dependências não atendidas

0

Estou tentando remover todos os meus pacotes IME, para fazer uma nova instalação de um IME diferente (fcitx). Eu tentei isso:

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

que fornece a saída abaixo, terminando em falha em dependências não atendidas. Supondo que deveria dizer "remover" quando "instalando", ainda parece uma queixa estranha. Eu tentei remover os pacotes ibus-xxx explícitos da minha linha de comando acima (no caso de a duplicação com o regex causar o problema), mas não houve diferença. O que estou fazendo errado?

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.
    
por Darren Cook 20.11.2014 / 11:21

1 resposta

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

Claro, porque você está dizendo ao apt-get para instalar qualquer pacote que comece com ibus e gir1.2-ibus . O + no final do nome do pacote diz ao apt-get para instalar tal pacote, já que o apt-get não trata + como parte da expressão regular, o que é evidente quando você vê "Nota, selecionando 'ibus-table-viqr' para regex '^ ibus.' ". Você deve substituir .+ para .* ou .? ou, melhor ainda, use $ .

A parte relevante da página man que descreve o comportamento está abaixo:

If no package matches the given expression and the expression contains one of '.', '?' or '*' then it is assumed to be a POSIX regular expression, and it is applied to all package names in the database. Any matches are then installed (or removed). Note that matching is done by substring so 'lo.*' matches 'how-lo' and 'lowest'. If this is undesired, anchor the regular expression with a '^' or '$' character, or create a more specific regular expression.

    
por 21.11.2014 / 04:17

Tags