2020/05/25

Homebrewとは

HomebrewはMacのパッケージ管理システムです。

 

MacはGit、PHP、Ruby、Pythonといったアプリケーションが標準インストールされてますが、Macで開発環境を構築する場合、異なるバージョンで利用するケースが発生します。
そこでHomebrewを利用すると、Gitで管理されたパッケージをダウンロードして、インストール、アンインストールなど管理することができます。


最近ではDockerやクラウド開発の登場で Macに直接インストールすることも減りつつありますが、Dockerだけでは賄えない部分も多々あるので、いまだ必須のツールになっています。

参考

Homebrew - インストール

インストール

以前の記事ではrubyでインストールしていましたが、公式をみるとシェルスクリプトでインストールしています。
実際はGitでパッケージをダウンロードし、Ruby の gem で実行しているのでやっていること自体は変わりません。

ターミナルを開き、以下のコマンドを実行します。


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

しばらくしてインストールが完了したら、バージョンを確認します。


$ brew --version
Homebrew 2.2.17
Homebrew/homebrew-core (git revision c87df; last commit 2020-05-22)

パッケージのインストール

試しに、ファイルダウンロードをするコマンド wget を brew でインストールしてみましょう。


$ brew install wget

インストールが完了したら、バージョンを確認します。


$ wget -V
GNU Wget 1.20.3 built on darwin18.7.0.
...

このようにHomebrewは Macで利用できないコマンドやアプリケーションを brew コマンドで管理します。

Cask でインストール

Cask は MacのGUIアプリ、フォント、プラグイン、その他オープンソースででないソフトウェアをインストールするときに利用します。

例えばブラウザアプリ「Firefox」を、Homebrewでインストールすることができます。


$ brew cask install firefox

Macのアプリケーションフォルダを確認するとFirefoxがインストールされているはずです。

 

PHPのインストール

Macのバージョンによっては、標準でインストールされているPHPのバージョンは異なります。
例えばLaravel 7.x をMac上で利用する場合、PHPのバージョン7.2.5以上が必要なため、別途インストールが必要です。

PHPパッケージの検索

PHPのインストールの前に、パッケージを検索してみます。


$ brew search php
==> Formulae
brew-php-switcher     php-code-sniffer      php@7.2               phplint               phpmyadmin            phpunit
php                 php-cs-fixer          php@7.3               phpmd                 phpstan

PHP7.3をインストール

php@7.3 パッケージがあるので、これをインストールします。


$ brew install php@7.3

PHPのパス設定

インストールが完了しましたが、現状はPHPの旧バージョンが有効のままです。

PHP7.3が利用できるようにパスの設定を ~/.bash_profile に記述します。


$ echo 'export PATH="/usr/local/opt/php@7.3/bin:$PATH"' >> ~/.bash_profile
$ source ~/.bash_profile

設定をすぐに反映するために .bash_profile を読み込むと、PHPのバージョンが変更されたことを確認できます。


$ php -v
PHP 7.3.18 (cli)

  2020/02/14

MacBook Pro 256 で開発やクリエイティブ作業していくと容量が厳しくなってきた。

自分の場合

  • Xcode(iOSシミュレータ含む)
  • Homebrew
  • VirtualBox & Vagrant
  • Docker
  • Adobe Creative Cloud
  • DAW、音楽ライブラリ
  • 写真ライブラリ

がかなり容量を圧迫しています。

ファイルを検索

5G以上のファイル検索


$ sudo du -gxd 5 / | awk '$1 >= 5{print}'

1G以上のファイル検索(現在のディレクトリ)

$ sudo du -gxd 1| awk '$1 >= 1{print}'

これらをもとに、手動で削除

Xcode 端末シミュレータの削除

Xcodeの場合、ツールコマンドを利用する

端末リスト確認


