Convert Figma logo to code with AI

Linuxbrew logobrew

:beer::penguin: The Homebrew package manager for Linux

2,656
236
2,656
0

Top Related Projects

40,745

🍺 The missing package manager for macOS (or Linux)

17,319

Nix Packages collection & NixOS

WinGet is the Windows Package Manager. This project includes a CLI (Command Line Interface), PowerShell modules, and a COM (Component Object Model) API (Application Programming Interface).

10,205

Chocolatey - the package manager for Windows

Quick Overview

Linuxbrew/brew is a package manager for Linux, designed to be a Linux-compatible fork of Homebrew, the popular package manager for macOS. It allows users to easily install and manage software packages on Linux systems, providing a user-friendly alternative to traditional package managers.

Pros

  • Easy installation of software packages without root access
  • Compatibility with Homebrew, allowing for easy porting of formulae
  • Ability to install up-to-date versions of software not available in system package managers
  • Cross-platform support, making it easier to maintain consistent development environments across macOS and Linux

Cons

  • May conflict with system package managers if not used carefully
  • Limited package availability compared to native Linux package managers
  • Potential for increased disk usage due to separate installation locations
  • Requires manual updating of packages, unlike some system package managers

Getting Started

To install Linuxbrew/brew on your Linux system, follow these steps:

# Install dependencies
sudo apt-get install build-essential curl file git

# Download and run the Linuxbrew installation script
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

# Add Linuxbrew to your PATH
test -d ~/.linuxbrew && eval $(~/.linuxbrew/bin/brew shellenv)
test -d /home/linuxbrew/.linuxbrew && eval $(/home/linuxbrew/.linuxbrew/bin/brew shellenv)
test -r ~/.bash_profile && echo "eval \$($(brew --prefix)/bin/brew shellenv)" >>~/.bash_profile
echo "eval \$($(brew --prefix)/bin/brew shellenv)" >>~/.profile

# Verify installation
brew doctor

After installation, you can use Linuxbrew to install packages:

# Install a package
brew install package_name

# Update Linuxbrew and its packages
brew update && brew upgrade

# Search for available packages
brew search package_name

Competitor Comparisons

40,745

🍺 The missing package manager for macOS (or Linux)

Pros of Homebrew

  • Larger community and more active development
  • Better integration with macOS-specific features
  • More extensive package repository

Cons of Homebrew

  • Limited to macOS (and Linux via Homebrew on Linux)
  • Some packages may not be available for Linux systems

Code Comparison

Homebrew:

class Formula
  def install
    system "./configure", "--prefix=#{prefix}"
    system "make", "install"
  end
end

Linuxbrew:

class Formula
  def install
    ENV.deparallelize
    system "./configure", "--prefix=#{prefix}"
    system "make", "install"
  end
end

Key Differences

  • Linuxbrew is designed specifically for Linux systems, while Homebrew is primarily for macOS
  • Linuxbrew may require additional system dependencies to be installed manually
  • Package availability and versioning can differ between the two
  • Linuxbrew may use different installation paths and conventions compared to Homebrew

Use Cases

  • Choose Homebrew for macOS systems or when using Homebrew on Linux
  • Opt for Linuxbrew when working exclusively on Linux and prefer a Homebrew-like experience

Community and Support

  • Homebrew has a larger user base and more frequent updates
  • Linuxbrew benefits from Homebrew's core but has a smaller, dedicated Linux community
17,319

Nix Packages collection & NixOS

Pros of nixpkgs

  • Declarative and reproducible system configuration
  • Supports multiple versions of packages coexisting
  • Powerful and flexible package management with Nix language

Cons of nixpkgs

  • Steeper learning curve due to unique Nix language and concepts
  • Smaller community and package ecosystem compared to Homebrew
  • Can be more resource-intensive for system-wide installations

Code Comparison

nixpkgs:

{ pkgs ? import <nixpkgs> {} }:

pkgs.stdenv.mkDerivation {
  name = "my-package";
  src = ./src;
  buildInputs = [ pkgs.someDependency ];
}

brew:

class MyPackage < Formula
  desc "My package description"
  homepage "https://example.com"
  url "https://example.com/my-package-1.0.tar.gz"
  sha256 "abcdef1234567890"
  
  depends_on "some-dependency"
end

Summary

nixpkgs offers a more powerful and flexible package management system with its declarative approach and ability to handle multiple package versions. However, it comes with a steeper learning curve and a smaller ecosystem. brew, on the other hand, provides a simpler and more familiar experience for users coming from macOS, with a larger package repository but less advanced features for system-wide configuration and reproducibility.

WinGet is the Windows Package Manager. This project includes a CLI (Command Line Interface), PowerShell modules, and a COM (Component Object Model) API (Application Programming Interface).

Pros of winget-cli

  • Native Windows package manager, optimized for the Windows ecosystem
  • Integrates seamlessly with Windows PowerShell and Command Prompt
  • Supports a wide range of Windows-specific package formats and installers

