Memo/MacOS X/Homebrew

https://dexlab.net:443/pukiwiki/index.php?Memo/MacOS%20X/Homebrew
 

Homebrew: パッケージマネージャ

  • インストール
    • Javaのインストール
    • Command Line Toolsのインストール
    • Homebrewのインストール
      ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
      brew doctor
      brew update
  • python, ansibleパッケージを追加
    brew install python ansible

トラブルシューティング


undefined method `undent'

  • エラー
    brew list --cask
    Error: Cask 'java' is unreadable: undefined method `undent' for #<String:0x00007fa229a24ce8>
  • 解決
    • rbファイル内の「EOS.undent」を「EOS」へ置換する
      code /usr/local/Caskroom/java/.metadata/1.8.0_121-b13,e9e7ea248e2c4826b92b3f075a80e441/20170131073544.745/Casks/java.rb

ERROR:root:code for hash md5 was not found.

brewでインストールしたpython2のpipが壊れてしまう場合があった。

  • 環境
    • macOS Mojave 10.14.6
    • python 2.7.17
    • pip 2.7
  • python v2の再インストール
    brew install python@2

OSアップグレードしたら動作しなくなった場合

macOS Sierra にアップグレードした所、CommandLineToolsが動作しなくなった。

  • xcrun: error: unable to locate xcodebuild, please make sure the path to the Xcode folder is set correctly!
    xcode-select --install
    sudo xcode-select -switch /Library/Developer/CommandLineTools/
    brew doctor

複数のjavaバージョンを使う

  • 現在javaをbrew caskでインストールすると、java8が入る。古いjava7/6を明示的に入れたい場合。
    brew cask search java
    brew cask install java7
    
    # 必要であれば、~/.profile 等に足す
    export JAVA_HOME=$(/usr/libexec/java_home -v 1.7)
    java -version

ダウングレード

  • 簡単にはダウングレードできない場合。virtualboxは6.1.4がクラッシュするので、手動で6.0.18のdmgファイルからダウングレードした。
    brew cask uninstall <package>
    # dmgファイルからインストール

upgrade時に最新だけ残して、古いバージョンは消す

デフォルトでは、upgradeした時に古いバージョンが残る。

  • upgrade時に明示的にオプションを付ける
    brew upgrade --cleanup
  • 環境変数として足す
    export HOMEBREW_UPGRADE_CLEANUP=1

古いバージョンを消して、ディスクの空き容量を増やす

パッケージ毎に古いバージョンを持っているので、サイズが大きく、バージョンアップが頻繁なパッケージでは、どんどんディスクを使う。

  • サイズの大きい順に、MB単位で、TOP10を表示
    du -sm /usr/local/Cellar/* | sort -nr | head -n 10
    855	/usr/local/Cellar/boost
    703	/usr/local/Cellar/mysql
    352	/usr/local/Cellar/python
    238	/usr/local/Cellar/terraform
    192	/usr/local/Cellar/ansible
    189	/usr/local/Cellar/git
    139	/usr/local/Cellar/awscli
    ...
  • パッケージ情報を表示。 [package]は省略可能。
    brew info [package]
    
    brew info
    51 kegs, 128,745 files, 3GB
  • パッケージ毎にcleanup。 [package]は省略可能。
    brew cleanup  [package]
    
    brew cleanup
    brew info
    51 kegs, 101,708 files, 2.2GB # 0.8GB削減

古いバージョンを追加

  • 例:チェック時点で最新はansible2.0で、ansible-galaxyが動かなかった。2.0.0.2はOK
    brew tap homebrew/versions
    brew search ansible
    > ansible
    > homebrew/versions/ansible19
    
    brew install homebrew/versions/ansible19

cask

  • http://caskroom.io/
    • インストーラがGUIのみのアプリケーションのインストールを行う
  • Homebrew-Caskのインストール方法が変更された
    • 古いbrew-caskの削除
      brew uninstall --force brew-cask
    • brew updateで「Error: Failed to update tap: caskroom/versions」エラーがでるので一度削除して追加
      brew untap caskroom/versions
      brew tap caskroom/cask
      brew update
  • デフォルトでは ~/Applications/ にシンボリックリンクが張られる。/Applications に変更したい場合
    echo "export HOMEBREW_CASK_OPTS='--appdir=/Applications'" >> ~/.profile
    source ~/.profile
    
    brew update
    brew cask install google-chrome

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2020-10-26 (月) 13:07:16 (37d)