Debian Linux

See also freebsd and unix tricks.

Some gotchas from installing debian a few times:

  • To enable sshd in ubuntu install openssh-server
  • Massive ssh headache issues from around 2007-2008; make sure to check on these.
  • git is not what you want; you want git-core
  • Python transition should be better, but I couldn’t find a way. To get to python 2.5 on etch, do something like:

    Edit /usr/share/python/debian_defaults to this Code:
        # the default python version
        default-version = python2.5
        # all supported python versions
        supported-versions = python2.4, python2.5
        # formerly supported python versions
        old-versions = python2.3
        # unsupported versions, including older versions
        unsupported-versions = python2.3
    Then sudo pycentral updatedefault python2.4 python2.5
    And change the symlink /usr/bin/python to point to python2.5
  • Make sure to install things like bzip2, unzip, less, etc
  • bash by default takes a very long time to initialize because the auto-completion scripts are loaded multiple times; disable this in ~/.bashrc? See also [bash].
  • For building stuff you want build-essential
  • For the usual system man pages (“Linux Programmer’s Manual”), you may need to install ‘manpages-dev’
  • To install emacs without an X environment, use emacs23-nox (or a more recent version).
  • To change time zone: sudo dpkg-reconfigure tzdata
  • Might want oss-comapt for, eg, baudline?
  • If you’re having trouble accessing USB-serial devices, try removing the modemmanager package. Also might need to sudo insmod pl2303 for certain Prolific adapters because it’s included as a module (not compiled in to kernel)

Debian Package Tools

dkpg -S somefile shows what packages a given file were installed by. dpkg -L somepackage lists all the files installed by that package.

apt-rdepends -r somepackage shows all packages depending on a given package, recursively. You probably just want the first group, not the full recursive tree.

To not install “recommended” or “suggested” packages, pass -R as an argument to aptitute. To find out why a package has been installed (or guess why it might be?) use the aptitude why <package> command.

To extract the contents of a .deb file, use the ar command, then extract data.tar.gz:

ar vx somepackage.deb tar xvf data.tar.gz

Debian Packaging

sudo aptitude install gcc-4.4-arm-linux-gnueabi

Wheezy to Jessie Migration

Had trouble doing dist-upgrade. Ran sudo apt-get install init to fix init and then continued with dist-upgrade.

Permissions problem with changing wifi settings (“(32) Not authorized to control networking”). Tried:`

Add a Launchpad PPA

First, deps:

sudo apt-get install software-properties-common python-software-properties


sudo add-apt-repository ppa:some/ppa

If it’s an Ubuntu-only PPA, you’ll need to edit the /etc/apt/sources.list.d/blah.list and substitute the best Debian alternative. Eg, for wheezy, ‘trusty’ is probably the closest.

Disk Full Error With Space Left (apt-get)

If a system is configured for auto-updates, including kernel images, it’s possible to run out of inodes due to the huge number of kernel source files in /usr/src/. This presents with apt-get failing with out-of-space errors:

No apport report written because the error message indicates a disk full error

Check if this is the problem using df -i. Fix this by manually deleting some of the header folders in /usr/src, then run apt-get install -f and apt-get autoremove.

See also:

XFCE4 Keyboard Settings Broken Under Jessie: xfsettingsd

I had a very strange problem after running a dist-upgrade with debian jessie. This was on a laptop which was installed fresh with jessie while it was still testing (around December 2014); I ran dist-upgrade in April 2015 around (or a bit before) the official Jessie release.

After updating packages and rebooting, my XFCE4 application keyboard bindings were broken (eg, Super+t for xterm). Other symptoms were that system fonts got subjectively uglier. The weird thing was that windows manager bindings (eg, Super+F11 to maximize vertically) still worked. I keep my XFCE4 settings under version control, along with the rest of my dotfiles, so initially I assumed there had been some backwards incompatible change… I also suspected that maybe the window manager initiation process had changed. My old .xinitrc has always needed small tweaks for new OS releases.

In the end, the problem seems to have been that xfsettingsd had crashed and would not restart on new logins. Simply running this command from a terminal in X11 once somehow magically fixed the problem, and xfsettingsd runs (with corrected --sm-client-id arguments et al) on reboot, and my old keyboard settings all work as expected.

I tried a number of smaller fixes (including wiping ~/.cache/settings from the console), so it may have been one of those changes that ultimately fixed everything.

Persist Laptop Power Saving Flags

powertop helps identify system flags that need tuning (sysfs, iw, etc), which are super helpful, but these tweaks don’t persist through reboots.

You can automate setting all the powertop tunings at bood by adding powertop --auto-tune to /etc/rc.local (and making sure rc-local.service is configured under systemd if you are using that for init).

Alternatively, you could put just the flags you think are important in rc.local, instead of applying them all, though this won’t catch new flags after upgrades.

See also:

Chromium Fonts

Surprisingly, this trick worked for me:

Stretch Upgrade Notes

Was having problems with screen locking after updating, probably because xscreensaver and light-lock were fighting.

Solved by:

apt remove light-lock apt install lightdm

Also got rid of my old .xinitrc file, but not sure if that was related or not.

Keyboard audio controls on my Thinkpad X1 running XFCE4 stopped working with this release. The fix was to ensure xfce4-pulseaudio-plugin was installed (seemed to be by default), and adding this plugin to the XFCE tray (make sure you select the “Pulase Audio Plugin” one, not some generic volume controller like pasystray). Buttons should Just Work then.