update readme

This commit is contained in:
steven-omaha
2023-02-14 16:45:11 +01:00
parent 1dc5e0e3dd
commit 1e8041f7b0
+18 -15
View File
@@ -8,18 +8,18 @@ multi-backend declarative package manager for Linux
`pacdef` allows the user to have consistent packages among multiple Linux machines by managing packages in group files. `pacdef` allows the user to have consistent packages among multiple Linux machines by managing packages in group files.
The group files are maintained outside of `pacdef` by any VCS. The group files are maintained outside of `pacdef` by any VCS.
`pacdef import`ing a package group file creates a symlink to that file in `pacdef`'s config dir, thereby letting `pacdef import`ing a package group file creates a symlink to that file in `pacdef`'s config dir, thereby letting `pacdef` know you want to have the packages in this file on your machine.
`pacdef` know you want to have the packages in this file on your machine.
Then installing all packages from all groups is as simple as `pacdef sync`. Then installing all packages from all groups is as simple as `pacdef sync`.
All package operations are executed by your favourite AUR helper. All package operations are executed by the respective package managers.
If you work with multiple Arch installations and have asked yourself "*Why do I have the program that I use every day on If you work with multiple Linux machines and have asked yourself "*Why do I have the program that I use every day on my other machine not installed here?*", then `pacdef` is the tool for you.
my other machine not installed here?*", then `pacdef` is the tool for you.
## Supported Backends ## Supported backends
At the moment, supported backends are limited to At the moment, supported backends are limited to the following.
* pacman (Arch Linux) and pacman-wrapping AUR helpers,
* cargo (Rust package manager). <!--- TODO make this consistent --->
* `pacman` (Arch Linux) and pacman-wrapping AUR helpers
* `cargo` (Rust package manager)
Pull requests for additional backends are welcome! Pull requests for additional backends are welcome!
@@ -60,9 +60,9 @@ Usage on different machines:
* import one or more groups: `pacdef import base desktop audio` * import one or more groups: `pacdef import base desktop audio`
* install packages from the imported groups: `pacdef sync` * install packages from the imported groups: `pacdef sync`
* show packages that are not part of any group: `pacdef unmanaged` * show packages that are not part of any group: `pacdef unmanaged`
* create a new group: `pacdef new temp` (use `new -e` to edit the file right away)
* remove packages that are not in any group: `pacdef clean` * remove packages that are not in any group: `pacdef clean`
* show imported groups: `pacdef groups` * show imported groups: `pacdef groups`
* create a new group: `pacdef new temp` (use `new -e` to edit the file right away)
* remove a previously imported group: `pacdef remove audio` * remove a previously imported group: `pacdef remove audio`
* review all unmanaged packages interactively: `pacdef review` * review all unmanaged packages interactively: `pacdef review`
* search for the group that contains a package: `pacdef search firefox` * search for the group that contains a package: `pacdef search firefox`
@@ -71,14 +71,18 @@ Usage on different machines:
### Configuration ### Configuration
On first execution, it will create a basic config file under `$XDG_CONFIG_HOME/pacdef/pacdef.yaml`. The program only needs to know your AUR helper of choice. Configure it as follows. On first execution, it will create a basic config file under `$XDG_CONFIG_HOME/pacdef/pacdef.yaml`.
```yaml ```yaml
aur_helper: paru # AUR helper to use (paru, yay, ...) aur_helper: paru # AUR helper to use on Arch Linux (paru, yay, ...)
aur_rm_args: null # additional args to pass to AUR helper when removing packages aur_rm_args: null # additional args to pass to AUR helper when removing packages (optional)
warn_not_symlinks: true # warn if a group file is not a symlink warn_not_symlinks: true # warn if a group file is not a symlink
``` ```
### package group files ### Package group files
<!--- TODO explain sections --->
Group files loosely follow the syntax for `ini`-files.
1. One package per line. 1. One package per line.
2. Anything after a `#` is ignored. 2. Anything after a `#` is ignored.
3. Empty lines are ignored. 3. Empty lines are ignored.
@@ -92,7 +96,6 @@ alacritty
firefox # this comment is ignored firefox # this comment is ignored
libreoffice-fresh libreoffice-fresh
mycustomrepo/zsh-theme-powerlevel10k mycustomrepo/zsh-theme-powerlevel10k
...
[rust] [rust]
cargo-update cargo-update