<commit_before>---
layout: post
title: Homebrew notes
date:   2016-02-25 14:17:06
categories: tool
tag: tool
image: /assets/images/post.jpg
---

<h2>{{ page.title }}</h2>

<p>
  <ul>
    <li>
      <code>/usr/local/</code> 是一个git仓库
    </li>
    <li>
       <code>keg</code>
    </li>
    <li>
       <code>/usr/local/Cellar/</code>存储所有安装的kegs, 都将以[程序名/版本号]存放于本目录下
    </li>
    <li>
       <code>/usr/local/bin</code>软件的软连接入口文件, 指向/usr/local/Cellar/对应文件
    </li>
    <li>
       <code>/usr/local/Library/Formula</code>软件安装公式文件库(版本库)
    </li>
  </ul>
  <br>

  <li><code>brew info</code></li> 整体安装信息: 45 kegs, 26451 files, 1.2G
  <code>brew info memcached</code>

  如果安装了多版本, *指定的是当前版本:
<br>
  % brew info git
  git: stable 2.5.3 (bottled), HEAD
  Distributed revision control system
  https://git-scm.com
  /usr/local/Cellar/git/1.8.5.3 (1337 files, 29M)
    Poured from bottle
  /usr/local/Cellar/git/2.4.6 (1376 files, 32M)
    Poured from bottle
  /usr/local/Cellar/git/2.5.0 (1383 files, 32M) *
    Poured from bottle
<br>
  2.5 后面有个星号
  <li><code>brew switch</code></li> 软件名 版本 切换已安装的版本, 如brew switch git 2.4.6

  <li><code>brew ls 列出所有安装软件</code></li>

  <li><code>brew list --versions</code></li> 列出所有安装软件, 并带上版本信息

  <li><code>brew ls vim</code></li> 该软件的文件构成

  <li><code>brew deps vim</code></li> 显示指定包的依赖, 依赖是写在formula文件里的

  <li><code>brew edit tree</code></li> 编辑器打开指定软件包的formula文件

  <li><code>brew outdated</code></li> 查看陈旧软件包

  <li><code>brew update</code></li> 不带参数, 更新brew自己

  <li><code>brew upgrade tree</code></li> 更新指定软件包

  <li><code>brew install FORMULA...</code></li>

  <li><code>brew uninstall FORMULA...</code></li>
  <li><code>brew search [foo]</code></li>

  <li><code>brew tap <gihhub_user/repo></code></li> 安装指定扩展源

  <li><code>brew tap</code></li> 应该是查看所有扩展吧

  安装指定版本

  <li><code>brew log redis</code></li> 查看redis git历史

  找到想要的版本的commit

  <li><code>cd $( brew --prefix )</code></li> 进入brew目录

  <li><code>git checkout</code></li> 提交号 Library/Formula/redis.rb 切换安装指令

  版本库会有修改, 不过以后执行brew update会还原回去

  <li><code>brew install redis</code></li> 进行安装

  如果已经安装了其他版本, 这里会要求先unlink: brew unlink redis
<br>
  Mac OS启动服务
  Mac下的启动服务主要有三个地方可配置：
  <p>
  系统偏好设置->帐户->登陆项
  /System/Library/StartupItems 和 /Library/StartupItems/
  launchd 系统初始化进程配置
  launchd 加载目录:
  </p>
  <p>
  /System/Library/LaunchAgents
  /System/Library/LaunchDaemons
  /Library/LaunchDaemons
  /Library/LaunchAgents
  ~/Library/LaunchAgents
  </p>
  <p>
  具体区别:

  /System/Library目录是存放Apple自己开发的软件。
  /Library目录是系统管理员存放的第三方软件。
  ~/Library/是用户自己存放的第三方软件。

  LaunchDaemons是用户未登陆前就启动的服务（守护进程）

  LaunchAgents是用户登陆后启动的服务（守护进程）
  </p>
  <br>
  使用:

  你可以通过以下的方式进行设置(TODO)：

  1.通过launchctl load -w xxx.plist或launchctl unload -w xxx.plist命令添加和删除指定启动项 2.直接创建、修改、删除相关目录下面的plist文件
