Puppy Package Manager (PPM)
A "package" is Linux terminology for an application. These are held in
online repositories, and you can download and install any package.
How to install a package
You click a radio-button along the top to choose the desired repository
-- usually the left-most one is the one most suitable for your current
version of Puppy.
The radio-buttons aligned vertically on the left enable you to narrow
the display to a specific category (these notes are for the 'Classic'
user interface, 'Ziggy' UI has slightly different layout).
Notice the checkboxes labeled EXE, DEV, DOC and NLS. Many Puppy PET packages are split into smaller packages, as follows:
EXE: This is the actual application, you definitely want this.
DEV: This contains development files, only of interest to those into compiling source code.
DOC: This contains the documentation files of the package
NLS: This contains the international language files of the package.
Note that all packages (if you only install the main "EXE" package)
support English. The NLS package will add support for other languages,
but this varies considerably from package to package. Some packages do
not have any non-English support.
Note that PET packages follow a naming convention, like this:
abiword-1.2.3.pet ("EXE" package)
Also note that not all authors of PET packages follow the practice of
splitting PET packages into these component parts. In some cases there
may be, for example, 'abiword-1.2.3.pet' which has everything in it. The
reason that the splitting is usually done is to reduce the size of the
main EXE package.
As from late May 2012, the PPM is enhanced to support EXE,DEV,DOC,NLS
filtering of Debian and Ubuntu DEB packages and Mageia RPM packages. For example,
'abiword-doc_1.2.3-3build1_all.deb' is recognised as a documentation
When you click on one of the packages displayed in the big window,
another window pops up asking if you really want to install the
package, and also offers further information about the package -- so
you can learn more about it before deciding whether to install it.
How to uninstall a package
When a package is installed, it appears in the window bottom-right.
To uninstall a package, simply click on it. There will be another window asking you to confirm deletion.
There are various PET repositories. PETs are the Puppy format for packages, an acronym that we humourously say stands for Puppy Extra Treats. Those on offer will depend on which
Puppy you are using, but usually there will be these available at least:
puppy-2: The very old Puppy 2.x series
puppy-3: Puppy 3.x series
puppy-4: Puppy 4.x series
puppy-5: Puppy 5.x series
puppy-noarch: These have no compiled executables and work in any Puppy (and any CPU)
puppy-common: These have compiled executables and are intended to work in any Puppy
A note about those last two: "noarch" packages do not have any compiled
executables, so they will work regardless of CPU -- x86, ARM, whatever.
"common" have compiled executables, and are a collection of packages
used in most builds of Puppy.
For your Puppy, you may also have others, such as 'puppy-quirky',
'puppy-wary5', or 'puppy-lucid'. One of these will be a collection of
packages created specifically for your particular Puppy. For example,
Precise Puppy is built from Ubuntu Precise Pangolin binary packages, and
PET repo 'puppy-precise' has PET packages created explicitly for this
Generally, use those that seem most appropriate to your version of
Puppy. The older ones have packages that may or may not work in your
Puppy -- the older the repository, the more likely this may be the
We mostly keep the old repositories available, as sometimes there is
some old package that you really want to use. But as a general
principle, look in the more recent repositories first.
Your Puppy may be built from the packages of one of the other major
Linux distributions, such as Debian, Ubuntu or Slackware. In that case,
PPM will offer those repositories. They are going to be the most
compatible and the ones that you should look in first. For example,
Precise Puppy, built from Ubuntu Precise Pangolin, will have the
'ubuntu-precise-main', 'ubuntu-precise-universe' and
Of course, the packages of other distributions are not going to be PET
packages. PETs have ".pet" on the end of the filename (file extension).
Debian and Ubuntu have DEB packages, with ".deb" on the end of the filename.
Slackware packages have ".tgz" or ".txz" file extension.
Mageia has RPM packages, with ".rpm" file extension.
Whatever the type of package, PPM is capable of installing it.
The "Find:" box enables you to search for any package.
You can type in a partial name, but a match is only found from the
left. For example, if you do a search for "pan" you might find this:
pango-1.28.1-w5 Library for layout and rendering of internationalized text
pango_DOC-1.28.1-w5 Library for layout and rendering of internationalized text
pangomm-2.26.2-w5 oo wrapper for pango library
pangomm_DOC-2.26.2-w5 oo wrapper for pango library
panoramixproto-1.1-w5 Panoramix extension headers
But doing a search on "mm" yields nothing, as there are no package names starting with "mm".
However, the Find box will accept '*' wildcards, what is referred to as
"glob wildcards". So, type in "*mm" will find all packages with "mm" in
You can even have multiple wildcards, for example "p*mix*to", which will find the 'panoramixproto' package.
The search is case-insensitive, so a search for "PAN" will give the same results as shown above.
As from May 2012, PPM also supports searching for multiple keywords. Also,
the Description field is searched as well as the package name. For
example, it you type into the search-box, "abiword plugins", it
will find packages with these two words, either in the package name or
Also from May 2012, you can choose to search just the current repository
or all repositories. Previously, it was restricted to current repo
One thing to note about the search is that it searches the entire
repository (or repositories), and ignores the vertical Category radiobuttons on the left
Installing without the PPM GUI
You can actually download any package, from anywhere, and install it.
All that you have to do is click on the package in the file-manager
window, and the package-installer component of PPM will run and install
the package. This works for many types of packages, including PETs,
Ubuntu/Debian DEBs, Slackware, and Arch packages.
Note however, if you install an individual package in this way, without
going through the PPM GUI interface, any dependencies are not
installed, and you will have to take care of that yourself.
One good thing, a package installed in this way will show up in the PPM
GUI installed-packages-window and it can thus be uninstalled.
How to update Puppy to next version
A little while ago, someone criticised PPM, stating that it did not
allow a complete upgrade of Puppy to the next version. The package
managers in some distributions allow you to install all packages
required to completely upgrade to the latest version of the distro.
PPM does not offer that, because Puppy does not work that way. It is
outside the ambit, or we could say the "contract" of what PPM is
required to do. A new version of Puppy is provided as just three or four
files. Say for example you have a "frugal" installation of Puppy on
hard drive, it will consist of just three files, vmlinuz, initrd.gz and
the main Puppy filesystem (for example precise-5.3.sfs). There is also a
fourth file known as the "devx" (for example devx_precise_5.3.sfs). To
upgrade, all you do is replace those files. It is a totally different
system to a package-by-package upgrade. This page has more details: http://puppylinux.com/hard-puppy.htm
Barry Kauler, May 2012