- $s chmod +x $f
- $s apt-get -y install --purge --auto-remove "$@"
- $s rm $f
- }
- pf() {
- # package name and descriptions
- apt-cache search "$@"
- }
- pff() {
- local s; [[ $EUID != 0 ]] && s=sudo
- # nice aptitude search from emacs shell. package description width as
- # wide as the screen, and package name field small aptitude
- # manual can't figure out how wide emacs terminal is, of course
- # it doesn't consult the $COLUMNS variable... and in a normal
- # terminal, it makes the package name field ridiculously big
- # also, remove that useless dash before the description
- aptitude -F "%c%a%M %p %$((COLUMNS - 30))d" -w $COLUMNS search "$@"
- }
- pu() {
- local s; [[ $EUID != 0 ]] && s=sudo
- while fuser /var/lib/dpkg/lock &>/dev/null; do sleep 1; done
- $s apt-get -y remove --purge --auto-remove "$@"
- # seems slightly redundant, but it removes more stuff sometimes.
- $s apt-get -y autoremove
- }
- pup() { # upgrade
- while fuser /var/lib/dpkg/lock &>/dev/null; do sleep 1; done
- pupdate
- local s; [[ $EUID != 0 ]] && s=sudo
- $s apt-get -y dist-upgrade --purge --auto-remove "$@"
- $s apt-get -y autoremove
- }
- # package info
- pl() {
- if type -p aptitude &>/dev/null; then
- aptitude show "$@"
- else
- apt-cache show "$@"
- fi
- }
- pfile() {
- local file=$1
- # ucfq can tell us about config files which are not tracked
- # with apt-file. but, for at least a few files I tested
- # which are tracked with apt-file, ucfq doesn't show their
- # package name. So, commenting this, waiting to find
- # a config file only tracked by ucfq to see if it gives the
- # package name and if I can identify this kind of file.
- # if [[ $file == /* ]] && ! ucfq -w $file | grep ::: &>/dev/null; then
- # ucfq $file
+ $s chmod +x $f
+ $s apt-get -y install --allow-downgrades --purge --auto-remove "$@"
+ $s rm $f
+ }
+ pf() {
+ # package name and descriptions
+ apt-cache search "$@"
+ }
+ pff() {
+ local s; [[ $EUID != 0 ]] && s=sudo
+ # nice aptitude search from emacs shell. package description width as
+ # wide as the screen, and package name field small aptitude
+ # manual can't figure out how wide emacs terminal is, of course
+ # it doesn't consult the $COLUMNS variable... and in a normal
+ # terminal, it makes the package name field ridiculously big
+ # also, remove that useless dash before the description
+ aptitude -F "%c%a%M %p %$((COLUMNS - 30))d" -w $COLUMNS search "$@"
+ }
+ pu() {
+ local s; [[ $EUID != 0 ]] && s=sudo
+ while fuser /var/lib/dpkg/lock &>/dev/null; do sleep 1; done
+ $s apt-get -y remove --allow-downgrades --purge --auto-remove "$@"
+ # seems slightly redundant, but it removes more stuff sometimes.
+ $s apt-get -y --allow-downgrades autoremove
+ }
+ pup() { # upgrade
+ while fuser /var/lib/dpkg/lock &>/dev/null; do sleep 1; done
+ pupdate
+ local s; [[ $EUID != 0 ]] && s=sudo
+ $s apt-get -y dist-upgrade --allow-downgrades --purge --auto-remove "$@"
+ $s apt-get -y autoremove --allow-downgrades
+ }
+ # package info
+ pl() {
+ if type -p aptitude &>/dev/null; then
+ aptitude show "$@"
+ else
+ apt-cache show "$@"
+ fi
+ }
+ pfile() {
+ local file=$1
+ # ucfq can tell us about config files which are not tracked
+ # with apt-file. but, for at least a few files I tested
+ # which are tracked with apt-file, ucfq doesn't show their
+ # package name. So, commenting this, waiting to find
+ # a config file only tracked by ucfq to see if it gives the
+ # package name and if I can identify this kind of file.
+ # if [[ $file == /* ]] && ! ucfq -w $file | grep ::: &>/dev/null; then
+ # ucfq $file