How to make my very own ubuntu minimal install?

I have made a complete application solution built on top of ubuntu.

Now that I have this ready; i'm looking to make my very own install of ubuntu (the smallest footprint possible with only the very bare minimal packages that my application requires).

My application consisty mainly of a mysql server, php, proftp and nginx (plus some other bash scripts).

The idea would be to have a clean & lean installer that will install everything so that i can redistribute this 'application' with a simple installation cd (easier for the end user).

I've stumbled upon Ubuntu Minimal Remix (http://www.ubuntu-mini-remix.org/)

Which seems a good starting point; but it's a live cd; I can install my whole application framework on it, no problem. But then, i don't know how to make an installer or how to build the iso that will actually install my "appliance".

I'd appreciate any simple guidelines or directions to get me started.


Solution 1:

It me me quite some time to figure out how remastering worked. I finally got the hang of it and wrote down the steps used to create my first live CD with installer. I want to thank Pilolli Pietro for this google code wiki page: http://code.google.com/p/ardesia/wiki/Create_a_live_distro.

This line is specifically used to add an installer (executed from the context of the remix):

// check the dependencies of that package to find out what other 
// flavors you could use.
apt-get --with-install-recommends install ubiquity-frontend-kde

All steps I took are below. I know some stuff is missing, but it's more to get an idea of how this works.

// get a util to help with creating the image
sudo apt-get install uck

// clean any previous stuff
sudo uck-remaster-clean
// unpack the iso
sudo uck-remaster-unpack-iso /mnt/iso/ubuntu-mini-remix-12.10-i386.iso
// unpack the root fs
sudo uck-remaster-unpack-rootfs
// change focus to the root fs
sudo uck-remaster-chroot-rootfs

  // make repositories available (uncomment all universe and multiverse entries)
  nano /etc/apt/sources.list
  // update apt
  apt-get update

  // disable automatic suggestions (--with-install-recommends can temporary enable them)
  nano /etc/apt/apt.conf
  //-- contents
  APT::Install-Recommends "false";
  APT::Install-Suggests "false";
  //--

  // install kde desktop
  apt-get install plasma-desktop
  // install ltsp client and kubuntu theme for ldm
  apt-get install ltsp-client ldm-kubuntu-theme
  // install basic applications
  apt-get install dolphin kdesdk-dolphin-plugins kdepasswd kfind konsole kwrite kompare plasma-widget-folderview
  // install browser
  apt-get install chromium-browser
  // install package manager
  apt-get install muon muon-updater muon-notifier
  // add an installer
  apt-get --with-install-recommends install ubiquity-frontend-kde
  // remove any leftovers of installed and then uninstalled packages (should not do anything)
  apt-get autoremove
  // clean the cache
  apt-get clean
  // change focus
  exit

// pack the root fs
sudo uck-remaster-pack-rootfs
// create an iso
sudo uck-remaster-pack-iso ubuntu-mini-kde-12.10-i386.iso
//copy the iso
cp ~/tmp/remaster-new-files/ubuntu-mini-kde-12.10-i386.iso /mnt/iso/

Solution 2:

How to customize an install CD:
Here is the official documentation:
https://help.ubuntu.com/community/InstallCDCustomization

You'll find examples scripts here:
https://help.ubuntu.com/community/InstallCDCustomization/Scripts
https://help.ubuntu.com/community/InstallCDCustomization/PreseedExamples