PPKG is a package manager for Windows.
- Install, uninstall and update packages.
- Completely transactional.
- Supports http, https and sftp.
- Supports private package repositories.
- Integrates with Powershell.
- Easy to create package manifests.
- (For package maintainers) Provides helpers for updating package manifests that use github.
You will need Powershell v7.0.0 or above. Windows Powershell (Powershell v 5.x and earlier) is not supported.
To check your Powershell version, run:
$PSVersionTable.PSVersion.ToString()
If your version is older than 7.0.0, follow the instructions from this page.
- Download the release archive (
ppkg-x32.zip
orppkg-x64.zip
) from the releases page (here's the latest release). - Extract it to some location with the
ppkg
directory name (suggestion is to put somewhere in$env:PSMODULEPATH
for automatic loading). - If you extracted to somewhere outside
$env:PSMODULEPATH
, addimport-module -disableNameChecking D:/path/to/ppkg/ppkg.psd1
in your Powershell profile. - Restart Powershell.
- Register a repository:
ppkg-add-repo insomnia https://github.com/insomnimus/ppkg-repo
.
More documentation is available here.
For more on Powershell profiles, see this page from MSDN.
Building from source is optional but you can do it if you wish.
You will need:
dotnet
cli with DotNet 7 SDK enabled- Powershell v7.0.0 or newer
# Clone the repository with git:
git clone https://github.com/insomnimus/ppkg
cd ppkg
# Run the build script:
./build.ps1 -publish
# The module will be created into ./module
# You can move this directory to a suitable place, all the files inside it are required
This project uses the AlphaFS library for transactional filesystem operations. Because the latest version on NuGet has some bugs and is incompatible with Dotnet Standard, the source code for AlphaFS is vendored in this project. You can find its license file at AlphaFS/LICENSE.md.