pacundo/README.md

75 lines
2.5 KiB
Markdown
Raw Permalink Normal View History

# pacundo
You know those times when you install some ArchLinux upgrades and it breaks your
system, and now you have to go in and downgrade those packages? It's a pain
ain't it? Well, this should make it slightly less of a pain (you may still have
to boot from a USB depending on just how broken it is).
## Installation
### Dependencies
- Perl 5
- `File::ReadBackwards` module
- cURL
2024-05-25 16:29:27 +00:00
- GNU Make
You can install these packages with the following command:
```console
# pacman -S perl perl-file-readbackwards curl
```
### Compiling & Installing
The script is compiled and installed using GNU Makefile. Therefore you can use
`make install` to build and install the script and its man-page as expected.
They are installed (by default) to `/usr/local`. To change this to a different
directory simply prepend the `PREFIX=<path>` to your `make install` command.
## Usage
The first concept to understand is that of a transaction. A transaction is
defined in the pacman logs as package operations done during a single use of the
command (or so it seems, at least). If you look at the logs
(`/var/log/pacman.log`) this would be everything between the lines `[ALPM]
transaction started` and `[ALPM] transaction completed`. You can set how many
transactions to list/undo by using the `-t` argument.
There are two modes for undoing pacman transactions:
- Interactive (`-i`, default): will show you a numbered list with all the package
operations of the selected transactions.
- Automatic (`-r`): will automatically undo all package operations of the
selected transactions.
Look at the man-page (`man pacundo`) for more information.
### Supported AUR Helpers
- [yay](https://github.com/Jguer/yay)
2024-05-25 16:39:07 +00:00
## Contributing
If you find any issues, feel free to report them on GitHub or send me an E-Mail
(see my website/profile for the address). I will add these issues to my personal
Gitea page and (unless specified otherwise) mention you as the person who found
the issue.
For patches/pull requests, if you open a PR on GitHub I will likely not merge
directly but instead apply the patches locally (via Git patches, conserving
authorship), push them to my Gitea repository, which will finally be mirrored to
GitHub. However, you can save me a bit of work by just sending me the Git
patches directly (via E-Mail).
If you're looking for a way to contribute, there are a few to-do items within
the code which you can find using `grep`:
```console
# grep -n "TODO" pacundo.pl
```
## License
This project is licensed under the terms & conditions of the Zlib license.