Archive for the ‘gentoo’ Category.

A few Gentoo tips

Mostly archived here for my benefit for when I break something with a reckless emerge -uDNAv world update again. *vbg*

  1. To install a binary version when something major's borked (like when you can't get anything to compile, including gcc, because you broke gcc…)
    • Go to and find the correct directory for your machine. (For example, my AMD64 server uses binaries in the directory.)
    • Add this to your /etc/make.conf (or /etc/portage/make.conf), all on one line: PORTAGE_BINHOST=""

      (Use the directory you chose in the previous step, obviously.)

    • To install the binary from tinderbox, use emerge -G $package. So, to install a gcc binary, you would type: emerge -G gcc
    • More info available here.
  2. To find out what a USE flag does:
    • euse -i $flag
    • So to find out what the multilib flag does, you would type euse -i multilib
    • Euse is part of the gentoolkit package, so you'll need to emerge that if you haven't already (emerge -uDNav gentoolkit).
  3. One way to fix the dreaded C++ preprocessor "/lib/cpp" fails sanity check error:
    • Update your active gcc version with a binary from tinderbox, as explained above. To see which gcc version that's installed on your machine the system is using as the default, type gcc-config -l. (That's an L for list.)
    • Make sure that gcc has the cxx USE flag enabled (in your /etc/portage/package.use or make.conf), so that it will build with support for C++ and won't break when rebuilt. (Ask me how I learned that flag was needed. Yeah. *vbg*)
    • Rebuild gcc (emerge -uDNav gcc).
  4. Typing emerge --info --verbose $package will tell you the system info and all the USE flags a package was built with, so you can see if the flags you needed enabled/disabled are.
  5. Older snapshots of portage are available if you are trying to update an older system that hasn't been updated in a while.
  6. List of USE flags
  7. Gentoo cheat sheet

What's your favorite tip or trick when dealing with an "oh crap, what the hell did I do?" moment?

Dear idiot package maintainer:

Changing damned near every USE flag on a minor (!?!?!) release (0.8.34 to 0.8.34-r1) for a package WITHOUT DOING A DAMNED GOOD JOB DOCUMENTING THE CHANGES is a monumentally stupid idea and all you're going to do is annoy the crap out of people who use the package.

Is it a good idea to add support in gentoo for (nearly) all of the nginx modules, rather than the few that were previously being supported? Yes, it's fabulous. Thank you very much for working on this.

Is it a good idea to move all the module choice settings to USE_EXPAND? I have no friggin' clue, because there is NO DOCUMENTATION on how to, y'know, use USE_EXPAND. (I'm damned good at finding information, no matter where it's squirreled away. And yes, I RTFM. It's not there.) As it stands now, all you did was a) break my nginx installation (I made one minor change to a config file so I could restrict access to my new awstats installation and spent four hours tracking down why it wouldn't let me restart the nginx server), and b) changed my package.use entry for nginx from this:

www-servers/nginx -* fastcgi imap pcre ssl zlib

to this:

www-servers/nginx -* http ssl nginx_modules_http_access nginx_modules_http_auth_basic nginx_modules_http_autoindex nginx_modules_http_empty_gif nginx_modules_http_fastcgi nginx_modules_http_geo nginx_modules_http_gzip nginx_modules_http_gzip_static nginx_modules_http_limit_req nginx_modules_http_memcached nginx_modules_http_referer nginx_modules_http_rewrite

Wow. That's helpful. (Read: not terribly, actually.)

No love,

In the absence of any actual useful documentation, I had to try a bunch of different options to get nginx to do what I wanted it to do again. There was some indication (on pages about other packages) that USE_EXPAND was to be put in /etc/make.conf, as well as the package's variable (NGINX_MODULES_HTTP, in this case). So something like this should've worked, right?

NGINX_MODULES_HTTP="access auth_basic autoindex empty_gif fastcgi geo gzip gzip_static limit_req memcached referer rewrite"

But nope, that was a no-go. I think it actually makes more sense to be able to set the modules variable in /etc/portage/package.use, seeing as that's the currently accepted file location for detailed USE flag settings, but what do I know? I'm just a user. /sarcasm

Neither of those options (or any of the others I tried) worked. As stated above, I ended up changing the nginx line in my package.use and re-emerging nginx with the new USE flags. Hopefully this tip will help out anyone else who runs into this problem and will save many wasted hours.

qmail + vpopmail + ezmlm + mysql: ezmlm list-making notes

I've been setting up nginx, qmail, vpopmail, ezmlm-idx, etc., on my new VPS on slicehost (yay, slicehost!), and figured I'd post my notes in case they're useful to anyone else, since finding even tiny bits and pieces helped along the way and kept me from tearing my hair out while trying to work out how everything fits together. *vbg*

These are my (very brief) notes about how to set up a new mailing list in ezmlm, when using vpopmail's virtual domains with a mysql backend. (Yes, I realize I haven't posted about the parts of the server set up that came first, but these are the most complete notes I have at the moment. *g*)

Continue reading 'qmail + vpopmail + ezmlm + mysql: ezmlm list-making notes' »


Quote of the day from a random sig file on a post in the gentoo forums:

gentoo sex is updatedb; locate; talk; date; cd; strip; look; touch; finger; unzip; uptime; gawk; head; emerge –oneshot condom; mount; fsck; gasp; more; yes; yes; yes; more; umount; emerge -C condom; make clean; sleep