apt-get purge가 충족되지 않은 종속성에 대해 불평합니다.

apt-get purge가 충족되지 않은 종속성에 대해 불평합니다.

다른 IME(fcitx)를 새로 설치하기 위해 모든 IME 패키지를 제거하려고 합니다. 나는 이것을 시도했습니다 :

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에게 ibusand로 시작하는 모든 패키지를 설치하라고 지시했기 때문입니다 gir1.2-ibus. +패키지 이름 끝에는 apt-get이 해당 패키지를 +정규식의 일부로 간주하지 않기 때문에 apt-get에게 이러한 패키지를 설치하라고 지시합니다."참고로 'ibus-table-viqr'을 선택하세요.정규식 "^ibus".". 아직은 또는 그 이상 .+으로 교체해야 합니다 . 대신 사용하세요..*.?$

이 동작을 설명하는 매뉴얼 페이지의 관련 부분은 다음과 같습니다.

주어진 표현식과 일치하는 패키지가 없고 표현식에 ".", "?" 또는 "*" 중 하나가 포함되어 있으면 POSIX 정규 표현식으로 간주되어 데이터베이스의 모든 패키지 이름에 적용됩니다. 그런 다음 일치 항목을 설치(또는 제거)합니다. 일치는 하위 문자열로 수행되므로 "lo.*"는 "how-lo" 및 "lowest"와 일치합니다. 이러한 일이 발생하지 않도록 하려면 "^" 또는 "$" 문자를 사용하여 정규식을 수정하거나 보다 구체적인 정규식을 만드십시오.

관련 정보