====== Packaging Extras ====== ===== APT Sources ===== ==== Lenny ==== deb http://ftp.debian.org/debian lenny main contrib non-free deb http://backports.debian.org/debian-backports lenny-backports main contrib non-free deb http://backports.debian.org/debian-backports lenny-backports-sloppy main contrib non-free deb http://security.debian.org lenny/updates main contrib non-free ==== Squeeze ==== deb http://ftp.debian.org/debian squeeze main contrib non-free deb http://backports.debian.org/debian-backports squeeze-backports main contrib non-free deb http://security.debian.org squeeze/updates main contrib non-free ===== Package Control ===== ==== Update a package only if installed ==== apt-get install --only-upgrade PACKAGENAME ==== Reinstall all configs for package ==== If you need to get all configs back to original state make a copy of the directory needing to be replaced and delete all contents of the original then execute the following: apt-get -o Dpkg::Options::="--force-confniss" install --reinstall PKGNAME ==== Force package uninstall ==== dpkg --force-all -r PACKAGENAME ===== /etc keeper ===== ==== This helps in versionizing your /etc directory. ==== * apt-get install etckeeper * /etc/apt/apt.conf.d/05etckeeper: DPkg::Pre-Invoke { "if [ -x /usr/sbin/etckeeper ]; then etckeeper pre-install; fi"; }; DPkg::Post-Invoke { "if [ -x /usr/sbin/etckeeper ]; then etckeeper post-install; fi"; }; RPM::Pre-Invoke { "if [ -x /usr/sbin/etckeeper ]; then etckeeper pre-install; fi"; }; RPM::Post-Invoke { "if [ -x /usr/sbin/etckeeper ]; then etckeeper post-install; fi"; }; ===== apt Listbugs ===== ==== This lists critical bugs prior to updates ==== * apt-get install apt-listbugs * /etc/apt/apt.conf.d/10apt-listbugs // Check all packages whether they has critical bugs before they are installed. // If you don't like it, comment it out. DPkg::Pre-Install-Pkgs {"/usr/sbin/apt-listbugs apt || exit 10"}; DPkg::Tools::Options::/usr/sbin/apt-listbugs ""; DPkg::Tools::Options::/usr/sbin/apt-listbugs::Version "2"; ===== apt List Changes ===== ==== package change history notification tool ==== * apt-get install apt-listchanges * /etc/apt/apt.conf.d/20listchanges DPkg::Pre-Install-Pkgs { "/usr/bin/apt-listchanges --apt || test $? -ne 10"; }; DPkg::Tools::Options::/usr/bin/apt-listchanges::Version "2"; ===== RootKit Hunter ===== ==== update rkhunter when updating packages ==== * apt-get install rkhunter * /etc/apt/apt.conf.d/90rkhunter // Makes sure that rkhunter file properties database is updated after each remove or install only if hashes test is enabled DPkg::Post-Invoke { "if [ -x /usr/bin/rkhunter ] && ( ! grep -q -E '^DISABLE_TESTS=.*(hashes.*attributes|attributes.*hashes|properties)' /etc/rkhunter.conf || grep -q -E '^ENABLE_TESTS=.*(hashes|attributes|properties)' /etc/rkhunter.conf); then /usr/bin/rkhunter --propupd --nolog; fi" } ===== IWatch ===== ==== Disable IWatch when updating packages ==== * apt-get install iwatch * /etc/apt/apt.conf.d/02iwatch DPkg::Pre-Invoke { "if [ -x /usr/bin/iwatch ] ; then service iwatch stop; fi" } DPkg::Post-Invoke { "if [ -x /usr/bin/iwatch ] ; then service iwatch start; fi" } ===== Package Listing ===== ==== Used to generate a list of installed packages for use in reinstalling the system to the current state ==== Build the command "dpkg --get-selections installed.txt" into a apt.conf.d hook. * /etc/apt/apt.conf.d/80pkglist DPkg::Post-Invoke { "echo -n 'Updating /etc/apt/installed-pkgs.txt... ' && /usr/bin/dpkg --get-selections > /etc/apt/installed-pkgs.txt && echo 'Done'" } To reinstall use the following: apt-get install dselect dpkg --set-selections