狀態: 停用
本文已被停用,不再維護。
原因
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
以查看包含 WORD 的所有套件(在 HomeBrew 術語中稱為 Formulas)。例如:
$ 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
要下載任何Formulas的更新,運行:
$ 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
要安装特定存储库中的软件包,请运行:
$ 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