美文网首页
mac下brew入门

mac下brew入门

作者: Aedda | 来源:发表于2022-05-26 18:03 被阅读0次

    背景

    mac book 升级操作系统以后,brew变得缺胳膊少腿,不能正常运行了
    搜了很多修复的办法都不能工作。

    初次尝试

    后面去brew官网https://brew.sh/找到这个命令

    /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
    
    

    但是因为有那一堵伟大的墙,很多资源拉不下来。

    开动脑筋

    机制的我想,国内肯定有人碰到类似的问题,然后已经有墙内办法了,于是在gitee上搜索试试运气,运气不错,找到这个项目
    https://gitee.com/cunkai/HomebrewCN
    里面的下面这条命令帮我解决了问题

    /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"
    
    

    小试牛刀

    $ brew install watchman
    ....此处省略日志若干行
    
    $ which watchman
    /usr/local/bin/watchman
    
    

    完美解决,一劳永逸

    为了一劳永逸解决问题,把brew源切换为国内源吧,我是切换到清华大学的仓库,操作如下

    # 替换各个源
    $ git -C "$(brew --repo)" remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/brew.git
    $ git -C "$(brew --repo homebrew/core)" remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-core.git
    $ git -C "$(brew --repo homebrew/cask)" remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-cask.git
    
    # zsh 替换 brew bintray 镜像
    $ echo 'export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.tuna.tsinghua.edu.cn/homebrew-bottles' >> ~/.zshrc
    $ source ~/.zshrc
    
    # bash 替换 brew bintray 镜像
    $ echo 'export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.tuna.tsinghua.edu.cn/homebrew-bottles' >> ~/.bash_profile
    $ source ~/.bash_profile
    
    # 刷新源
    $ brew update
    
    

    具体参照 Mac 下 brew 切换为国内源

    HomeBrew简介

    我们在使用Linux系统的时候,都很喜欢 (Debian/Ubuntu)系列的apt包管理系统和(Redhat/Fedora)系列的yum包管理系统。Mac OS X系统下面有apple的官方Mac App Store。但是好多软件是找不到的,所以我们也向在苹果下找到一款比较方便的包管理系统,就是Homebrew。

    什么是Homebrew呢?Homebrew is the easiest and most flexible way to install the UNIX tools Apple didn’t include with OS X. 官方的解释非常明了,Homebrew是一个包管理器,用于在Mac上安装一些OS X没有的UNIX工具(比如著名的wget),能在Mac中方便的安装软件或者卸载软件,可以说Homebrew就是mac下的apt-get、yum神器。

    Homebrew安装

    Homebrew的安装非常简单,打开终端,执行以下命令:

    ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
    
    

    中途需要Press RETURN to continue,输入系统密码等操作就完成了安装。
    Homebrew安装成功后,会自动创建目录/usr/local/Cellar 来存放Homebrew安装的程序,并在 /usr/local/bin 中创建符号链接. 在命令行状态下面就可以使用 brew 命令了.

    brew 使用方法

    举个例子,安装git:

    搜索git(此步骤非必须)
    brew search git
    安装软件
    brew install git
    卸载软件
    brew uninstall git
    显示已经安装软件列表
    brew list

    常用命令

    brew list       #列出已安装的软件
    brew update     #更新brew
    brew home       #用浏览器打开brew的官方网站
    brew info       #显示软件信息
    brew deps       #显示包依赖
    brew upgrade    #更新某个具体软件
    brew outdated   #查看那些包需要更新
    
    

    卸载brew

    cd `brew –prefix`
    rm -rf Cellar
    brew prune
    rm `git ls-files`
    rm -rf Library .git .gitignore bin/brew
    rm -rfREADME.mdshare/man/man1/brew
    rm -rf Library/Homebrew Library/Aliases
    rm -rf Library/Formula Library/Contributions
    rm -rf ~/Library/Caches/Homebrew
    
    

    brew更新源

    参考http://blog.csdn.net/u010275932/article/details/76080833
    在网上找个更新源的配置,网上教程数不胜数,最后看到上文链接,解释的很详细易懂。感谢作者的分享!

    更新源的机制

    Homebrew的更新源由三部分组成:本体(brew.git)、核心(homebrew-core.git)以及二进制预编译包(homebrew-bottles)。

    在很多教程中,只会提及到更换本体,而未涉及到核心与二进制预编译包的更换。这样实际上效果是不完全的(尽管这样也无法做到完全,毕竟有一些软件包的地址是不被收录的,只能从它们提供的链接处下载)。

    从.git的后缀名可以看出,Homebrew的更新源是以Git仓库的形式存在的,这便是为什么需要用到Git的原因。也正是如此,使得可以对其进行克隆,成为新源。

    更新源的选择

    默认官方的更新源都是存放在GitHub上的,这也是中国大陆用户访问缓慢的原因,一般来说我们会更倾向选择国内提供的更新源,在此推荐中国科大以及清华大学提供的更新源,因为它们能够完整以上源组成的三个部分。并且在此感谢他们为大家提供的服务。

    替换更新源
    # 替换brew.git:
    $ cd "$(brew --repo)"
    # 中国科大:
    $ git remote set-url origin https://mirrors.ustc.edu.cn/brew.git
    # 清华大学:
    $ git remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/brew.git
    
    # 替换homebrew-core.git:
    $ cd "$(brew --repo)/Library/Taps/homebrew/homebrew-core"
    # 中国科大:
    $ git remote set-url origin https://mirrors.ustc.edu.cn/homebrew-core.git
    # 清华大学:
    $ git remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-core.git
    
    # 替换homebrew-bottles:
    # 中国科大:
    $ echo 'export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.ustc.edu.cn/homebrew-bottles' >> ~/.bash_profile
    $ source ~/.bash_profile
    # 清华大学:
    $ echo 'export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.tuna.tsinghua.edu.cn/homebrew-bottles' >> ~/.bash_profile
    $ source ~/.bash_profile
    
    # 应用生效:
    $ brew update
    
    

    以上在中国科大和清华大学任选其一即可,在使用其他源的时候,最好先尝试访问其链接看看是否健在,并且因为历史原因,最初的brew.git是叫homebrew.git的,而现在部分更新源早已随官方更名,所以切记要验证。
      并且没有严格规定必须三个组成部分必须是来自同一提供,可随性发挥。
      且Homebrew在早期版本中更新源的是在/usr/local目录下的,而现在是在/usr/local/Homebrew,不过应该都是可以使用"$(brew --repo)"来自动指向目录的,所以无需理会。
      如果你之前折腾过不少导致你的Homebrew有点问题,那么可以尝试使用如下方案:

    # 诊断Homebrew的问题:
    $ brew doctor
    
    # 重置brew.git设置:
    $ cd "$(brew --repo)"
    $ git fetch
    $ git reset --hard origin/master
    
    # homebrew-core.git同理:
    $ cd "$(brew --repo)/Library/Taps/homebrew/homebrew-core"
    $ git fetch
    $ git reset --hard origin/master
    
    # 应用生效:
    $ brew update
    
    
    重置更新源

    所谓有进则有退,在某些时候也有换回官方源的需求。

    # 重置brew.git:
    $ cd "$(brew --repo)"
    $ git remote set-url origin https://github.com/Homebrew/brew.git
    
    # 重置homebrew-core.git:
    $ cd "$(brew --repo)/Library/Taps/homebrew/homebrew-core"
    $ git remote set-url origin https://github.com/Homebrew/homebrew-core.git
    
    

    至于homebrew-bottles,本质上作为一个环境变量的存在,之前的命令也只是将其写入到/usr/.bash_profile中,并且只是在文件尾部添加一行。所以之前的命令不推荐重复执行,在未掌握相关命令技巧的前提下,我推荐直接去修改.bash_profile文件:

    image

    当然这里的主题是重置更新源,所以我们直接选择删除环境变量HOMEBREW_BOTTLE_DOMAIN,使其成为默认值即可。
    当然,最后不要忘记$ brew update进行应用。

    在完成更新源的更换后,我们可以使用[图片上传失败...(image-df10ff-1653559401854)]

    brew cleanup将旧有的软件安装包进行清理。

    以上都是经过本人测试后整理的,自用。

    📅20210629 更新:
    快速安装brew
    /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"

    相关文章

      网友评论

          本文标题:mac下brew入门

          本文链接:https://www.haomeiwen.com/subject/hiqpprtx.html