Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Official Linux support #4758

Closed
MikeMcQuaid opened this issue Aug 27, 2018 · 20 comments
Closed

Official Linux support #4758

MikeMcQuaid opened this issue Aug 27, 2018 · 20 comments
Assignees
Labels
features New features help wanted We want help addressing this outdated PR was locked due to age

Comments

@MikeMcQuaid
Copy link
Member

Homebrew/brew should seek to become the official, default Git remote for Linuxbrew. This will require upstreaming or removing all differences between Homebrew/brew and Linuxbrew/brew and adjusting our README and documentation accordingly to note that we support Linux now. Note that we should still frame Homebrew as primarily a macOS package manager as the number of Mac users is (and likely will be for the foreseeable future) much larger than Linux users.

@MikeMcQuaid MikeMcQuaid added help wanted We want help addressing this features New features labels Aug 27, 2018
@sjackman
Copy link
Member

See also the related issue Linuxbrew/brew#612 "Merge Linuxbrew/brew into Homebrew/brew"

@iMichka
Copy link
Member

iMichka commented Aug 29, 2018

We should close one of the tickets to avoid tracking stuff at two different places. Maybe we could keep this one and close the one on the Linuxbrew tracker.

@MikeMcQuaid MikeMcQuaid added this to Work In Progress in Homebrew TODO Oct 3, 2018
@iMichka
Copy link
Member

iMichka commented Dec 18, 2018

I would like to change "🍺 The missing package manager for macOS" on the main brew page to "🍺 The missing package manager for macOS and Linux". Thoughts?

There are also some doc/readme changes to be done, but these can be done through pull requests.

@sjackman
Copy link
Member

@MikeMcQuaid Here's the list of supported distributions of Linux. Your thoughts? Shall I open a PR to create docs/Linux.md?

Homebrew on Linux requires…

  • GCC 4.4 or newer, 4.7 or newer recommended
  • Linux 2.6.32 or newer
  • Glibc 2.12 or newer, 2.23 or newer recommended
  • 64-bit x86

These distributions of Linux are supported.

  • Ubuntu 16 or newer
  • Debian 9 or newer
  • Linux Mint 17 or newer
  • Fedora 24 or newer
  • CentOS 7 or newer
  • Red Hat 7 or newer

Older distributions work, but are not actively supported.

  • Ubuntu 12 or newer
  • Debian 7 or newer
  • CentOS 6 or newer
  • Raspbian 7 or newer on Raspberry Pi

Installing Linuxbrew in its default location of /home/linuxbrew/.linuxbrew is strongly recommended to make use of precompiled binary packages and avoid compiling from source.

@colindean
Copy link
Member

These distributions of Linux are supported.

That's a large list. What automated testing efforts are doing on those platforms?

Could the version be reduced to "only the latest LTS" or "LTS and the latest release" in order to make that testing effort more manageable?

@sjackman
Copy link
Member

Linuxbrew/core builds its bottles on Ubuntu 16.04 LTS (Xenial Xerus). This distribution of Linux is the only one that is tested by CI.

Linuxbrew does not use libraries of the host operating system other than Glibc and GCC, and then only if they are new enough, otherwise brewed glibc and gcc are used. All other libraries are provided by Linuxbrew. For this reason, Linuxbrew has little dependency on the host distribution of Linux.

@MikeMcQuaid
Copy link
Member Author

@iMichka can you elaborate on which page specifically you mean? I don’t think that wording quite works because Linux is far from missing a package manager. Additionally I’d like to wait until Linux support is “official” (likely Homebrew 2.0) before we change too much user facing stuff.

@iMichka
Copy link
Member

iMichka commented Dec 18, 2018

On https://github.com/Homebrew/brew (on the top, the line you can manually edit). On linuxbrew we had "The missing package manager for Linux". I am aware that Linux is not really missing package managers, but still, we have been (and still are) the missing package manager for Linux :D

Of course we can wait for user-facing stuff: the documentation can be updated I think, because that does no harm. The final things to change will be some minor changes to the readme and that's all.

@sjackman
Copy link
Member

