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)"