<p>
  配置解读
<code>
  <?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>Label</key> 任务名称
    <string>homebrew.mxcl.memcached</string> 必须和文件名一致
    <key>KeepAlive</key> 是否后台保持运行
    <true/>
    <key>ProgramArguments</key> 启动命令和参数
    <array>
      <string>/usr/local/opt/memcached/bin/memcached</string>
      <string>-l</string>
      <string>localhost</string>
    </array>
    <key>RunAtLoad</key> 是否加载时候运行
    <true/>
    <key>WorkingDirectory</key> 工作目录
    <string>/usr/local</string>
  </dict>
  </plist>
</code>
</p>
<p>
  brew services
  安装: brew tap homebrew/services

  查看服务: brew services list
  <code>
  % brew services list
  Name      Status  User     Plist
  collectd  stopped
  memcached started zhonghua /Users/path/Library/LaunchAgents/homebrew.mxcl.memcached.plist
  mongodb   stopped
  mysql     started zhonghua /Users/path/Library/LaunchAgents/homebrew.mxcl.mysql.plist
  nginx     started zhonghua /Users/path/Library/LaunchAgents/homebrew.mxcl.nginx.plist
  redis     started zhonghua /Users/path/Library/LaunchAgents/homebrew.mxcl.redis.plist
  </code>
  <br>
  停止 brew services stop mysql

  启动brew services start mysql

  重启 brew services restart mysql
</p>
</p><commit_msg>add <br><commit_after>---
layout: post
title: Homebrew notes
date:   2016-02-25 14:17:06
categories: tool
tag: tool
image: /assets/images/post.jpg
---

<h2>{{ page.title }}</h2>

<p>
  <ul>
    <li>
      <code>/usr/local/</code> 是一个git仓库
    </li>
    <li>
       <code>keg</code>
    </li>
    <li>
       <code>/usr/local/Cellar/</code>存储所有安装的kegs, 都将以[程序名/版本号]存放于本目录下
    </li>
    <li>
       <code>/usr/local/bin</code>软件的软连接入口文件, 指向/usr/local/Cellar/对应文件
    </li>
    <li>
       <code>/usr/local/Library/Formula</code>软件安装公式文件库(版本库)
    </li>
  </ul>
  <br>

  <li><code>brew info</code></li>
  整体安装信息: 45 kegs, 26451 files, 1.2G
  <br>
  <code>brew info memcached</code>

  如果安装了多版本, *指定的是当前版本:
<br>
  % brew info git
  <br>
  git: stable 2.5.3 (bottled), HEAD
  <br>
  Distributed revision control system
  <br>
  https://git-scm.com
  <br>
  /usr/local/Cellar/git/1.8.5.3 (1337 files, 29M)
  <br>
    Poured from bottle
  <br>
  /usr/local/Cellar/git/2.4.6 (1376 files, 32M)
  <br>
    Poured from bottle
  <br>
  /usr/local/Cellar/git/2.5.0 (1383 files, 32M) *
  <br>
    Poured from bottle
