나는이 브루의 내가 / 제거하고자 다른 패키지 (일명 의존 패키지를 건너 뛰는 모든 종속성과 함께 제거하는 것이 공식을 캐스 케이 딩 패키지 제거 패키지 관리자 용어로).
예를 들어, 패키지 a
에 의존하는 패키지 b
&를 제거합니다 c
. 여기서 패키지 d
는 패키지에 의존합니다 c
. 결과는 a
&를 모두 제거 b
하고 건너 뛰어야 c
합니다.
어떻게해야합니까?
불필요한 정크 를 남기지 않고 패키지를 제거하는 방법이 있어야합니다 .
답변
편집하다:
또는 이라는 외부 명령을 사용하여 문제가 해결 된brew rmdeps
brew rmtree
것 같습니다 .
설치하고 사용하려면 다음 명령을 실행하십시오.
$ brew tap beeftornado/rmtree
$ brew rmtree <package>
자세한 내용과 토론은 위의 링크를 참조하십시오.
원래 답변 :
현재로서는 이것을 달성하는 쉬운 방법이없는 것으로 보입니다.
그러나 Homebrew의 GitHub 페이지에 문제를 제기했으며 누군가이 문제 를 해결하기 위해 독점적 인 명령을 추가 할 때까지 임시 해결책을 제안했습니다.
있어 외부 명령 이라는 brew leaves
다른 패키지의 의존성이 아닌 모든 패키지를 출력합니다.
당신이 논리적 할 경우 와 의 출력을 brew leaves
하고 brew deps <package>
, 당신은 당신이 나중에 수동으로 제거 할 수 있습니다 분리 된 종속 패키지의 목록을 얻을 수 있습니다. 이것과 결합 xargs
하면 필요한 것을 얻을 수 있습니다 (추천하지 않음).
편집 : 누군가가 join
대신 다음을 사용하여 매우 유사한 솔루션을 제안했습니다 xargs
.
brew rm FORMULA
brew rm $(join <(brew leaves) <(brew deps FORMULA))
자세한 내용은 위에서 언급 한 문제에 대한 의견을 참조하십시오 .
답변
여기서 목표는 다른 패키지의 종속성을 손상시키지 않고 지정된 패키지와 해당 종속성을 제거하는 것 입니다. 이 명령을 사용합니다.
brew deps [FORMULA] | xargs brew remove --ignore-dependencies && brew missing | xargs brew install
참고 : @alphadogg의 유용한 의견을 반영하여 편집했습니다.
답변
brew rmtree
전혀 작동하지 않습니다 . 그 문제에 대한 링크에서 실제로 작동하는 rmrec 을 발견 했습니다. 하나님께서는 왜 brew
이것을 기본 명령으로 가지고 있지 않은지 아십니다 .
brew tap ggpeti/rmrec
brew rmrec pkgname
답변
@jfmercer 답변 (수정 사항은 의견 이상 필요)을 기반으로합니다.
패키지의 종속성을 제거하십시오 (패키지를 제거하지 않음).
brew deps [FORMULA] | xargs brew remove --ignore-dependencies
패키지 제거 :
brew remove [FORMULA]
누락 된 라이브러리를 다시 설치하십시오.
brew missing | cut -d: -f2 | sort | uniq | xargs brew install
MeldMerge 릴리스를meld
감지 한 후 제거 를 테스트했습니다 .
답변
이 답변을 사용하려면 시스템에 설치하려는 패키지 이름이 포함 된 파일을 작성하고 유지 관리해야합니다. 아직없는 경우 다음 명령을 사용하여 설치하지 않으려는 패키지 이름을 삭제하십시오.
brew leaves > brew_packages
그런 다음 다음 명령을 실행하여 설치되었지만 원치 않는 패키지 및 불필요한 종속성을 모두 제거 할 수 있습니다.
brew_clean brew_packages
brew_clean
https://gist.github.com/cskeeters/10ff1295bca93808213d에 있습니다.
이 스크립트는 brew_packages에 지정한 모든 패키지와 모든 종속 항목을 가져 와서 결과와 비교 brew list
하여 사용자와이 목록을 확인한 후 원하지 않는 패키지를 제거합니다.
이 시점에서 패키지를 제거 a
하려면 brew_packages 파일에서 패키지를 제거한 다음 다시 실행하면 brew_clean brew_packages
됩니다. 제거 b
되지만 제거 되지는 않습니다 c
.
답변
이를 위해 UNIX 파이프를 사용할 수 있습니다
brew deps [FORMULA] | xargs brew rm
답변
다음 스크립트를 brew-purge 로 저장하십시오.
#!/bin/bash
#:Usage: brew purge formula
#:
#:Removes the package and all dependancies.
#:
#:
PKG="$1"
if [ -z "$PKG" ];then
brew purge --help
exit 1
fi
brew rm $PKG
[ $? -ne 0 ] && exit 1
while brew rm $(join <(brew leaves) <(brew deps $PKG)) 2>/dev/null
do :
done
echo Package $PKG and its dependancies have been removed.
exit 0
이제 다음 명령으로 설치하십시오
sudo install brew-purge /usr/local/bin
이제 실행 해
brew purge package
gpg를 사용하는 예
$ brew purge gpg
Uninstalling /usr/local/Cellar/gnupg/2.2.13... (134 files, 11.0MB)
Uninstalling /usr/local/Cellar/adns/1.5.1... (14 files, 597.5KB)
Uninstalling /usr/local/Cellar/gnutls/3.6.6... (1,200 files, 8.9MB)
Uninstalling /usr/local/Cellar/libgcrypt/1.8.4... (21 files, 2.6MB)
Uninstalling /usr/local/Cellar/libksba/1.3.5... (14 files, 344.2KB)
Uninstalling /usr/local/Cellar/libusb/1.0.22... (29 files, 508KB)
Uninstalling /usr/local/Cellar/npth/1.6... (11 files, 71.7KB)
Uninstalling /usr/local/Cellar/pinentry/1.1.0_1... (12 files, 263.9KB)
Uninstalling /usr/local/Cellar/libassuan/2.5.3... (16 files, 444.2KB)
Uninstalling /usr/local/Cellar/libtasn1/4.13... (59 files, 436KB)
Uninstalling /usr/local/Cellar/libunistring/0.9.10... (54 files, 4.4MB)
Uninstalling /usr/local/Cellar/nettle/3.4.1... (85 files, 2MB)
Uninstalling /usr/local/Cellar/p11-kit/0.23.15... (63 files, 2.9MB)
Uninstalling /usr/local/Cellar/gmp/6.1.2_2... (18 files, 3.1MB)
Uninstalling /usr/local/Cellar/libffi/3.2.1... (16 files, 296.8KB)
Uninstalling /usr/local/Cellar/libgpg-error/1.35... (27 files, 854.8KB)
Package gpg and its dependancies have been removed.
$