$ xcrun simctl list devices
== Devices == 
-- iOS 13.3 
-- iPhone 8 (69D4A89A-704C-43E0-8C71-6437C551DEB6) (Shutdown) iPhone 11 (DC5B21DE-21CA-4624-8C1C-7CDC349B9DDA) (Shutdown) ... 
-- Unavailable: com.apple.CoreSimulator.SimRuntime.iOS-10-1 
-- iPhone 5 (CE4E79DC-CE71-47A9-B2C8-5F77EE73196F) (Shutdown) (unavailable, runtime profile not found) iPhone 5s (C94451DC-A342-46AE-8E69-52D6DF928E77) (Shutdown) (unavailable, runtime profile not found) 

不要端末削除


$ xcrun simctl delete unavailable

Docker

Dockerは不要なコンテナー、イメージが溜まりがち

イメージ一覧情報を表示


$ docker image ls

不要(none)の情報を表示


$ docker images -f dangling=true

不要(none)の情報を削除


$ docker image rm $(docker image ls  --filter "dangling=true" -aq)

イメージ・コンテナー・ボリュームの情報を表示


$ docker system df TYPE TOTAL ACTIVE SIZE RECLAIMABLE Images 85 0 18.97GB 18.97GB (100%) Containers 0 0 0B 0B Local Volumes 24 0 80.44MB 80.44MB (100%) Build Cache 0 0 0B 0B

停止中(exited)のイメージ・コンテナー・ボリュームを削除


$ docker system prune

全てのイメージ・コンテナー・ボリュームを削除


$ docker system prune -a

GrageBand 削除

別途DAWを入れているので、Garageband は削除


$ sudo rm -rf /Applications/GarageBand.app
$ sudo rm -rf /Library/Application\ Support/GarageBand
$ sudo rm -rf /Library/Application\ Support/Logic
$ sudo rm -rf /Library/Audio/Apple\ Loops
$ sudo rm -rf /Library/Audio/Apple\ Loops\ Index

  2018/04/28
OSX(High Sieera)でRcmdr をインストールしてもエラーとなった。
> install.packages("Rcmdr", dependencies = TRUE) .... > library(Rcmdr) Error : .onAttach は attachNamespace()('Rcmdr' に対する)の中で失敗しました、詳細は: call: structure(.External(.C_dotTclObjv, objv), class = "tclObj") error: [tcl] invalid command name "image".

XQuartz インストール

Rcmdr はX11アプリで起動するため、XQuartzをインストール&起動しておかなければいけない。 https://www.xquartz.org/ RStudioを再起動し、XQuartzを起動した状態で、Rcmdr を読み込むと起動した。 Rcmdr

  2018/04/07
Mac でも R 環境が利用できる。 ただ、XCodeを予めインストールしておいた方が良さそうだ。 (自分は予めXCodeを入れていたので未確認) * 2018/4 時点では「ElCapitan」対応だが、差し当たり「HighSierra」でも動作している。

Rインストール

The Comprehensive R Archive Network
$ R --version R version 3.4.4 (2018-03-15) -- "Someone to Lean On" Copyright (C) 2018 The R Foundation for Statistical Computing Platform: x86_64-apple-darwin15.6.0 (64-bit)

RStudioインストール

RStudio コンソール等でプログラムを簡単に確認できる。 RStudio

日本語化

