4

I'm a packager, so I often need to use cowbuilder or pbuilder to build packages either for my own use or when I'm sponsoring somebody elses' work.

On my laptop, my disk isn't the fastest in the world, so I'm considering using tmpfs for the build area, /var/cache/pbuilder/build, to speed up the build process. Files in there can get fairly large, for example right now I've 2.2GB of data in that folder. In addition, cowbuilder works by making shallow COW copies (using hardlinks I think).

Would it be feasible to mount the build directory under tmpfs?

I'm on Ubuntu 10.04 Lucid Lynx, but will be moving shortly to the prerelease of Maverick Meerkat. My machine has 4GB of RAM.

Marco Ceppi
  • 47,783
  • 30
  • 172
  • 197
lfaraone
  • 4,687
  • 1
  • 25
  • 32
  • How much RAM do you have in your machine? – Marco Ceppi Aug 21 '10 at 15:11
  • I have 4GB. (well, `free -m` reports 3961M total, but I assume some's just reserved for the BIOS or video) – lfaraone Aug 21 '10 at 15:34
  • I was thinking about this too - pbuilder is quite slow on my machine... unfortunately, I only have 2GB of RAM. Would that work for small projects? – Nathan Osman Aug 21 '10 at 18:28
  • @George Over the course of an Ubuntu development cycle, I must do ~200 build in pbuilder between my Ubuntu, Debian, PPA, and personal stuff. I only have 2GB of RAM. Maybe I'm just extremely patient... – andrewsomething Oct 11 '10 at 02:40

2 Answers2

4

I've used a tmpfs for pbuilder before, and done some benchmarks against ext4. With 4GB of ram it ended up being between 30%-100% faster on the tmpfs for most packages, up to packages as big as Xorg.

You'll want to bind-mount /var/cache/apt/archives in order to get your package cache available in the chroot.

You can get a more efficient build with sbuild and an aufs union mount, where the base chroot won't be copied to ram.

RAOF
  • 11,739
  • 3
  • 32
  • 49
  • Thank you for the hint about bind mount of the apt cache. Just setting APTCACHE does not help, if building on tmpfs. By bind mounting it, we save the complete deb space. Thank you. – user110838 Nov 26 '12 at 15:13
3

Keep in mind that hardlinks can't work across filesystems. I think using tmpfs would be bad.

Dennis Kaarsemaker
  • 6,804
  • 25
  • 38
  • I had this experience trying it out. I think it would work to mount the ramdisk to the /tmp/buildd directory inside the cow, but that requires a bit more of a dance to set up and tear down. – mikepurvis Apr 05 '16 at 14:03