Minecraft Pacman

Manage Minecraft and Fabric versions using pacman(1)!

The best way to install Minecraft on Arch Linux.


Latest Tarball, Git and README.md.

How does it work

Minecraft and Fabric binaries and just ordinary files. Therefore, it is possible to install and upgrade multiple versions globally (and also natively) using pacman(1) on Arch Linux.

Installation in home directories have multiple disadvantages: users cannot share them, and there is no standard way of upgrading. Most importantly, * most * Minecraft launchers on the Internet have significant disadvantages that prevent me from using them.

Thus, I made a series of PKGBUILD files to download, package and install Minecraft (and also Fabric) as packages on your Arch Linux system.

However, Minecraft and Fabric contains lots of (3.3k) files. Manually keeping track of them and adding them to PKGBUILDs would be a nightmare. This is when I wrote a custom generator in C that automatically downloads version.json files and exporting the variables for PKGBUILDs' uses.

This project also adheres the Unix philosophy: it only bundles Minecraft files and nothing more. All runtime configurations, for example arguments, are stored in environment files that are easily parsed using shell scripts, so you can make a simple launcher in POSIX shell within a hundred of lines.

How to use it

Great! You now knows why it's better to install Minecraft as Arch Linux packages, so let's go over the installation procedure.

Because PKGBUILDs are dynamically generated, and Mojang prohibits the distribution of Minecraft files (I think this includes manifest jsons as well), I could not provide ready-to-use packages or PKGBUILDs. You have to generate PKGBUILDs and make them on your own. No worry, this process is simple.

Just download the latest source tarball and run ./switch 1.18.1, so PKGBUILDs will be generated. Then, run makepkg in mc/ to create Minecraft packages.

For assets (sounds, extra textures, languages, etc) and Fabric, as well as the exported variables, please consult README.

Licensed under GPL v2.