ホームに「.RProfile」を作成し以下を記述する *参考:RStudio for Mac OS X で日本語のプロットが上手くいかない場合の対処法
setHook(packageEvent("grDevices", "onLoad"),
    function(...){
        if(.Platform$OS.type == "windows")
            grDevices::windowsFonts(sans ="MS Gothic",
                                    serif="MS Mincho",
                                    mono ="FixedFont")
        if(capabilities("aqua"))
            grDevices::quartzFonts(
              sans =grDevices::quartzFont(
                c("Hiragino Kaku Gothic Pro W3",
                  "Hiragino Kaku Gothic Pro W6",
                  "Hiragino Kaku Gothic Pro W3",
                  "Hiragino Kaku Gothic Pro W6")),
              serif=grDevices::quartzFont(
                c("Hiragino Mincho Pro W3",
                  "Hiragino Mincho Pro W6",
                  "Hiragino Mincho Pro W3",
                  "Hiragino Mincho Pro W6")))
        if(capabilities("X11"))
            grDevices::X11.options(
                fonts=c("-kochi-gothic-%s-%s-*-*-%d-*-*-*-*-*-*-*",
                        "-adobe-symbol-medium-r-*-*-%d-*-*-*-*-*-*-*"))
        grDevices::pdf.options(family="Japan1GothicBBB")
        grDevices::ps.options(family="Japan1GothicBBB")
        }
)
attach(NULL, name = "JapanEnv")
assign("familyset_hook",
       function() {
            winfontdevs=c("windows","win.metafile",
                          "png","bmp","jpeg","tiff","RStudioGD")
            macfontdevs=c("quartz","quartz_off_screen","RStudioGD")
            devname=strsplit(names(dev.cur()),":")[[1L]][1]
            if ((.Platform$OS.type == "windows") &&
                (devname %in% winfontdevs))
                    par(family="sans")
            if (capabilities("aqua") &&
                devname %in% macfontdevs)
                    par(family="sans")
       },
       pos="JapanEnv")
setHook("plot.new", get("familyset_hook", pos="JapanEnv"))
setHook("persp", get("familyset_hook", pos="JapanEnv"))

パッケージのインストール

RStudio のコマンド
install.packages("パッケージ名")
でパッケージをインストールできる。 例) > install.packages("knitr")

MeCabインストール

オープンソースの形態素解析エンジン 文法を解析できる。 MeCabから「mecab-0.996.tar.gz」(2018/3時点)をダウンロードしてソースインストール
$ tar zxvf mecab-0.996.tar.gz $ cd mecab-0.996 $ ./configure --with-charset=utf-8 $ make $ sudo make install
$ tar zxvf mecab-ipadic-2.7.0-20070801.tar.gz $ cd mecab-ipadic-2.7.0-20070801 $ ./configure --with-charset=utf-8 $ make $ sudo make install
$ mecab 日本 日本 名詞,固有名詞,地域,国,*,*,日本,ニッポン,ニッポン EOS

RMeCabインストール

RStudio のコンソールで以下を実行する
> install.packages("RMeCab", repos = "http://rmecab.jp/R", type = "source")

  2018/04/06
Mac(OSX)で gem install するとデフォルトではエラーになるので、XCodeコマンドラインをインストールしておく。

XCodeコマンドラインインストール

$ sudo xcode-select --install

/usr/local/bin 環境変数登録

$ echo 'export PATH=/usr/local/bin:$PATH' >> .bash_profile $ source .bash_profile
最新 ruby を利用したり、sudo など省きたい場合は、brew で別途 ruby をインストール・設定する。

gem 環境確認

$ gem environment - RUBYGEMS VERSION: 2.4.6 - RUBY VERSION: 2.0.0 (2015-12-16 patchlevel 648) [universal.x86_64-darwin16] - INSTALLATION DIRECTORY: /Library/Ruby/Gems/2.0.0 - RUBY EXECUTABLE: /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby - EXECUTABLE DIRECTORY: /usr/bin - SPEC CACHE DIRECTORY: /Users/yoo/.gem/specs - SYSTEM CONFIGURATION DIRECTORY: /Library/Ruby/Site - RUBYGEMS PLATFORMS: - ruby - universal-darwin-16 - GEM PATHS: - /Library/Ruby/Gems/2.0.0 - /Users/yoo/.gem/ruby/2.0.0 - /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/gems/2.0.0 - GEM CONFIGURATION: - :update_sources => true - :verbose => true - :backtrace => false - :bulk_threshold => 1000 - REMOTE SOURCES: - https://rubygems.org/ - SHELL PATH: - /Users/yoo/.rbenv/shims - /Users/yoo/.rbenv/bin - /Users/yoo/.nodebrew/current/bin - /usr/local/bin - /usr/bin - /bin - /usr/sbin - /sbin - /opt/X11/bin - /usr/local/share/dotnet - /Library/Frameworks/Mono.framework/Versions/Current/Commands

