#!/bin/sh # # Copyright (C) 2012 Etersoft # Copyright (C) 2012 Vitaly Lipatov <lav@etersoft.ru> # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. # __epm_autoremove_altrpm() { local pkg local flag= load_helper epm-packages echo echo "Just remove all non -devel libs packages not need by anything" for pkg in $(short=1 pkg_filenames= epm_packages | grep -- "^lib" | grep -v -- "-devel$" | grep -v -- ^libreoffice ) ; do sudocmd rpm -v -e $pkg && flag=1 done # call again for next cycle until all libs will removed [ -n "$flag" ] && __epm_autoremove_altrpm return 0 } epm_autoremove() { case $PMTYPE in apt-rpm) assure_exists remove-old-kernels # ALT Linux only __epm_autoremove_altrpm # ALT Linux only sudocmd remove-old-kernels ;; apt-dpkg) sudocmd apt-get autoremove ;; aura) sudocmd aura -Oj ;; yum-rpm) # cleanup orphanes? while true ; do docmd package-cleanup --leaves $(subst_option non_interactive --assumeyes) # FIXME: package-cleanup have to use stderr for errors local PKGLIST=$(package-cleanup --leaves | grep -v "Loaded plugins" | grep -v "Unable to") [ -n "$PKGLIST" ] || break sudocmd yum remove $PKGLIST done ;; urpm-rpm) sudocmd urpme --auto-orphans ;; emerge) sudocmd emerge --depclean assure_exists revdep-rebuild sudocmd revdep-rebuild ;; pacman) sudocmd pacman -Qdtq | sudocmd pacman -Rs - ;; slackpkg) # clean-system removes non official packages #sudocmd slackpkg clean-system ;; guix) sudocmd guix gc ;; #zypper-rpm) # sudocmd zypper clean # ;; *) fatal "Have no suitable command for $PMTYPE" ;; esac }