Join GitHub today
GitHub is home to over 31 million developers working together to host and review code, manage projects, and build software together.
Sign upConsider packaging rustup #800
Comments
This comment has been minimized.
This comment has been minimized.
|
Also recently learned that Windows supports two package managers. |
This comment has been minimized.
This comment has been minimized.
|
This is usually the job of the distributions, not of the project itself. And some already are; Arch, for example: https://www.archlinux.org/packages/?sort=&q=rustup&maintainer=&flagged= |
This comment has been minimized.
This comment has been minimized.
|
Arch Linux's package repository is Community driven, so I'm not surprised someone has already packaged rustup. :) If you want rustup packaged by other Linux distros, you need to submit a request, usually to their bug tracker (see Debian RFP, Ubuntu's launchpad instructions, Fedora's pkgdb2 instructions). It speeds up the approval process when upstream has already done the work of packaging the software. It might be faster to package rustup ourselves and offer a PPA or Copr repository in the meantime, a la HandBrake. Also, providing your own repository would allow you to push new package versions immediately, instead of waiting on the distribution's QA process. It should be far less effort to get rustup into homebrew or uploaded to Chocolatey. |
This comment has been minimized.
This comment has been minimized.
|
Most of the people packaging rustc/cargo are already looking into it; it's unclear which distros will end up packaging rustup, as they want you to be using their own package manager. The Debian folks are working on "any cargo crate automatically turned into a debian package" for example... |
This comment has been minimized.
This comment has been minimized.
|
@steveklabnik then we should consider packaging rustup if no one else does :) As of writing this, Debian, Ubuntu and Fedora all have rustc packages, but no rustup (neither .sh or .rs) packages. Packaging rustup would help developers use specific versions of the Rust language that might not be available yet via the package manager. Although, I'm not sure whether distros would prefer a dynamically linked rust binary + shared crate libraries or one statically linked binary. Maybe this is something the rust community could take the lead on? |
This comment has been minimized.
This comment has been minimized.
est31
commented
Nov 16, 2016
|
If someone wants to package rustup for debian, @sylvestre has agreed to sponsor it. |
This comment has been minimized.
This comment has been minimized.
|
Someone else brought this up on the forums: https://internals.rust-lang.org/t/package-repository-alternate-install-for-rustup/4529 And here's the direct link to the Arch package build script: https://git.archlinux.org/svntogit/community.git/tree/trunk/PKGBUILD?h=packages/rustup |
This comment has been minimized.
This comment has been minimized.
|
@jeffweiss made a good case on Twitter for packaging rustc/rustup as RPM/DEB and serving them through rmp/deb.rustup.rs: setup of CI environments and other environments using provisioning tools. They don't necesssarily care about the distribution-shipped versions, but also work much better with package distribution. |
This comment has been minimized.
This comment has been minimized.
est31
commented
Mar 23, 2017
•
|
While deb files sound nice with clean uninstall and stuff, I'd prefer if debian packaged rustup was kept the way it is (installing stuff itself):
|
This comment has been minimized.
This comment has been minimized.
jeffweiss
commented
Mar 23, 2017
|
@est31 I wasn't advocating for deb packages for developer machines. rustup in those instances are entirely fine with me. My concern is around automation for CI machines. Maybe I'm not familiar with enough with the Rust ecosystem and/or rustup to be able automate installation of Rust toolchain for CI builds (which the fact that I would need to be, I would argue is a problem). In my CI environment, I don't want the Rust toolchain in a user's environment, I want it in standard OS locations. I want my automation to be able to query if Rust is installed and which version using standard config management abstractions in Puppet, Chef, Ansible, etc, not trying to do I don't really care if it's package(s) for rustup, rustc, and/or cargo that solve this problem. The existing release tarballs are already like 90% of what is necessary for this solution. A prototype of creating a deb package can be done by
Prototype Debian control file
Here's an example of what would be great for Rust (prose for Windows and OS X sections truncated): InstallationWindowsIn addition to an .msi that we produce, there are Chocolatey packages available as well. OS XThe homebrew packages are kept relatively up to date. You can install Rust with LinuxWe have different recommendations based on the role of the machine on which you're installing. DeveloperDevelopers often have the need to have multiple versions of the Rust toolchain installed: maintenance, pilot new Rust features, etc. Between using
Continuous IntegrationIn situations where you want a consistent toolchain, between builds and build machines, we publish deb and rpm packages to To install from our package repositories:
For situations where we do not have package support for your platform of choice, we do have release tarballs, though drop us a line. We're constantly evaluating cost/benefit for community expansion. |
postmodern commentedNov 6, 2016
•
edited
It would help users install rustup if it were packaged (deb, rpm, dmg) and/or available via their package manager (homebrew). Package managers also offer many benefits, such as safety, security, dependency management, installing configuration files (ex: bash completions), uninstalling, and most provide a GUI. At first rustup could be made available via a 3rd party repository and the rustup.sh script could handle adding the appropriate repository to the user's package manager (see CriticalStack's installer script). Long term, rustup could be accepted into the major package repositories (Debian, Ubuntu, Fedora, Arch Community Repo, homebrew, etc).
To get started, see Ubuntu's Packaging Guide, Fedora's Creating an RPM guide, or the wonderful fpm utility.