LinuxBrew
1.1、LinuxBrew简介

macOS平台上非常流行的包管理器HomeBrew被移植到GNU/Linux上而成为LinuxBrew

虽然各种GNU/Linux发行版都带有自己的包管理工具,诸如apt-getyumdnfzypperapkpacmanPortage等等, 但Linuxbrew在以下情况下仍有用武之地:

  • LinuxBrew允许将包安装到用户的$HOME目录,这样的话, 就不再需要执行sudo命令了;
  • 对于在GNU/Linux系统自带的包管理器中缺少的包,可以通过LinuxBrew来搞定;
  • 如果GNU/Linux系统自带的包管理器中所带包的版本过旧,那么利用LinuxBrew能够安装该包的最新版本。

LinuxBrew的官网:http://linuxbrew.sh

1.2、使用LinuxBrew的前提条件

出于安全的考虑,LinuxBrew不允许在root用户下安装和使用。但是, 我们有时候仅仅是为了在root用户下做一些测试工作,并不是在生产环境下使用。 很多操作系统的默认用户就是rootdocker容器的默认用户通常也是root, 在root用户下不能使用LinuxBrew就给我们想要快速测试一些东西带来了麻烦。

直接使用root用户是不安全的做法。应该创建非root用户,在非root用户下进行操作。步骤如下:

step1、安装依赖工具:sudoshadow-utils

step2、使用useradd创建一个新的登录用户

useradd -m -s /bin/bash fpliu

step3、使用passwd给该新用户设置一个密码

passwd fpliu

step4、给该新用户授予权限。在/etc/sudoers中加入如下内容

fpliu ALL=(ALL) ALL

step5、使用su切换到该新用户

su - fpliu
1.3、在GNU/Linux中安装LinuxBrew

1、安装依赖

安装时POSIX shGNU CoreUtilsgitcURLtargzipgccfile
运行时bashGNU CoreUtilsgit

step2、使用curl命令下载LinuxBrew安装脚本并执行之

echo -e "\n" | sh -c "$(curl -fsSL https://raw.githubusercontent.com/Linuxbrew/install/master/install.sh)"

step3、配置环境变量

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
1.4、LinuxBrew Docker Image

官方的LinuxBrew Docker Imagehttps://hub.docker.com/r/linuxbrew/brew

示例1:零时创建一个新容器,并进入容器,执行完命令后退出该容器,并销毁该容器:

docker run --user linuxbrew -it --rm linuxbrew/brew:latest /bin/bash

示例2:零时创建一个新容器,执行完命令后退出该容器,并销毁该容器:

docker run --user linuxbrew -it --rm linuxbrew/brew:latest brew search curl

示例3:创建一个新容器,执行完命令后退出该容器,但不销毁该容器:

docker run --user linuxbrew -it --name linuxbrew linuxbrew/brew:latest /bin/bash
1.5、LinuxBrew主程序的国内镜像

LinuxBrewHomeBrew主程序是同一个,国内有一些镜像,我们使用国内的镜像速度会更快。

替换方法:

git -C "$(brew --repo)" remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/brew.git
brew update
1.6、LinuxBrew Bottles
国内镜像
HOMEBREW_BOTTLE_DOMAINhttps://homebrew.bintray.comhttps://mirrors.tuna.tsinghua.edu.cn/homebrew-bottles
LINUXBREW_BOTTLE_DOMAINhttps://linuxbrew.bintray.com

目前,没有发现国内有LinuxBrew Bottles仓库的国内镜像,不过,它的下载速度也不慢。