This specification describe the way to get a list of all the packages installed on a given system. This list of packages could be restored at a later time saving effort of bringing a freshly installed system to a desriable state with regards to installed applications.


Making the process of saving/restoring the set of installed packages on a system will enable users to create and share "Selection Classes". That way one can create package selection snapshot that suits a particular purpos, an interest group, an individual etc.

Scope & Use cases

  • Joe wants to have the same set of packages he installed, over his freind's computer, in order to troubleshoot and help him with a problem that arose due to a special package selection he have. Being realtively new to linux and Ubuntu in particualr, he doesn't know about dpkg --get-selections and related freinds.
  • Marry is a support representative for one of Canonical's affiliated consulting firms. She recives a support call from one of the company's clients, a big insurance firm. They would like to have an Ubuntu machine installed with all the required software to manage their customer related operations. They know what they want but do not know which set of packages will satisfy this need. Marry prepares a PackageSelectionSnapshot file for them, and provide it to their contact. Their contact applies the file and satisify the need.

  • Sivan is an aspiring Ubuntu developer. He uses his desktop to do package and code development activities. Those activities require a specific set of tools and packages to be priory installed on the system. After setting his first box, he creates a package selection snapshot, uploads it to Launchpad, and applies it to every new system he installs for his development use.
  • James is a system administrator for a software development company. He is responsible for about 50 workstations company wide. He created package selection snapshot that describe each department application needs, and uploaded to his company's portal in Launchpad. When a new marketing employee arrives, he opens the PSS client tool, chooses "MarketingPackageSelection" and all relavant application are automatically installed.



  • Be modular, easily expose functionality.
  • Produces XML output of a given snapshot, ideally this XML should be feedable to Launchpad for future processing and manipulation.
  • XML output representing a snapshot will be fed back to the tool, which will then use python-apt or call dpkg/apt underneath to install packages back.
  • Know about seeds and flavors, and distinguish between main/universe packages

GUI Tool



  • Depends on python-apt.
  • Command line tool, callable from other programs.


Data preservation and migration

Outstanding issues

BoF agenda and discussion


PackageSelectionSnapshots (last edited 2008-08-06 16:19:35 by localhost)