Multi-plateform deterministic and unobstrusive System Package Manager
This project aim to provide a System-level Package Manager that deal with dependencies in a healthy, deterministic way.
The idea is to use concepts from Language Package Managers ( like cargo ) to handle properly the diamond dependency problem : basically allow multiple versions to be deployed.
With rustup: https://www.rust-lang.org/tools/install
We stick to the stable
distribution for now ( nightly
conflicts with ntapi
crate )
cargo test
cargo clippy
cargo build --release
You'd find your binary in target\release
( packster-cli
or packster-cli.exe
depending on your building platform )
General help:
cargo run -- --help
Scope specific help ( by exemple project
scope ):
cargo run -- project --help
Command specific help ( by exemple pack
command ):
cargo run -- project pack --help
Create a packster.toml
file in a directory ( let's say myproject ) containing files or directories you want to pack.
It shall contain something like :
identifier = "my-package"
version = "0.0.1"
Then create the package file with :
cargo run -- project pack myproject
You'd then see in your current working directory the package package file as my-package_0.0.1_b7112762ff233f95979dd390197187a66ac164a808628228ef41b43042dc582d.302e312e30.packster
Create an empty directory ( let's say mylocation )
Then initialize a location inside with :
cargo run -- location init mylocation
You'd then see a lockfile named packster.lock
inside mylocation
cargo run -- package deploy my-package_0.0.1_b7112762ff233f95979dd390197187a66ac164a808628228ef41b43042dc582d.302e312e30.packster mylocation
cargo run -- location show mylocation
cargo run -- location undeploy b7112762ff233f95979dd390197187a66ac164a808628228ef41b43042dc582d mylocation