1.1、LinuxBrew简介
在macOS平台上非常流行的包管理器HomeBrew被移植到GNU/Linux上而成为LinuxBrew
。
虽然各种GNU/Linux发行版都带有自己的包管理工具,诸如apt-get、yum、dnf、zypper、apk、pacman、emerge
等等, 但Linuxbrew
在以下情况下仍有用武之地:
LinuxBrew
允许将包安装到用户的$HOME
目录,这样的话, 就不再需要执行sudo命令了;- 对于在GNU/Linux系统自带的包管理器中缺少的包,可以通过
LinuxBrew
来搞定; - 如果GNU/Linux系统自带的包管理器中所带包的版本过旧,那么利用
LinuxBrew
能够安装该包的最新版本。
LinuxBrew
的官网:http://linuxbrew.sh
1.2、在GNU/Linux中安装LinuxBrew
1、安装依赖:
如果您的系统是Ubuntu,请执行如下命令:
sudo apt-get install -y build-essential curl git m4 python-setuptools ruby texinfo libbz2-dev libcurl4-openssl-dev libexpat-dev libncurses-dev zlib1g-dev
如果您的系统是CentOS,请执行如下命令:
sudo yum groupinstall 'Development Tools' && sudo yum install curl git irb python-setuptools ruby
2、安装LinuxBrew
:
echo -e "\n" | ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Linuxbrew/install/master/install)"
3、配置环境变量:
export PATH="$HOME/.linuxbrew/bin:$PATH"
export MANPATH="$HOME/.linuxbrew/share/man:$MANPATH"
export INFOPATH="$HOME/.linuxbrew/share/info:$INFOPATH"
1.3、LinuxBrew不能在root用户下使用问题的解决
出于安全的考虑,LinuxBrew
不允许在root
用户下安装和使用。但是, 我们有时候仅仅是为了在root
用户下做一些测试工作,并不是在生产环境下使用。 很多操作系统的默认用户就是root
,docker容器的默认用户通常也是root
, 在root
用户下不能使用LinuxBrew
就给我们想要快速测试一些东西带来了麻烦。
解决这个问题有两种办法:
- 方法一:创建一个普通用户,使用创建的普通用户登录
- 方法二:修改
LinuxBrew
的源代码,把限制去除掉。
1.3.1、创建一个普通用户,使用创建的普通用户登录
1.3.2、修改LinuxBrew的源代码,把限制去除掉
这涉及到2
个git仓库:
将这2
个仓库fork
到自己的GitHub中,如下:
对于leleliu008/Linuxbrew-install做如下工作:
1、使用git下载源代码:
git clone https://github.com/leleliu008/Linuxbrew-install
2、注释掉install
中的abort "Don't run this as root!" if Process.uid.zero?
这一行。
3、把https://raw.githubusercontent.com/Linuxbrew/install
字符串替换为https://raw.githubusercontent.com/leleliu008/Linuxbrew-install
对于leleliu008/Linuxbrew-brew做如下工作:
1、使用git下载源代码:
git clone https://github.com/leleliu008/Linuxbrew-brew
2、注释掉Library/Homebrew/brew.sh
中的check-run-command-as-root
这一行。
3、把https://raw.githubusercontent.com/Linuxbrew/install
字符串替换为https://raw.githubusercontent.com/leleliu008/Linuxbrew-install
把这两个仓库推送到GitHub上。
安装方法与原来的完全一样,只是把Linuxbrew/install
替换为leleliu008/Linuxbrew-install
即可。
即:先sudo chown -R 用户名 /usr/local,其中用户名为自己root@后面的用户名
echo -e "\n" | ruby -e "$(curl -fsSL https://raw.githubusercontent.com/leleliu008/Linuxbrew-install/master/install)"