Repository sun-setting (shutdown)
It is with a heavy heart that I write that I am going to be sun-setting (eventually shutting down) https://apt.cli.rs.
I originally set up this APT repository 4 years ago as a means of giving back to the community and to make it easier to install Rust CLI tools on my own home-lab.
More recently, I've had other priorities take up my time, and haven't really used the APT repository too much. Maintaining the repository has become a chore more than something I enjoy due to changes in my interests and priorities. I had thought about closing down the repository a few times over the past two months, but did not.
The straw that broke the camel's back was that recently (2025-08-03), the database associated with the APT repository became corrupted in an unrecoverable manner. Shame on me, it was also omitted from backups since it existed on a different disk. I could go and rebuild the APT repository database from scratch, but I have instead taken it as a sign to close down the repository.
In the interest of making people's lives easier, I will continue serving the repository as-is (see FAQ). I am so glad that a number of people found the repository useful, that was my hope when I initially set out to create it. I hope folks are able to find alternatives that work reasonably well.
Best, Emma
FAQ
What happens now?
The repository at https://apt.cli.rs will be frozen, no new packages will be uploaded. However, to make the migration easier and not break people right away, I'll be leaving the APT repository up for 3 months as-is. Once the APT repository is brought offline this GitHub repository will be archived.
How do I remove the repository?
You can run the following two commands:
sudo rm -f /usr/share/keyrings/rust-tools.asc
sudo rm -f /etc/apt/sources.list.d/rust-tools.list
To verify the repo has been removed you can run an update:
sudo apt-get update
You will also probably want to remove installed packages (see next FAQ entry)
How do I remove any installed pages?
The following one-liner should uninstall any packages that you could install for your architecture from apt.cli.rs:
sudo apt-get purge $(curl -sSL https://apt.cli.rs/dists/all/main/binary-$(dpkg --print-architecture)/Packages | grep 'Package:' | uniq | awk -F ': ' '{printf $2" "}')
Explanation
First, get the architecture of the machine via dpkg --print-architecture. Then, download the package list for that architecture. Finally, parse the package file into a list of package names to be passed to apt-get purge.
What happens to already installed packages?
Nothing. They should continue to be installed and function. However, they will not receive updates. I would recommend looking at installing these packages through alternative channels (see next FAQ)
What are the alternatives to apt.cli.rs?
There are a couple of options:
-
cargo binstall: https://github.com/cargo-bins/cargo-binstall. This downloads the binaries from releases and sets them up for you, but requires Rust to be installed already.
-
The manual route is to download the .deb files directly from the releases of a GitHub Release, e.g. https://github.com/bootandy/dust/releases. Then you can run
dpkg -i ./<local-file>.debto install the package. -
cargo binstall: https://github.com/cargo-bins/cargo-binstall. This downloads binaries from releases and sets them up for you, but requires Rust to be installed already.
-
The manual route is to download the .deb files directly from the releases of a GitHub Release, e.g. https://github.com/bootandy/dust/releases. Then you can run
dpkg -i ./<local-file>.debto install the package.
What happens to the code/scripts backing apt.cli.rs?
In the interest of helping anyone who would like to run their own APT repository like apt.cli.rs, I will be adding the NGINX configurations and (redacted) systemd unit files used to generate the index. Please also see the existing script https://github.com/emmatyping/apt.cli.rs/blob/main/main.py, which is the main tool used to manage the repository.
I've only been using this repository for a week, so this has gone from joy to sorrow real quick. Thank you for all the work put into this. I hope others pick up from here.
~~There will be some downtime today but the repo will be restored later today.~~
Downtime is over.
Just to let you know in case you weren't aware, the GPG key of the repository has expired. Since it's sun-setting, would it be fair to assume you're not planning on updating it?
Thanks anyway for what you provided to the community over the years.
@Arzaroth thanks for letting me know. Yes, I believe I will probably not update the gpg key. Going through a rotation just doesn't make sense to me if it's just for a month or two.
@Arzaroth thanks for letting me know. Yes, I believe I will probably not update the gpg key. Going through a rotation just doesn't make sense to me if it's just for a month or two.
It helps to find this issue and uninstall the repo. Thanks for your effort! This repo served me good and also I've learned about a bunch of awesome cli tools.
Thank you for all your effort and contribution to the community!
p.s. alternatively, you can try topgrade, which allows updating from cargo, and more