<br>
  2.5 后面有个星号
  <li><code>brew switch</code></li> 软件名 版本 切换已安装的版本, 如brew switch git 2.4.6

  <li><code>brew ls 列出所有安装软件</code></li>

  <li><code>brew list --versions</code></li> 列出所有安装软件, 并带上版本信息

  <li><code>brew ls vim</code></li> 该软件的文件构成

  <li><code>brew deps vim</code></li> 显示指定包的依赖, 依赖是写在formula文件里的

  <li><code>brew edit tree</code></li> 编辑器打开指定软件包的formula文件

  <li><code>brew outdated</code></li> 查看陈旧软件包

  <li><code>brew update</code></li> 不带参数, 更新brew自己

  <li><code>brew upgrade tree</code></li> 更新指定软件包

  <li><code>brew install FORMULA...</code></li>

  <li><code>brew uninstall FORMULA...</code></li>
  <li><code>brew search [foo]</code></li>

  <li><code>brew tap <gihhub_user/repo></code></li> 安装指定扩展源

  <li><code>brew tap</code></li> 应该是查看所有扩展吧

  安装指定版本

  <li><code>brew log redis</code></li> 查看redis git历史

  找到想要的版本的commit

  <li><code>cd $( brew --prefix )</code></li> 进入brew目录

  <li><code>git checkout</code></li> 提交号 Library/Formula/redis.rb 切换安装指令

  版本库会有修改, 不过以后执行brew update会还原回去

  <li><code>brew install redis</code></li> 进行安装

  如果已经安装了其他版本, 这里会要求先unlink: brew unlink redis
<br>
  Mac OS启动服务
  Mac下的启动服务主要有三个地方可配置：
  <p>
  系统偏好设置->帐户->登陆项
  /System/Library/StartupItems 和 /Library/StartupItems/
  launchd 系统初始化进程配置
  launchd 加载目录:
  </p>
  <p>
  /System/Library/LaunchAgents
  /System/Library/LaunchDaemons
  /Library/LaunchDaemons
  /Library/LaunchAgents
  ~/Library/LaunchAgents
  </p>
  <p>
  具体区别:

  /System/Library目录是存放Apple自己开发的软件。
  /Library目录是系统管理员存放的第三方软件。
  ~/Library/是用户自己存放的第三方软件。

  LaunchDaemons是用户未登陆前就启动的服务（守护进程）

  LaunchAgents是用户登陆后启动的服务（守护进程）
  </p>
  <br>
  使用:

  你可以通过以下的方式进行设置(TODO)：

  1.通过launchctl load -w xxx.plist或launchctl unload -w xxx.plist命令添加和删除指定启动项 2.直接创建、修改、删除相关目录下面的plist文件
<p>
  配置解读
<code>
  <?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>Label</key> 任务名称
    <string>homebrew.mxcl.memcached</string> 必须和文件名一致
    <key>KeepAlive</key> 是否后台保持运行
    <true/>
    <key>ProgramArguments</key> 启动命令和参数
    <array>
      <string>/usr/local/opt/memcached/bin/memcached</string>
      <string>-l</string>
      <string>localhost</string>
    </array>
    <key>RunAtLoad</key> 是否加载时候运行
    <true/>
    <key>WorkingDirectory</key> 工作目录
    <string>/usr/local</string>
  </dict>
  </plist>
</code>
</p>
<p>
  brew services
  安装: brew tap homebrew/services
  <br>
  查看服务: brew services list
  <code>
  % brew services list
  Name      Status  User     Plist
  collectd  stopped
  memcached started zhonghua /Users/path/Library/LaunchAgents/homebrew.mxcl.memcached.plist
  mongodb   stopped
  mysql     started zhonghua /Users/path/Library/LaunchAgents/homebrew.mxcl.mysql.plist
  nginx     started zhonghua /Users/path/Library/LaunchAgents/homebrew.mxcl.nginx.plist
  redis     started zhonghua /Users/path/Library/LaunchAgents/homebrew.mxcl.redis.plist
  </code>
  <br>
  停止 brew services stop mysql
  <br>
  启动brew services start mysql
  <br>
  重启 brew services restart mysql
</p>
</p>
{'fraction_non_alphanumeric': 0.16026952231981711, 'fraction_numerical': 0.017326434845385635, 'mean_word_length': 3.3022774327122155, 'pattern_counts': {'":': 0, '<': 327, '<?xml version=': 2, '>': 331, 'https://': 2, 'lorem ipsum': 0, 'www.': 2, 'xml': 2}, 'pii_count': 2, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4124857', 'n_tokens_mistral': 4129, 'n_tokens_neox': 4199, 'n_words': 641}