A time machine to return your ArchLinux machine back to a working state.
Go to file
Nicolás A. Ortega Froysa f941a14dc4 Update version on man page. 2024-06-19 10:44:57 +02:00
.gitignore Remove pacundo binary from gitignore. 2024-05-25 18:28:38 +02:00
LICENSE Change license copyright year. 2024-03-12 09:27:27 +01:00
Makefile Makefile: Fix install target. 2024-05-25 18:27:18 +02:00
README.md Add contribution guide in README. 2024-05-25 18:39:07 +02:00
pacundo.1 Update version on man page. 2024-06-19 10:44:57 +02:00
pacundo.pl Bump to v1.1.1 2024-06-16 18:16:11 +02:00



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).



  • Perl 5
  • File::ReadBackwards module
  • cURL
  • GNU Make

You can install these packages with the following command:

# 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.


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


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:

# grep -n "TODO" pacundo.pl


This project is licensed under the terms & conditions of the Zlib license.