Cons of winget-cli

  • Limited cross-platform compatibility compared to brew
  • Smaller package repository and community compared to brew's extensive collection
  • Less mature and established ecosystem, as it's a newer project

Code Comparison

winget-cli (PowerShell):

winget install -e --id Microsoft.VisualStudioCode
winget upgrade --all
winget uninstall -e --id Microsoft.VisualStudioCode

brew (Bash):

brew install visual-studio-code
brew upgrade
brew uninstall visual-studio-code

Summary

While winget-cli offers native Windows integration and support for Windows-specific packages, brew provides a more mature and extensive package ecosystem with cross-platform compatibility. The choice between the two depends on the target operating system and specific package management needs. winget-cli is ideal for Windows-centric environments, while brew is better suited for Linux systems or cross-platform development scenarios.

10,205

Chocolatey - the package manager for Windows

Pros of Choco

  • Extensive package repository with over 8,000 community-maintained packages
  • Built-in PowerShell integration for seamless scripting and automation
  • Supports package creation and hosting for private repositories

Cons of Choco

  • Limited to Windows operating systems
  • Requires administrative privileges for most operations
  • Package quality can vary due to community-driven nature

Code Comparison

Choco package installation:

choco install nodejs

Brew package installation:

brew install node

Choco package search:

choco search firefox

Brew package search:

brew search firefox

Both Choco and Brew offer similar functionality for package management, but they cater to different operating systems. Choco is designed specifically for Windows, while Brew is primarily for macOS and Linux. Choco leverages PowerShell for its operations, making it more integrated with the Windows ecosystem. Brew, on the other hand, uses bash scripts and is more aligned with Unix-like systems.

Choco's extensive package repository is a significant advantage, offering a wide range of software options. However, this can also lead to inconsistencies in package quality. Brew tends to have more curated packages, but with a smaller selection.

Both tools provide similar command-line interfaces for package management tasks, making it easy for users to switch between them when working across different operating systems.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

Linuxbrew logo

Linuxbrew has been merged into Homebrew

Linuxbrew/brew has been merged into Homebrew/brew! Existing installations of Linuxbrew will be automatically migrated to Homebrew. Linuxbrew/brew will no longer be updated. See the Homebrew documentation of Linuxbrew and the Homebrew 2.0.0 blog post.

Homebrew officially supports Linux and Windows 10 with Windows Subsystem for Linux (WSL). “Homebrew on Linux” is called “Linuxbrew”. You can install it in your home directory, so it does not require sudo, and use it to install software that your host distribution’s package manager does not provide. Linuxbrew uses its own repository for formulae: Linuxbrew/homebrew-core.

Linuxbrew

GitHub release

The Homebrew package manager may be used on Linux and Windows 10, using Windows Subsystem for Linux (WSL). Homebrew is referred to as Linuxbrew when running on Linux or Windows. It can be installed in your home directory, in which case it does not use sudo. Linuxbrew does not use any libraries provided by your host system, except glibc and gcc if they are new enough. Linuxbrew can install its own current versions of glibc and gcc for older distribution of Linux.

Features, dependencies and installation instructions are described below. Terminology (e.g. the difference between a Cellar, Tap, Cask and so forth) is explained in the documentation.

Features

  • Can install software to your home directory and so does not require sudo
  • Install software not packaged by your host distribution
  • Install up-to-date versions of software when your host distribution is old
  • Use the same package manager to manage your macOS, Linux, and Windows systems

Install

Paste at a terminal prompt:

sh -c "$(curl -fsSL https://raw.githubusercontent.com/Linuxbrew/install/master/install.sh)"

The installation script installs Linuxbrew to /home/linuxbrew/.linuxbrew using sudo if possible and in your home directory at ~/.linuxbrew otherwise. Linuxbrew does not use sudo after installation. Using /home/linuxbrew/.linuxbrew allows the use of more binary packages (bottles) than installing in your personal home directory.

Follow the Next steps instructions to add Linuxbrew to your PATH and to your bash shell profile script, either ~/.profile on Debian/Ubuntu or ~/.bash_profile on CentOS/Fedora/RedHat.

test -d ~/.linuxbrew && eval $(~/.linuxbrew/bin/brew shellenv)
test -d /home/linuxbrew/.linuxbrew && eval $(/home/linuxbrew/.linuxbrew/bin/brew shellenv)
test -r ~/.bash_profile && echo "eval \$($(brew --prefix)/bin/brew shellenv)" >>~/.bash_profile
echo "eval \$($(brew --prefix)/bin/brew shellenv)" >>~/.profile

You're done! Try installing a package:

brew install hello

If you're using an older distribution of Linux, installing your first package will also install a recent version of glibc and gcc. Use brew doctor to troubleshoot common issues.

Dependencies

  • GCC 4.4 or newer
  • Linux 2.6.32 or newer
  • Glibc 2.12 or newer
  • 64-bit x86 CPU

Paste at a terminal prompt:

Debian or Ubuntu

sudo apt-get install build-essential curl file git

