World Library  
Flag as Inappropriate
Email this Article


Article Id: WHEBN0040382024
Reproduction Date:

Title: Wpkg  
Author: World Heritage Encyclopedia
Language: English
Subject: List of software package management systems, Package (package management system), Image Packaging System, Pip (package manager), Nix package manager
Publisher: World Heritage Encyclopedia


Microsoft Windows Packager
Original author(s) Alexis Wilke
Developer(s) The usys team
Stable release 0.9.3[1] / September 15, 2013 (2013-09-15)
Preview release 0.9.2[2] / September 16, 2013 (2013-09-16)
Development status Released, Active
Written in C++, C
Operating system Windows, Unix-like, POSIX
Platform i386, AMD64
Available in English
Type Package management system
License GNU General Public License
Website /wpkg/documentation.orgwindowspackager

wpkg was created as a clone of dpkg that would run under the Microsoft Windows operating system. wpkg is used to build, install, remove, and provide information about .deb packages.

As time passed, wpkg has evolved to include complex package distribution management similar to the APT suite on the front end side as well as development[3] and repository[4] management on the back end side.

Although a "wpkg" Debian package is provided for Microsoft Windows (and Linux), the main intent was to offer a ready to use executable: wpkg.exe, so one does not have to recompile wpkg before being able to use it to install Debian packages under Microsoft Windows. The different "wpkg" Debian packages will be of interest to programmers who want to painlessly deal with Debian packages as it includes the libdebpackages library.[5] This library includes nearly all the capabilities that the wpkg tool offers.


wpkg was created by Alexis Wilke and is based on dpkg and APT. At first it was going to be a port of dpkg that would run under Microsoft Windows. However, dpkg is extremely heavily based on Unix and because of that, it was not possible to do a port that would be acceptable by the dpkg team.

The first few version (0.1 to 0.6) were based on a streaming concept, as used in dpkg, using different features of the Boost (C++ libraries). These versions are now difficult to compile.

Starting with 0.7.0, the streaming concept was dropped. In fact, a lot of the work needs to be done with data viewed as an object in memory instead of a passing stream of data. Also the boost library was completely dropped: for one, basic concepts such as smart pointers are now available in the standard C++ library, but the main reason for the drop: it eliminates a rather heavy dependency from the wpkg environment.

Version 0.7.0 also introduced the concept of repository that previous versions did not have. Version 0.8.0 started to manage the repositories like apt-get (think of the—update and—upgrade command line options). Version 0.9.0 added support for creating source packages and the capability of compiling such or even a complete repository of source packages.

The name wpkg was chosen as the short for "Windows Packager" although the tool perfectly functions (and is generally developed) under Linux and other Unix-like operating systems.

Front end usage

On the front end, wpkg is used to manage an installation environment. It ensures validity of an installation by enforcing package dependencies, matching architectures, and many other parameters.

When used with a list of sources, wpkg becomes as powerful as apt-get and supports commands such as update and upgrade.

Back end usage

On the back end, wpkg is primarily used by the developer although you may have a person dedicated to creating packages and another to administer your package repository.

wpkg can be used to directly create binary packages. However, since version 0.9.0, it is possible to create source packages. A wpkg source package is a .deb file which includes all the source code of your project. When source packages are saved in a repository, wpkg is then capable of recompiling your entire repository of source packages and output the corresponding binary packages in one go.

A repository can later be used by the front end to automatically install any number of packages and their dependencies.


As mentioned earlier, wpkg is based on the Debian tools dpkg and Advanced Packaging Tool (apt) which include many advanced package management features as follow:

  • Verify the MD5 checksum of each file when installing files.
  • Automatic upgrade to the latest version.
  • Grouping of packages by Distribution and Component (area, section, and sub-section).
  • Managed build dependencies, installation dependencies, conflicts, breaks.
  • Dynamic libraries handling made easy with version constrained on dependencies.
  • Configuration files management to avoid overwriting existing user configuration files.
  • Repository support, including binary and source branches, distributions, and components.
  • Upgrade suppression with the hold status.
  • Prevent installation with the reject status.
  • Cascading (also called recursive) package installation and removal.
  • Automatic removal of unused packages.

Also in order to help packager maintainers and system administrators, the project includes tools that generate graphical output of packages (in HTML format) or of dependencies (in DOT format). Creating a full dependency tree can be extremely useful to find out problems in an existing installation or a large repository.

File format of packages handled by wpkg

The file format used for binary and source packages is the deb format. It is 100% compatible with the output of the dpkg tool. You can actually use dpkg -c to list the contents of a package created with the wpkg tool.

Cross-platform compatibility

wpkg was primarily created to work under Microsoft Windows. However, it is being developed under Linux and heavily tested under both operating systems.

It also compiles and runs under Cygwin, Mingw32, Mac OS/X, OpenSolaris, FreeBSD, Fedora, and most certainly many other Unices.

Example use

The build command is used to create a .deb package from a directory tree prepared for the operation:

wpkg -b package

where package is the directory with a WPKG sub-directory with the control file information and other sub-directories with data to save in the package being built.

The control file of a package can be viewed with:

wpkg -f debFileName
wpkg -f packageName

where debFileName is the name of a Debian software package and packageName of an installed package.

To install a .deb package:

wpkg -i debFileName

where debFileName is the name of the Debian software package.

To install a .deb package with its dependencies as apt-get is capable of:

wpkg -i debFileName—repository

where is a valid wpkg repository.

To upgrade packages to the latest version on a target installation:


The list of installed packages can be obtained with:

wpkg -l [optional pattern]

To remove an installed package:

wpkg -r packageName

If you are used to run dpkg and apt-get, you will notice that the wpkg commands are very much the same.

See also


  1. ^
  2. ^
  3. ^
  4. ^
  5. ^

External links

  • wpkg manual page
This article was sourced from Creative Commons Attribution-ShareAlike License; additional terms may apply. World Heritage Encyclopedia content is assembled from numerous content providers, Open Access Publishing, and in compliance with The Fair Access to Science and Technology Research Act (FASTR), Wikimedia Foundation, Inc., Public Library of Science, The Encyclopedia of Life, Open Book Publishers (OBP), PubMed, U.S. National Library of Medicine, National Center for Biotechnology Information, U.S. National Library of Medicine, National Institutes of Health (NIH), U.S. Department of Health & Human Services, and, which sources content from all federal, state, local, tribal, and territorial government publication portals (.gov, .mil, .edu). Funding for and content contributors is made possible from the U.S. Congress, E-Government Act of 2002.
Crowd sourced content that is contributed to World Heritage Encyclopedia is peer reviewed and edited by our editorial staff to ensure quality scholarly research articles.
By using this site, you agree to the Terms of Use and Privacy Policy. World Heritage Encyclopedia™ is a registered trademark of the World Public Library Association, a non-profit organization.

Copyright © World Library Foundation. All rights reserved. eBooks from Project Gutenberg are sponsored by the World Library Foundation,
a 501c(4) Member's Support Non-Profit Organization, and is NOT affiliated with any governmental agency or department.