状态: 已弃用
本文已弃用,不再维护。
原因
Homebrew 现在提供了对 Linux 的主线支持。
请参阅
本文仍可作为参考,但可能无法正常运行或遵循最佳实践。我们强烈建议使用针对您正在使用的操作系统编写的最新文章。
简介
LinuxBrew 是流行的 Mac OS X HomeBrew 包管理器的 Linux 版本。
LinuxBrew 是一款软件包管理软件,它能够在系统默认的包管理系统之上(例如 Debian/Ubuntu 中的“apt/deb”和 CentOS/RedHat 中的“yum/rpm”)安装来自源代码的软件包。
为什么使用 LinuxBrew?
-
HomeBrew 最初是为 Mac OS X 开发的(该系统没有标准的开源软件包管理系统)。它取代了诸如 MacPorts 和 Fink 等软件包管理系统。 LinuxBrew 是 HomeBrew 移植到 Linux 的版本。
-
大多数 Linux 发行版都有良好的软件包管理系统(例如 Debian/Ubuntu 中的“apt/deb”和 CentOS/RedHat 中的“yum/rpm”),然而
-
标准软件仓库中的软件版本通常比最新版本要旧,而且
-
许多开源软件包不在标准软件仓库中(例如常见的生物信息学工具)。
-
-
LinuxBrew提供了一个软件安装配方的仓库(软件包从源代码安装并在本地机器上编译),以补充发行版标准软件库中的软件包。
-
LinuxBrew提供了一个简单的方法来构建您自己的软件仓库(即根据您的需求列出的开源软件包列表)。
-
LinuxBrew将软件安装在用户指定的目录中(而不是系统范围),不需要
sudo
访问权限。 -
LinuxBrew(和HomeBrew)与GitHub集成得非常好,可以轻松共享安装配方。
特别是对于DigitalOcean,在撰写本文时不提供可共享的Droplet镜像(带有自定义配置的已安装软件),LinuxBrew仓库可以提供一种快速方法,在标准Linux机器上安装特定的软件包和版本。
LinuxBrew的要点
简单来说,LinuxBrew会为您下载tar.gz
文件,并运行./configure && make && make install
(或安装软件包所需的任何其他命令)。
A LinuxBrew Formula is a Ruby script which defines where to find the tar.gz
file, how to build the package, and how to install it.
A formula file can be as simple as hmmer.rb (a bioinformatics tool):
class Hmmer < Formula
homepage 'http://hmmer.janelia.org/'
url 'http://selab.janelia.org/software/hmmer3/3.1b1/hmmer-3.1b1.tar.gz'
def install
system "./configure", "--prefix=#{prefix}"
system "make"
system "make install"
end
end
或者像emacs.rb一样复杂。
一旦正确定义了配方文件,安装软件包只需运行:
$ brew install FORMULA
准备LinuxBrew – Debian/Ubuntu
对于基于Debian/Ubuntu的系统,请运行以下命令:
$ sudo apt-get update
$ sudo apt-get upgrade -y
$ sudo sudo apt-get install -y build-essential make cmake scons curl git \
ruby autoconf automake autoconf-archive \
gettext libtool flex bison \
libbz2-dev libcurl4-openssl-dev \
libexpat-dev libncurses-dev
准备LinuxBrew – CentOS/RedHat
对于基于RedHat/CentOS的系统,请运行以下命令:
$ sudo yum update -y
$ sudo yum groupinstall -y "Development Tools"
$ sudo yum install -y \
autoconf automake19 libtool gettext \
git scons cmake flex bison \
libcurl-devel curl \
ncurses-devel ruby bzip2-devel expat-devel
安装LinuxBrew
安装LinuxBrew只是克隆LinuxBrew存储库的问题。
步骤1 – 克隆LinuxBrew
为了保持整洁,将LinuxBrew克隆到用户家目录中的隐藏目录:
$ git clone https://github.com/Homebrew/linuxbrew.git ~/.linuxbrew
但是,任何其他目录也同样适用。
第2步 – 更新环境变量
下一步是将LinuxBrew添加到用户的环境变量中。
将以下行添加到用户的~/.bashrc
文件的末尾:
# 在LinuxBrew修复之前,需要以下设置。
# 参见:https://github.com/Homebrew/linuxbrew/issues/47
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/local/lib64/pkgconfig:/usr/lib64/pkgconfig:/usr/lib/pkgconfig:/usr/lib/x86_64-linux-gnu/pkgconfig:/usr/lib64/pkgconfig:/usr/share/pkgconfig:$PKG_CONFIG_PATH
## 设置Linux Brew
export LINUXBREWHOME=$HOME/.linuxbrew
export PATH=$LINUXBREWHOME/bin:$PATH
export MANPATH=$LINUXBREWHOME/man:$MANPATH
export PKG_CONFIG_PATH=$LINUXBREWHOME/lib64/pkgconfig:$LINUXBREWHOME/lib/pkgconfig:$PKG_CONFIG_PATH
export LD_LIBRARY_PATH=$LINUXBREWHOME/lib64:$LINUXBREWHOME/lib:$LD_LIBRARY_PATH
注意:如果您将LinuxBrew安装到其他目录,请在上面的LINUXBREWHOME
路径中进行更改。
步骤3 – 测试安装
为了确保这些更改生效,请注销并重新登录。然后,shell应该使用这些新设置。
要测试这些新设置,请尝试:
$ which brew
/home/ubuntu/.linuxbrew/bin/brew
$ echo $PKG_CONFIG_PATH
/home/ubuntu/.linuxbrew/lib64/pkgconfig:/home/ubuntu/.linuxbrew/lib/pkgconfig:/usr/local/lib/pkgconfig:/usr/local/lib64/pkgconfig:/usr/lib64/pkgconfig:/usr/lib/pkgconfig:/usr/lib/x86_64-linux-gnu/pkgconfig:/usr/lib64/pkgconfig:/usr/share/pkgconfig:
使用LinuxBrew安装软件包
有哪些可用的包?
输入brew search
来查看所有可用包的列表(当前安装的LinuxBrew所知道的所有包 – 关于添加存储库的信息,请参见下文)。
输入brew search WORD
来查看所有包(在HomeBrew术语中称为公式),其中包含WORD。例如:
$ brew search xml
blahtexml libnxml libxml2 xml-coreutils xml2 xmlrpc-c
html-xml-utils libwbxml libxmlsec1 xml-security-c xmlcatmgr xmlsh
libmxml libxml++ tinyxml xml-tooling-c xmlformat xmlstarlet
安装一个包
要安装一个包,请运行brew install PACKAGE
。
例如,安装jq – JSON处理器:
$ brew install jq
==> Downloading http://stedolan.github.io/jq/download/source/jq-1.3.tar.gz
==> ./configure
==> make
/home/ubuntu/.linuxbrew/Cellar/jq/1.3: 7 files, 256K, built in 10 seconds
$ which jq
/home/ubuntu/.linuxbrew/bin/jq
$ jq --version
jq version 1.3
LinuxBrew的实用性是显而易见的:虽然Ubuntu在最新的存储库中有jq,但其版本已经过时(1.2)。Debian Stable和Testing根本没有jq包。LinuxBrew的版本是最新的(1.3)。此外,LinuxBrew将程序安装到一个路径,不会与系统的默认位置冲突。
添加现有的HomeBrew存储库
HomeBrew/LinuxBrew 仓库被称为 TAPS。这些简单地是包含 Ruby 脚本(‘Formulas’)的 GitHub 仓库。HomeBrew GitHub 用户 有几个常见的仓库。
例如:添加 homebrew-science 仓库(包含许多有用的开源科学程序)和 HomeBrew-Games 仓库:
$ brew tap homebrew/science
Cloning into '/home/ubuntu/.linuxbrew/Library/Taps/homebrew-science'...
Tapped 237 formula
$ brew tap homebrew/games
Cloning into '/home/ubuntu/.linuxbrew/Library/Taps/homebrew-games'...
Tapped 57 formula
列出可用的 taps:
$ brew tap
homebrew/science
homebrew/games
从这些仓库中安装任何软件包:
$ brew install gnu-go
==> Downloading http://ftpmirror.gnu.org/gnugo/gnugo-3.8.tar.gz
#################################################################
==> ./configure --prefix=/home/ubuntu/.linuxbrew/Cellar/gnu-go/3.8 --with-readline=/usr/lib
==> make install
/home/ubuntu/.linuxbrew/Cellar/gnu-go/3.8: 9 files, 7.0M, built in 60 seconds
更新 TAPs 和 Packages
要下载任何 Formula 的更新,请运行:
$ brew update
要升级软件包(如果有更新可用),请运行:
$ brew upgrade PACKAGE
创建自定义/私有 TAPs(仓库)
A HomeBrew TAP/Repository is simply a collection of Formulas – Ruby scripts stored in local files or in GitHub repositories.
本地文件中的 Formulas
要从本地文件安装公式,请运行:
$ brew install /full/path/to/file.rb
这在创建(和调试)新公式时非常有用。
GitHub存储库中的公式
要在GitHub中创建自定义TAP存储库,请创建一个新的GitHub存储库(在您的用户GitHub帐户中),并将其命名为homebrew-NAME
。它必须以“homebrew-”开头,以便作为HomeBrew/LinuxBrew tap。 NAME
可以是您想要的任何名称。
示例:
GitHub用户agordon拥有一个名为gordon的HomeBrew存储库,完整的URL是:https://github.com/agordon/homebrew-gordon。
要使用此存储库(“tap it”):
$ brew tap agordon/gordon
Cloning into '/home/ubuntu/.linuxbrew/Library/Taps/agordon-gordon'...
Warning: Could not tap agordon/gordon/libestr over Homebrew/homebrew/libestr
Warning: Could not tap agordon/gordon/coreutils over Homebrew/homebrew/coreutils
Tapped 12 formula
注
-
brew tap
使用了用户名agordon
和存储库后缀gordon
(“homebrew-gordon”的后缀),并推导出了访问GitHub的URL。 -
自定义存储库中的公式可能与官方HomeBrew存储库中的公式冲突。 这是非常正常的。 请参阅下面有关如何安装此类软件包的说明。
要安装来自自定义存储库的非冲突软件包,请运行:
$ brew install libjson
要从特定的 tap 安装软件包,请运行:
$ brew install agordon/gordon/coreutils
更多信息
注意:在阅读与 HomeBrew 相关的信息时,请记住 HomeBrew 是为 Mac OS X 开发的。
LinuxBrew(HomeBrew 的 Linux 版本)与 HomeBrew 有许多相似之处,但也有一些针对 Linux 的差异。
<div class=“author”>提交者 <a href=“https://github.com/agordon”>Assaf Gordon</a></div>
Source:
https://www.digitalocean.com/community/tutorials/how-to-install-and-use-linuxbrew-on-a-linux-vps