The comment line on https://github.com/Linuxbrew/brew reads…
The Homebrew package manager for Linux

@sjackman
Copy link
Member

Linuxbrew is the missing no-root-needed package manager for Linux.

@iMichka
Copy link
Member

iMichka commented Dec 19, 2018

Sorry, I misread that. Or maybe I read that somewhere else.

Anyway, it is one of the first things you see on that page. But I do not want to bike-shed that part too much :) Maybe it could just be The Homebrew package manager

@sjackman
Copy link
Member

I suggest: The Homebrew package manager for macOS and Linux

@MikeMcQuaid
Copy link
Member Author

I suggest: The Homebrew package manager for macOS and Linux

Went with: "🍺 The Homebrew package manager".

Shall I open a PR to create docs/Linux.md?

I'd rather we implemented these as brew doctor warnings first.

Homebrew on Linux requires…

Any "requirements" should be hard failures like https://github.com/Homebrew/brew/blob/master/Library/Homebrew/extend/os/mac/diagnostic.rb#L18-L24

These distributions of Linux are supported.

brew doctor should perhaps complain if these aren't used.

Older distributions work, but are not actively supported.

brew doctor should perhaps complain on these or alternatively only complain on those not known to "work".

Installing Linuxbrew in its default location of /home/linuxbrew/.linuxbrew is strongly recommended

brew doctor should complain if you're not using that default location.

@ycmjason
Copy link

Just passed by this issue and realise linuxbrew and homebrew are going to merge! What a great news! Thank you for the hard work! 🎉🎉🎉🎉🎉🎉

@rfay
Copy link

rfay commented Jan 9, 2019

Fantastic! I'm ready to provide a linuxbrew formula. How and where is that done? Is it integrated with homebrew formulas? Can one formula handle both Linux and macOS? Any links would help, I searched the contributor docs in vain.

@sjackman
Copy link
Member

sjackman commented Jan 9, 2019

Hi, Randy. How/where to submit formulae needs to be better documented.

Linuxbrew/core is a fork of Homebrew/core. There's no plans to merge the two repos. Linuxbrew/core supports both Linux and macOS. Homebrew/core is frequently merged into Linuxbrew/core, usually daily.

If a formula builds on both macOS and Linux, submit the macOS-only version to Homebrew/core. Once it's accepted into Homebrew/core, and then merged into Linuxbrew/core, you can submit a PR to add the Linux support to Linuxbrew/core (if the formula needs modification for Linux).

A formula for Linux only can be submitted to Linuxbrew/extra.

You can also create your own tap if you like. Brewsci/bio is a tap maintained by myself for bioinformatics tools that supports both macOS and Linux. It creates binary bottles for both OS using CircleCI.

@rfay
Copy link

rfay commented Jan 14, 2019

Thanks so much for the coaching, @sjackman - We got Linuxbrew into our tap, https://github.com/drud/homebrew-ddev - It's a huge step forward for us. A majority of our users are on macOS but a significant number use Linux with a wide variety of distros, and to be able to support them in a consistent way is beyond awesome. Thanks!

@sjackman
Copy link
Member

Excellent! I'm glad to hear that Linuxbrew is working for you, Randy. I agree entirely that it simplifies life to be able to use a single package manager on all three common OS.

@MikeMcQuaid
Copy link
Member Author

Now considering this 🚢d! 2.0.0 will land some time in the next week or so and all the changes are on master that are needed for this. Great work everyone but particularly to @sjackman and @iMichka!

Homebrew TODO automation moved this from Work In Progress to Done Jan 29, 2019
@sjackman
Copy link
Member

Woohoo! Big day! Thank you for your efforts in bringing Homebrew to Linux, Mike!
🍺🐧 🎆 🥂

@lock lock bot added the outdated PR was locked due to age label Feb 28, 2019
@lock lock bot locked as resolved and limited conversation to collaborators Feb 28, 2019
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
features New features help wanted We want help addressing this outdated PR was locked due to age
Projects
Homebrew TODO
  
Done
Development

No branches or pull requests

6 participants