Tag: Homebrew

  • Global Homebrew PATH Prefix for macOS

    Based on Homebrew’s FAQ you can set prefix in PATH for all GUI apps which is not enabled by default:

    user$ sudo launchctl config user path "$(brew --prefix)/bin:${PATH}"
    Configuration applied. You must reboot for changes to take effect.

    According to this answer. The sudo launchctl config user path <...> command updates /private/var/db/com.apple.xpc.launchd/config/user.plist:

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <dict>
    	<key>PathEnvironmentVariable</key>
    	<string>/opt/homebrew/bin:/usr/bin:/bin:/usr/sbin:/sbin</string>
    </dict>
    </plist>

    You can query launchd‘s current settings via:

    launchctl getenv PATH

    Related: You can also query the default PATH by executing:

    sysctl user.cs_path

    Test script with clear environment:

    env -i git commit
  • Migrate Homebrew from Intel Macs to Apple Silicon Macs

    Dump all your existing Homebrew packages:

    brew bundle dump

    If you’re using custom shell installed by Homebrew (ie. fish), change it back to bash temporarily:

    chsh -s /bin/bash

    You may also need to change this in System Preferences – Users & Groups (right click on your avatar and choose Advanced Options…)

    Uninstall existing Homebrew (and all its packages):

    curl -fsSL -o /tmp/uninstall.sh https://raw.githubusercontent.com/Homebrew/install/HEAD/uninstall.sh
    /bin/bash /tmp/uninstall.sh --path=/usr/local
    (more…)
  • Make pyenv Play Nice with Homebrew in fish Shell

    # Make pyenv play nice with Homebrew
    # https://github.com/pyenv/pyenv/issues/106
    alias brew="env PATH=(string replace (pyenv root)/shims '' (echo $PATH)) brew"
  • Signing Git Commits without Entering Password Using `gpg-agent` and `pinentry-mac` on OS X

    Install required packages via Homebrew:

    $ brew install gpg gpg-agent pinentry-mac
    

    Edit and add the following lines in ~/.gnupg/gpg-agent.conf:

    pinentry-program /usr/local/bin/pinentry-mac
    

    Edit and enable use-agent in ~/.gnupg/gpg.conf:

    use-agent
    

    Then add the following line to your shell profile:

    eval $(gpg-agent --daemon --sh)
    
  • Fix RubyGems Postinstall Error

    gem pristine --all --only-executables
    
  • 更新 Homebrew 时出现 Error: Failed while executing git pull origin refs/heads/master:refs/remotes/origin/master 的解决方案

    病情:

    error@cox:/Users/mom$ brew update
    remote: Counting objects: 2482, done.
    remote: Compressing objects: 100% (750/750), done.
    remote: Total 2105 (delta 1543), reused 1822 (delta 1349)
    Receiving objects: 100% (2105/2105), 329.33 KiB | 122 KiB/s, done.
    Resolving deltas: 100% (1543/1543), completed with 295 local objects.
    From https://github.com/mxcl/homebrew
       f884112..28f7e01  master     -> origin/master
    error: The following untracked working tree files would be overwritten by merge:
    	Library/Formula/autojump.rb
    Please move or remove them before you can merge.
    Updating f884112..28f7e01
    Aborting
    Error: Failed while executing git pull  origin refs/heads/master:refs/remotes/origin/master

    解决方法:

    cd `brew --prefix`
    
    git clean -n # Does a dry run---shows what will get nuked without touching anything
    git clean -f # This will destroy files