Uninstall / remove a Homebrew package including all its dependencies

后端 未结 10 1292
萌比男神i
萌比男神i 2020-12-04 04:25

I have a Homebrew formula that I wish to uninstall/remove along with all its dependencies, skipping packages whom other packages depend upon (a.k.a. Cascadi

10条回答
  •  抹茶落季
    2020-12-04 04:51

    Save the following script as 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
    

    Now install it with the following command

    sudo install brew-purge /usr/local/bin
    

    Now run it

    brew purge package
    

    Example using 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.
    $ 
    

提交回复
热议问题