Fedora, CentOS, or Red Hat

sudo yum groupinstall 'Development Tools' && sudo yum install curl file git

Raspberry Pi

Linuxbrew can run on Raspberry Pi (32-bit ARM), but no binary packages (bottles) are available. Support for Raspberry Pi is on a best-effort basis. Pull requests are welcome to improve the experience on Raspberry Pi.

32-bit x86

Linuxbrew does not currently support 32-bit x86 platforms. It would be possible for Linuxbrew to work on 32-bit x86 platforms with some effort. An interested and dedicated person could maintain a fork of Homebrew to develop support for 32-bit x86.

Alternative Installation

Extract or git clone Linuxbrew wherever you want. Use /home/linuxbrew/.linuxbrew if possible.

git clone https://github.com/Homebrew/brew ~/.linuxbrew/Homebrew
mkdir ~/.linuxbrew/bin
ln -s ../Homebrew/bin/brew ~/.linuxbrew/bin
eval $(~/.linuxbrew/bin/brew shellenv)

What Packages Are Available?

  1. Type brew search for a list.
  2. Or visit formulae.brew.sh to browse packages online.
  3. Or use brew search --desc <keyword> to browse packages from the command line.

More Documentation

brew help, man brew or check our documentation.

Troubleshooting

First, please run brew update and brew doctor.

Second, read the Troubleshooting Checklist.

If you don't read these it will take us far longer to help you with your problem.

Contributing

We'd love you to contribute to Linuxbrew. First, please read our Contribution Guide and Code of Conduct. Please see our guidelines on whether to send pull requests to Linuxbrew or Homebrew.

We explicitly welcome contributions from people who have never contributed to open-source before: we were all beginners once! We can help build on a partially working pull request with the aim of getting it merged. We are also actively seeking to diversify our contributors and especially welcome contributions from women from all backgrounds and people of colour.

A good starting point for contributing is running brew audit --strict with some of the packages you use (e.g. brew audit --strict wget if you use wget) and then read through the warnings, try to fix them until brew audit --strict shows no results and submit a pull request. If no formulae you use have warnings you can run brew audit --strict without arguments to have it run on all packages and pick one.

Alternatively, for something more substantial, check out one of the issues labeled help wanted in Homebrew/brew or Homebrew/homebrew-core.

Good luck!

Security

Please report security issues to our HackerOne.

Who Are You (Linuxbrew)?

Linuxbrew's lead maintainer is Shaun Jackman.

Linuxbrew/homebrew-core's lead maintainer is Michka Popoff.

Linuxbrew's other current maintainers are Piotr Gaczkowski, Maxim Belkin, Jonathan Chang, and Alyssa Ross.

Former Linuxbrew maintainers with significant contributions include Bob W. Hogg.

Who Are You (Homebrew)?

Homebrew's lead maintainer is Mike McQuaid.

Homebrew's project leadership committee is Mike McQuaid, Misty De Meo and Markus Reiter.

Homebrew/brew's other current maintainers are Claudia Pellegrino, Michka Popoff, Shaun Jackman, Chongyu Zhu, Vitor Galvao, Misty De Meo, Gautham Goli, Markus Reiter, Steven Peters, Jonathan Chang and William Woodruff.

Homebrew/brew's Linux support (and Linuxbrew) maintainers are Michka Popoff and Shaun Jackman.

Homebrew/homebrew-core's other current maintainers are Claudia Pellegrino, Igor Kapkov, Michka Popoff, Shaun Jackman, Chongyu Zhu, Izaak Beekman, Sean Molenaar, Jan Viljanen, Jason Tedor, Viktor Szakats, FX Coudert, Thierry Moisan, Steven Peters, Misty De Meo and Tom Schoonjans.

Former maintainers with significant contributions include JCount, commitay, Dominyk Tiller, Tim Smith, Baptiste Fontaine, Xu Cheng, Martin Afanasjew, Brett Koonce, Charlie Sharpsteen, Jack Nagel, Adam Vandenberg, Andrew Janke, Alex Dunn, neutric, Tomasz Pajor, Uladzislau Shablinski, Alyssa Ross, ilovezfs and Homebrew's creator: Max Howell.

Linuxbrew Community

License

Code is under the BSD 2-clause "Simplified" License. Documentation is under the Creative Commons Attribution license.

Donations

Linuxbrew is a non-profit project run entirely by unpaid volunteers. We need your funds to pay for continuous integration and the computer resources used to build precompiled binary bottles of your favourite formulae. Every donation will be spent on making Linuxbrew better for our users.

Please consider donating regularly to Linuxbrew through Patreon. We appreciate your support and contribution, no matter the level.

Donate with Patreon

Linuxbrew is a fork of Homebrew, the macOS package manager, for Linux. Please consider donating to Homebrew as well if you use Homebrew on macOS.

Donate with Patreon

Sponsors

Our binary packages (bottles) are built on CircleCI and hosted by Bintray.

CircleCI logo

Downloads by Bintray