Rust’s Packaging Status Across Distros

One of many questions facing the Rust infrastructure team right now is “What’s our packaging situation?”. We don’t have a centralized source of information on what version of Rust is available in which systems’ package managers, and we don’t even know where to find that information.

This post is the notes I’ve taken in researching Rust’s packaging status across distributions.

I last updated this post on 8/17/2015.

In Summary

Distro Rust’s Status Cargo’s Status
Debian 1.0.0 in unstable Requested
Ubuntu Community package Community package, bad docs
Gentoo 1.1.0 in index Community package
OpenSUSE 1.0.0 in index Recent version in index
Arch multirust in index 2 community packages; 1 bad
Fedora Community package No separate package
Slackware* Community package No separate package
Windows in chocolatey No separate package
Mac in Brew No separate package
FreeBSD Community port (?) No separate package

There are an unreasonable number of tiny Linux distributions out there, but they fall into a handful of “families”. For a visualization of the history of various distros, check out this map. I’ve elided CentOS and RHEL as “flavors of Fedora”, and a bunch of popular new Ubuntu flavors (ElementaryOS, Mint, etc.) as “compatible with Ubuntu packages, and probably smart enough to Google for Ubuntu docs if there aren’t any specific to their OS”.

Debian

Debian, Ubuntu, Kubuntu, Mint, and Knoppix all use .deb packages installed through package managers that wrap the dpkg tool.

The Debian Stable package list has dedicated sections for some languages, but Rust is too young to be among them. Rust does not appear in the Jessie stable package list, the Debian testing package list or the Debian unstable package list. Debian bug #786432 is a request for Cargo to be packaged, which describes what Cargo will need to do to be packageable. Bug #689207 tracks the status of packaging rustc for Debian.

There’s a rustc package in Debian Unstable.

The Debian Wiki has a rust packaging page to track the status of packaging Rust for Debian.

Ubuntu

The official Ubuntu package repo has no mention of Rust or Cargo in the trusty or vivid package lists.

The rust-ci.org help tells users to install Cargo from Corey Richardson’s PPA (last updated July 2014, build currently failing) and Rust from Hans Hoel’s PPA, in which rust-stable, rust-nightly, and cargo-nightly appear to be up to date.

Googling for how to install Rust on Ubuntu also turns up a page on vultr.com directing users to intsall Rust using rustup.sh. Another of the top hits also instructs users to use rustup.sh.

Gentoo

There’s a Rust 1.1.0 package in the Gentoo package index. On GitHub, Heather has packaged a Rust overlay for Gentoo and appears to be actively developing it, although the build is currently failing.

There’s a cargo portage overlay but cargo is not provided through the package index.

OpenSUSE

Rust 1.0.0 is packaged for OpenSUSE. Duncan Mac-Vicar has a blog post on trying Rust on OpenSUSE from 2014. My search for “How to install Rust on OpenSUSE” also turned up a youtube video on installing Rust from the nightly tarball. It seems to just be a walkthrough of what happens when you follow Rust’s installation guidelines, but kudos to the OpenSUSE community for catering to diverse learning styles.

An OpenSUSE Cargo package is also available in what appears to be the main index.

Arch

The Arch Wiki has a very useful page on Rust that includes instructions on cross-compiling. There’s also a community package of rust 1.1.0. The Arch User Repository (AUR) provides Cargo through a choice of cargo-bin or cargo-git, though the latter hasn’t been updated since February.

I later learned that you need to install the multirust package to get Rust and Cargo.

Fedora

Fedora has this copr build system thing in which one apparently finds community packages. At least, I found rust-binary (poorly documented and last built 6 months ago) and rust-unofficial (last built 18 months ago) in it. A blog post about building Rust on Fedora, posted in 2013 but with good SEO for queries about “how to install Rust on Fedora”, recommends building from source. There’s no rust or cargo in the CentOS 6 package list, either.

Fedora is tracking the official effort to package rustc in `redhat bug #915042`_.

A stackoverflow question from late last year asked about how to build Rust for Redhat 5. The fedora-rust repo on GitHub provides a sporadically-updated Docker image with Rust installed.

FreeBSD

The FreeBSD Wiki tracks the status of the Rust port. The port overview page tracks which version is available, which is the latest Rust version available in July 2015. There’s also a Rust on FreeBSD internals thread that tracks other relevant information and tools.

Slackware*

According to the 2014 r/linux survey, 53 of the 10,292 respondants used Slackware on a desktop or server. A variety of search queries for Rust and Slackware turn up Rust’s generic Linux installation docs as the first hits, and one github issue from a slackware user. Extensive digging reveals a Rust 1.1.0 package in the SlackBuilds repository.

* The fact that I researched whether anyone had packaged Rust for Slackware is in no way intended to imply any plans for ever supporting such a package. I was just curious. Really.

Thanks!

I appreciate readers Huon Wilson and Seo Sanghyeon taking the time to point out useful links for this post! Both mentioned the presence of the Debian Unstable package, and Seo informed me of redhat bug #915043 as well.