金钱(警告)
** 状态:** 被贬值
此文章已被删除,不再保留。
理由
Homebrew 现在为 Linux 提供主线支持。
相反,看
本文可能仍然有用作为参考,但可能无法工作或遵循最佳实践. 我们强烈建议使用最近为您正在使用的操作系统撰写的一篇文章。
美元
入门
LinuxBrew是受欢迎的Mac OS X HomeBrew包管理器的Linux叉子。
LinuxBrew 是包管理软件,可在系统的默认包管理上从源头安装包(例如 Debian/Ubuntu 中的apt/deb
和 CentOS/RedHat 中的yum/rpm
)。
为什么要使用 LinuxBrew?
- HomeBrew 最初是为Mac OS X开发的(它没有标准的开源软件包管理系统). 它取代了MacPorts和[Fink](http://www.finkproject.org/]等软件包管理. ** LinuxBrew** 是移植到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
(或安装包所需的命令)。
一个 LinuxBrew 公式是一个 Ruby 脚本,它定义了在哪里找到 tar.gz
文件,如何构建包,以及如何安装它。
公式文件可以简单如 hmmer.rb (一个生物信息学工具):
1class Hmmer < Formula
2 homepage 'http://hmmer.janelia.org/'
3 url 'http://selab.janelia.org/software/hmmer3/3.1b1/hmmer-3.1b1.tar.gz'
4
5 def install
6 system "./configure", "--prefix=#{prefix}"
7 system "make"
8 system "make install"
9 end
10end
或如或
之类的。
一旦公式文件被正确定义,安装该包只是一个运行问题:
1$ brew install FORMULA
准备 LinuxBrew - Debian/Ubuntu
对于基于 Debian/Ubuntu 的系统,请运行以下命令:
1$ sudo apt-get update
2$ sudo apt-get upgrade -y
3$ sudo sudo apt-get install -y build-essential make cmake scons curl git \
4 ruby autoconf automake autoconf-archive \
5 gettext libtool flex bison \
6 libbz2-dev libcurl4-openssl-dev \
7 libexpat-dev libncurses-dev
准备 LinuxBrew - CentOS/RedHat
对于基于 RedHat/CentOS 的系统,运行以下命令:
1$ sudo yum update -y
2$ sudo yum groupinstall -y "Development Tools"
3$ sudo yum install -y \
4 autoconf automake19 libtool gettext \
5 git scons cmake flex bison \
6 libcurl-devel curl \
7 ncurses-devel ruby bzip2-devel expat-devel
安装 LinuxBrew
安装 LinuxBrew 只是克隆 LinuxBrew 存储库的问题。
步骤 1 - 克隆 LinuxBrew
要保持秩序,将 **LinuxBrew ** 克隆到用户主目录中的隐藏目录:
1$ git clone https://github.com/Homebrew/linuxbrew.git ~/.linuxbrew
但是任何其他指南也同样会工作。
第2步:更新环境变量
下一步是将 LinuxBrew 添加到用户的环境变量中。
将下列行添加到用户的 ~/.bashrc
文件的末尾:
1# Until LinuxBrew is fixed, the following is required.
2# See: https://github.com/Homebrew/linuxbrew/issues/47
3export 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
4## Setup linux brew
5export LINUXBREWHOME=$HOME/.linuxbrew
6export PATH=$LINUXBREWHOME/bin:$PATH
7export MANPATH=$LINUXBREWHOME/man:$MANPATH
8export PKG_CONFIG_PATH=$LINUXBREWHOME/lib64/pkgconfig:$LINUXBREWHOME/lib/pkgconfig:$PKG_CONFIG_PATH
9export LD_LIBRARY_PATH=$LINUXBREWHOME/lib64:$LINUXBREWHOME/lib:$LD_LIBRARY_PATH
注:如果您已将 LinuxBrew 安装到不同的目录中,请更改上面的LINUXBREWHOME
中的路径。
步骤三:测试安装
要确保这些更改生效,请再次登录和登录,然后壳应使用这些新设置。
要测试这些新设置,请尝试:
1$ which brew
2/home/ubuntu/.linuxbrew/bin/brew
3$ echo $PKG_CONFIG_PATH
4/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 安装软件包
哪些包可用?
输入简单搜索
以查看所有可用的包列表(当前安装 LinuxBrew 所知的所有包 - 请参阅下方关于添加存储库)。
键入‘brew search WORD’ 以查看包含 WORD 的所有包(在 HomeBrew 语法中称为 Formulas)。
1$ brew search xml
2blahtexml libnxml libxml2 xml-coreutils xml2 xmlrpc-c
3html-xml-utils libwbxml libxmlsec1 xml-security-c xmlcatmgr xmlsh
4libmxml libxml++ tinyxml xml-tooling-c xmlformat xmlstarlet
安装一个包
要安装一个软件包,请运行brew install package
。
例如,安装 jq - JSON 处理器:
1$ brew install jq
2==> Downloading http://stedolan.github.io/jq/download/source/jq-1.3.tar.gz
3==> ./configure
4==> make
5/home/ubuntu/.linuxbrew/Cellar/jq/1.3: 7 files, 256K, built in 10 seconds
6$ which jq
7/home/ubuntu/.linuxbrew/bin/jq
8$ jq --version
9jq version 1.3
LinuxBrew的实用性是显而易见的:虽然Ubuntu在最新的存储库中有 jq,但它的版本是旧的(1.2) Debian Stable 和 Testing 根本没有 jq 包,LinuxBrew 的版本是最新的(1.3)。
添加现有的 HomeBrew 存储库
HomeBrew/LinuxBrew 存储库被称为 TAPS . 这些只是包含 Ruby 脚本的 GitHub 存储库(公式
)。
例如:添加 homebrew-science repository(包含许多有用的开源科学程序)和 HomeBrew-Games repository:
1$ brew tap homebrew/science
2Cloning into '/home/ubuntu/.linuxbrew/Library/Taps/homebrew-science'...
3Tapped 237 formula
4$ brew tap homebrew/games
5Cloning into '/home/ubuntu/.linuxbrew/Library/Taps/homebrew-games'...
6Tapped 57 formula
可用的按钮列表:
1$ brew tap
2homebrew/science
3homebrew/games
从这些存储库安装任何包:
1$ brew install gnu-go
2==> Downloading http://ftpmirror.gnu.org/gnugo/gnugo-3.8.tar.gz
3#################################################################
4==> ./configure --prefix=/home/ubuntu/.linuxbrew/Cellar/gnu-go/3.8 --with-readline=/usr/lib
5==> make install
6/home/ubuntu/.linuxbrew/Cellar/gnu-go/3.8: 9 files, 7.0M, built in 60 seconds
更新 TAP 和包
若要下载任何更新到 Formula,请运行:
1$ brew update
要升级包(如果有更新可用),运行:
1$ brew upgrade PACKAGE
创建自定义/私人 TAP(库存)
HomeBrew TAP/Repository 只是存储在本地文件或 GitHub 存储库中的 Formulas – Ruby 脚本的集合。
在本地文件中的公式
要从本地文件中安装公式,运行:
1$ brew install /full/path/to/file.rb
这在创建(和调试)新公式时是有用的。
GitHub 存储库中的公式
要在 github 中创建一个自定义的 TAP 存储库,请创建一个新的 GitHub 存储库(在用户的 github 帐户中),并将其命名为homebrew-NAME
。
例子:
GitHub 用户 agordon 有一个名为 ** gordon** 的 HomeBrew 存储库,完整的 URL 是: https://github.com/agordon/homebrew-gordon。
要使用此存储库(点击
):
1$ brew tap agordon/gordon
2Cloning into '/home/ubuntu/.linuxbrew/Library/Taps/agordon-gordon'...
3Warning: Could not tap agordon/gordon/libestr over Homebrew/homebrew/libestr
4Warning: Could not tap agordon/gordon/coreutils over Homebrew/homebrew/coreutils
5Tapped 12 formula
注: 注:
brew tap
使用了用户名agordon
和存储符号gordon
(‘homebrew-gordon’ 的符号),并推断了 github 访问的 URL.- 定制存储中的公式可能与官方 HomeBrew 存储中的公式相冲突。
若要从自定义存储库中安装非冲突包,请运行:
1$ brew install libjson
要从特定键安装包,运行:
1$ brew install agordon/gordon/coreutils
更多信息
** 注意:** 阅读 HomeBrew 相关信息时,请记住 ** HomeBrew 是为 Mac OS X 开发的。
LinuxBrew(HomeBrew的Linux端口)与HomeBrew有许多共同点,但也有一些Linux特定的差异。
【主页】(【链接】)
[主页 > 食用食用食用食用食用食用食用食用食用食用食用食用食用食用食用食用食用食用食用食用食用食用食用食用食用食用食用食用食用食用食用食用食用食用食用食用食用食用食用食用食用食用食用食用食用食用食用食用食用食用食用食用食用食用食用食用食用食用食用食用食用食用食用食用食用食用食用食用食用食用食用食用食用食用食用食用食用食用食用食用食用餐]
( )