Sassインストール

$ sudo gem install -n /usr/local/bin sass

gemリスト

$ gem list *** LOCAL GEMS *** bigdecimal (1.2.7, 1.2.0) CFPropertyList (2.3.0, 2.2.8) chunky_png (1.3.4) compass (1.0.3) compass-core (1.0.3) compass-import-once (1.0.5) daemons (1.2.4) ffi (1.9.8) io-console (0.4.2) json (1.7.7) libxml-ruby (2.8.0, 2.6.0) mini_portile (0.6.2) minitest (5.5.1, 4.3.2) multi_json (1.11.0) nokogiri (1.5.6) oauth (0.5.4) power_assert (0.2.3) psych (2.0.0) rake (10.4.2, 0.9.6) rb-fsevent (0.9.4) rb-inotify (0.9.10, 0.9.5) rdoc (4.2.0, 4.0.0) rubygems-update (2.4.6) sass (3.5.6, 3.4.13) sass-listen (4.0.0) sqlite3 (1.3.10, 1.3.7) test-unit (3.0.9, 2.0.0.0)

  2017/09/01
Google Apps Script で CSVデータを配列で処理してみる。 サンプルとしてCSVファイルは ・Google Drive内 ・SJISフォーマット ・フォルダとファイル名を指定(フォルダ名はGoogle Drive内でユニーク) ・CSVの内容は、first_name, last_name, email 形式で1行目はタイトル

function main() {
      var rows = csvtoArray('フォルダ名', 'ファイル名');

      for (var i = 1; i < rows.length; i++) {
          var row = rows[i];

          var first_name = row[0];
          var last_name = row[1];
          var email = row[1];
          
          Logger.log(last_name);
          Logger.log(first_name);
          Logger.log(email);
     }
}

function csvtoArray(folder_name, file_name) {
    var folder = DriveApp.getFoldersByName(folder_name).next();
    var file = folder.getFilesByName(file_name).next();

    var csv = file.getBlob().getDataAsString("Shift_JIS");
    var rows = Utilities.parseCsv(csv);
  
    return rows;
}
getFoldersByName()、getFilesByName() のイテレートは横着して next() で最初のアイテムを取得 (GoogleDrive内で重複する場合、それなりの処理が必要)

  2017/05/31

ハイライト選択

Cmd+D

全て選択

Cmd+Ctrl+G

  2017/05/31
Macのbashはデフォルトで rename がないため、for ; do を利用して一括変換する

「.m4a.mp3」を「.m4a」に一括変換

for f in *.m4a.mp3; do mv "$f" "${f/.mp3/}"; done

f は任意の変数で、結果は「"$f"」とダブルクォートでくくって扱う

for 変数 in ファイル検索文字; do mv "$変数" "${変数/置換対象文字/置換文字}"; done

  2015/04/09
SublimeTextの文字コードはUTF8のため、基本的にその他エンコードファイルは文字化けしてしまうが、以下をインストールすることでShift-JISファイルを開くことができる。 ・「ConvertToUTF8」 ・「Codecs33」

ConvertToUTF8インストール

SublimeTextのパッケージインストールコマンドでインストール

Codecs33インストール

Codecs33-osx.zipをダウンロードし、

~/Library/Application Support/Sublime Text 3/Packages

に「Codecs33」として展開 SublimeTextを再起動すると、SJISファイルを開くことができる。

UTF-8で保存

SJISで開いているだけなので、実際にUTF-8で保存するには、「File > Save with Encoding > UTF-8」を選択する。

  2015/03/18
