특정 패턴과 일치하는 모든 패키지를 어떻게 삭제합니까? libreoffice-debian-menus libobasis3.6-* 그러나 그것은

libreoffice를 제거하고 싶습니다. 이 프로그램은 약 30 개의 모듈로 구성됩니다. 이상적으로는 다음을 사용하여 제거 할 수 있습니다.

aptitude remove libreoffice3.6* libreoffice-debian-menus libobasis3.6-*

그러나 그것은 실패

Couldn't find any package whose name or description matched "libreoffice3.6*"

기타

패턴별로 패키지 세트를 삭제하려면 어떻게합니까?

PS : 나는 사용과 대답에 대한 행복 해요 dpkg또는 apt



답변

  1. 사용 apt-get하지 말고 aptitude정규식을 사용하십시오 .

  2. 정규식에서 .모든 문자를 *의미하며 0 회 이상을 의미합니다. 따라서 표현식 libreoffice.*은 문자열을 포함하는 모든 패키지 이름과 임의 libreoffice의 문자 수 와 일치합니다 .

  3. 쉘이 별표를 해석하지 않도록하려면 정규식을 작은 따옴표로 묶으십시오. (라는 이름의 파일이 있다면 libreoffice.example현재 디렉토리에 예를 들어, 쉘은 대체 할 libreoffice.*함께 libreoffice.example이 동작을 중지 작은 따옴표를 사용할 필요가 있으므로.)

결과:

sudo apt-get remove 'libreoffice.*'


답변

대안은 다음과 같습니다.

dpkg -l | grep libreoffice | awk '{print $2}' | xargs -n1 echo

일치하는 모든 패키지가 나열됩니다 libreoffice. 제거하려는 모든 것이 확인되면 다음 명령 을주의해서 실행하십시오 .

dpkg -l | grep libreoffice | awk '{print $2}' | xargs -n1 sudo apt-get purge -y

아이디어:

  1. 시스템에 설치된 모든 패키지를 나열하십시오.
  2. 일치하는 항목 만 표시하도록 필터링 libreoffice
  3. 패키지 이름을 가진 열만 표시하도록 필터링
  4. 해당 패키지 각각에서 purge 명령을 실행하십시오.

답변

적성은 전역 패턴을 지원하며 다음과 같은 또 다른 멋진 일치 항목을 지원합니다.

aptitude remove '?and(?name(libreoffice), name(3.6), ~i)' libreoffice-debian-menus

이것은 이름 libreoffice과 패키지가 3.6설치된 모든 패키지와 일치합니다 (즉, 그 ~i의미입니다).


답변