Skip to main content

Arch Linux declarative package management

Project description

Simple declarative package management

For Debianish Linux

Declarative package management means you make a file containing everything you want installed, and the package manager adds/removes to make the system match that. It's good if you happen to install lots of random programs and forget to remove them until you forgot whether they were important to have installed or not in the first place!

Requires: aptitude, sudo, python 3.6+

  1. pip install decapt
  2. decapt generate
  3. Modify decapt.luxem
  4. Update your system with decapt

Features

  • Manage snap packages
  • Manage manual debian packages Add an entry like { name: mypackage, path: ~/debs/mypackage } where there's a build.sh script in path which creates a mypackage.deb in path.
  • Luxem

Notes

Debian seems to "manually" install a lot of unnecessary packages? To convert all manually installed packages to auto packages, run:

$ sudo apt-mark showmanual | while read line; do if [[ $(apt-cache rdepends --installed $line | wc -l) -ne 2 ]]; then apt-mark auto $line; fi; done

If you do decapt generate after that you should have a smaller list of base-system spam in the list.

Friends (not really)

  • Nix - A strict declarative package (and config) manager, and also the basis of Linux distro NixOS
  • Guix - A strict declarative package (and config) manager, and also the basis of Linux distro GuixSD
  • aconfmgr - A declarative Arch-native package and config manager
  • decpac - I made something similar for Arch

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

decapt-0.0.11.tar.gz (4.8 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page