最近、Sublime Text から乗り換えてる人もかなりいるというくらいAtomの進化が凄いらしい。 インストール直後のビルドイン(2015/3/18時点)で、そこそこ使えるパッケージがインストールされてて、すんなり使えるイメージ。

Atom Shell

Atomには独自のShellを利用することができる。 有効にするには、Atom > Install Shell Commands と選択するだけ。 Atom Atom これでターミナル上でapmコマンドが利用できる。 試しに vim-mode パッケージをインストールしてみる。

$ apm search vim-mode $ apm install vim-mode

Atom Atomを再起動して設定の vim-modeプラグインを確認してみると Atom GUIベースでキーバインドができる! ざっとインストールパッケージを確認したい場合は

$ amp list

とパッケージ管理ぽい直感的コマンド

設定ファイル

~/.atom

に各種設定ファイルが保存されている。 jsonだけでなくcson形式もあるようだ。

GUIでインストール

Atom > Preference 画面で、Shellコマンドを利用しなくても検索、インストールできる。 Atom

ショートカット・ファインダ操作などのデフォルト機能

Sublime Textに劣らない機能になっていて、ショートカットが同じだったりします。 例えばコマンドパレットが Shift + Command + P だったり、ショートカットで複数選択 Command + D して一括編集などなど。 ファインダ操作は Sublime Text はプラグイン入れないと複製、削除などサイドバーでできないが、Atomでは標準装備されている。 Atom ただ、OSXだと「ファイル削除 = ゴミ箱に移動」のようなので、Sambaでファイル共有してるとファイル削除ができなかった。 その他、Sublime Text でできていた事ができなかったりする(設定すればできるかも知れないが情報不足)。 例えば、php予約語の自動補完(snippetはできる)や宣言へのジャンプなど。 GUIはよくできているので、しばらくSublime Textと並行利用してよければ乗り換えるかも(?!)
<< Top < Prev Next > Last >>
Homebrewインストール-2020年版
[Mac]容量を減らす
[R]OSXでRcmdrインストール
[R]RStudio環境の作成
[OSX]gem install エラーの対処
[GAS]GoogleDrive内のCSVを配列処理
[SublimeText]一括選択
[Mac]ファイル名一括変換コマンド
[Sublime Text]Shift-JISファイルを開く
[Atom]インストールや使用感
[Illustlator]画像トリミング(クリッピングマスク)
[OSX]ウィンドウのスクリーンショット
[SublimeText]サイドバーでファイル操作「SideBarEnhancements」
[Docker]OSXでDockerをインストール
[SublimeText]SublimeText3キーマップの編集
[Google Analytics]Core Reporting API
[SublimeText]キーボードショートカットの設定
[SublimeText]プラグイン
[SublimeText]Sublime Text3への環境移行
Docker
[SublimeText]テーマの変更
[OSX]不可視ファイルの表示方法
[SublimeText]Vimの設定
[SublimeText]言語別にインデントを変更
[SublimeText]ZenCodingとEmmet
[SublimeText]viモードでの一括置換
[OSX]キーボードカスタマイズツール
[SublimeText] ASPタグの入力補助
[SublimeText]使ってみる
[After Effects]ロゴアニメーション
[vim]^Mの改行コードを置換する
Bitbucket
[Homebrew]PHP & PostgreSQL の構築
JavaScript の大規模開発を行うために
[OSX]Macports でインストールできない
Jenkins の導入
GDD 2011 資料メモ
社内SNSで Yammer を使ってみた
Dropbox API公開
[vim]画面分割
[Homebrew]インストール
[Kinect]OSX で Kinectセンサを使ってみた
SoundCloud API Console
VPSサーバ変えました
[OSX]DNSキャッシュクリア
[Corona]ステータスバーを消す
[Corona]外部ファイル読み込み
[OSX]ことえりで日本語変換できない
[Eclipse] Vrapper でvim風にする
Eclipse 3.6(Helios)にsubversionプラグインをインストール