在 Linux VPS 上安装和使用 LinuxBrew

狀態: 停用

本文已被停用,不再維護。

原因

Homebrew現在提供了Linux的主流支持。

請參考

本文可能仍然作為參考有用,但可能不再有效或符合最佳實踐。我們強烈建議使用針對您所使用的操作系統的最新文章。

簡介


LinuxBrew 是流行的Mac OS X HomeBrew 軟件包管理器的Linux分支。

LinuxBrew 是一款套件管理軟體,它可以在系統預設的套件管理系統之上(例如 Debian/Ubuntu 的 “apt/deb” 和 CentOS/RedHat 的 “yum/rpm”)安裝來源碼套件。

為什麼使用 LinuxBrew?


  • HomeBrew 最初是為 Mac OS X 開發的(該系統沒有標準的開源套件管理系統)。它取代了像是 MacPortsFink 之類的套件管理工具。 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

注意事項

  1. brew tap使用了用戶名agordon和儲存庫後綴gordon(’homebrew-gordon’的後綴)並推斷出訪問GitHub的URL。

  2. 自定義儲存庫中的公式可能與官方HomeBrew儲存庫中的公式衝突。這是完全正常的。請參閱下文以了解如何安裝這些套件。

要安装来自自定义存储库的非冲突软件包,请运行:

$ brew install libjson

要安装特定存储库中的软件包,请运行:

$ brew install agordon/gordon/coreutils

更多信息


注意:阅读与HomeBrew相关的信息时,请记住HomeBrew是为Mac OS X开发的。

LinuxBrew(HomeBrew的Linux端口)与HomeBrew有许多共同点,但也有一些特定于Linux的差异。

HomeBrew Wiki

HomeBrew 常见问题解答

HomeBrew 公式食谱

HomeBrew 故障排除

LinuxBrew 网站

LinuxBrew 已知问题

<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