はじめに
Macのセットアップは、結構めんどくさかったりします。例えば、Windowsでは、Chocolateyなどがありますので、それほど面倒ではありませんが、Macの場合は、パッケージ管理ツールを導入する際に、Xcode
のCommand Line Tools
が必要だったりするからだと思います。しかも、これらのツールをダウンロードするには、AppStoreからダウンロードして来なければなりません。そうでなくてもWeb認証が必要になったりします。
よって、今回は、Macの初期設定を出来る限り手間がかからないようにするためのコマンドやツールを紹介していきたいと思います。
なお、この記事で明示しているリンクは、問題解決のためのヒントになります。参考にしてください。
Macの初期設定を便利にするコマンド
Command Line Tools
HomebrewやBoxenを使うには、 Xcodeの Command Line Toolsをインストールする必要があります。
open -a Safari "https://developer.apple.com/downloads/index.action"
cd ~/Downloads
hdiutil mount xcode* && killall Finder
sudo installer -pkg /Volumes/Command\ Line\ Tools\ \(Lion\)/Command\ Line\ Tools\ \(Lion\).mpkg -target /Volumes/Macintosh\ HD/
Macでコマンドラインからdmgファイルをマウント、アンマウント。そしてmpkgのインストールへ。。。。 - uncertain world
なお、 Homebrew
が動かない場合などは、とりあえず以下のコマンドを実行します。
# http://qiita.com/items/2d36cbaf557078319713
$ brew doctor
$ sudo xcode-select -switch /
ここで紹介したのは、正確には、コマンドではなくCommand Line Tools for Xcode
というツールになりますが、ツールをインストールするためのコマンドを主としているので、ここに載せました。
Dropbox
ダウンロードが面倒なファイルなどは、 Dropboxに置いておくと便利です。また、設定ファイルなどの共有も Dropbox派
と GitHub派
が多いです。
open -a Safari "https://www.dropbox.com/downloading?src=index"
cd ~/Downloads
open Dropbox*
cp -r /Volumes/Dropbox\ Installer/Dropbox.app /Applications/
open -a Dropbox
cp xcode* ~/Dropbox
Using the Official Dropbox Command Line Interface (CLI) - Dropbox Wiki
共有する設定ファイルとしては、~/.zshrc
,~/.tmux.conf
,~/.vimrc
やセットアップを自動化するシェルスクリプトsetup.sh
などです。そして、これらをdotfiles
としてまとめることが多いです。
setup.sh
(または、install.sh)には、ln
やgit
を使うことが多いです。参考までに、具体例を載せておきます。
# https://github.com/chadrien/dotfiles/blob/master/install.sh
curl -L https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh | sh
git clone git://github.com/chadrien/dotfiles.git ~/.dotfiles
[[ -s ~/.tmux.conf ]]&& mv ~/.tmux.conf ~/.tmux.conf.old
[[ -s ~/.zshrc ]]&& mv ~/.zshrc ~/.zshrc.old
ln -s ~/.dotfiles/.tmux.conf ~/
ln -s ~/.dotfiles/.zshrc ~/
curl -Lo- https://bit.ly/janus-bootstrap | bash
git clone git://github.com/chadrien/janus-customization.git ~/.janus
cd ~/.janus
git submodule init
git submodule update
cd ~
[[ -s ~/.vimrc.before ]]&& mv ~/.vimrc.before ~/.vimrc.before.old
[[ -s ~/.vimrc.after ]]&& mv ~/.vimrc.after ~/.vimrc.after.old
ln -s ~/.janus/.vimrc.before ~/
ln -s ~/.janus/.vimrc.after ~/
softwareupdate
インストールしてあるアプリをアップデートします。
sudo softwareupdate -l
sudo softwareupdate -i -a
softwareupdate --schedule on
Mac OS X Server:softwareupdate コマンドラインツールを使ってソフトウェアをリモートインストールする方法
シャットダウンコマンドを設定する
この前、Macを起動したら、ジャーンという音が鳴りました。うるさいです。そういえば、前回シャットダウンした時に、珍しくMacの音量を大きくしたままだったので、それが原因らしいです。よって、シャットダウン時には、音量をゼロにすることにしました。
#shutdown
function s()
{
osascript -e "set Volume 0"
osascript -e 'tell application "Finder" to shut down'
}
これでs
コマンドでシャットダウンできます。
もし起動時の音量を設定したければ、適当に設定ファイルを書くか、もしくは、Macのシステム設定を使うかなどしてください。以下、参考までに起動時の音量を設定する方法をいくつか載せておきます。色々と応用出来ますので、参考にしてください。
OS立ち上げ時に起動するプロセスを設定する方法
$ sudo mkdir /System/Library/StartupItems/Foo
$ sudo vim /System/Library/StartupItems/Foo/Foo
#!/bin/sh### Start Web Server##
. /etc/rc.common
if["${Foo:=-NO-}"="-YES-"]; then
osascript -e "set Volume 3"fi
$ echo '{Description="Foo";Provides=("Foo");}' | sudo tee /System/Library/StartupItems/Foo/StartupParameters.plist
$ echo "Foo=-YES-" | sudo tee -a /etc/hostconfig
なお、もしかしたら権限の変更が必要かもしれません。
$ sudo chmod 755 /System/Library/StartupItems/Foo/Foo && sudo chmod 644 /System/Library/StartupItems/Foo/StartupParameters.plist
起動時や終了時にコマンドを実行する方法
$ sudo mkdir /Library/StartupItems/Foo
$ sudo vim /Library/StartupItems/Foo/Foo
#!/bin/sh
. /etc/rc.common
StartService (){# 起動時に実行するコマンドを記述する
osascript -e "set Volume 3"}
StopService (){# シャットダウン時に実行するコマンドを記述する
osascript -e "set Volume 0"}
RestartService (){ StartService; }
RunService "$1"
$ echo '{Description="Foo";Provides=("Foo");}' | sudo tee /Library/StartupItems/Foo/StartupParameters.plist && echo "Foo=-YES-" | sudo tee -a /etc/hostconfig
$ sudo chmod 755 /Library/StartupItems/Foo/Foo && sudo chmod 644 /Library/StartupItems/Foo/StartupParameters.plist
ちなみに、 StartupParameters.plist
には、以下の様な記述ができます。
OrderPreference = "Late";
これは、起動順序の設定で First|Early|None|Late|Last を指定出来ます。
私は、最初に紹介したシャットダウンのショートカットしか設定していませんが、起動時には音量を上げておきたい人はどうぞ。
Daemons and Services Programming Guide: Startup Items
Macの初期設定を便利にするツール
Homebrew
パッケージ管理ツールです。最初にインストールするものは、シェルスクリプトにして共有しておきましょう。
ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go)"
オプション:
Mac デ Homebrew ノススメ | Kitchen Garden Blog @hfm
MacPorts
パッケージ管理ツールです。最初にインストールするものは、シェルスクリプトにして共有しておきましょう。個人的には、Homebrew
よりもMacPortの方がお勧めです。
w3m http://www.macports.org/install.php
cd ~/Downloads
sudo installer -pkg MacPorts* -target /Volumes/Macintosh\ HD/
オプション:
MacPortsの基本的な使い方とコマンド : アシアルブログ
Boxen
Boxenは、GUIアプリもインストールできるインストール自動化ツールです。
以下の様な手順で使います。
1.XCode(& Command Line Tools)を入れる
$ open -a Safari "https://developer.apple.com/downloads/index.action"
$ cd ~/Downloads
$ hdiutil mount xcode* && killall Finder
$ sudo installer -pkg /Volumes/Command\ Line\ Tools\ \(Lion\)/Command\ Line\ Tools\ \(Lion\).mpkg -target /Volumes/Macintosh\ HD/
2.boxen用にディレクトリ掘る
$ sudo mkdir -p /opt/boxen sudo chown $USER:admin /opt/boxen
3.our-boxenのテンプレートを作成する
mkdir ~/src && cd ~/src && git clone git://github.com/boxen/our-boxen.git our-boxen
4.modules/people/manifestsディレクトリ内に .ppを置くことで、個人設定を実行できる
vim ~/src/our-boxen/modules/people/manifests/$USER.pp
5.~/src/our-boxen/script/boxen を実行する
# Core modules for a basic development environment. You can replace# some/most of these if you want, but it's not recommended.
github "repository", "2.0.2"
github "dnsmasq", "1.0.0"
github "gcc", "1.0.0"
github "git", "1.2.2"
github "homebrew", "1.1.2"
github "hub", "1.0.0"
github "inifile", "0.9.0", :repo => "cprice-puppet/puppetlabs-inifile"
github "nginx", "1.4.0"
github "nodejs", "2.2.0"
github "ruby", "4.1.0"
github "stdlib", "4.0.2", :repo => "puppetlabs/puppetlabs-stdlib"
github "sudo", "1.0.0"# Optional/custom modules. There are tons available at# https://github.com/boxen.
github "java", "1.1.0"# http://trapezoid.hatenablog.com/entry/2013/04/21/005524
github "chrome", "1.1.0"
github "rubymine", "1.0.1"
github "iterm2", "1.0.2"
github "firefox", "1.0.5"
github "skype", "1.0.2"
github "intellij", "1.1.3"
github "vlc", "1.0.1"
github "flux", "0.0.1"
github "osx", "1.0.0"
github "ctags", "1.0.0"
github "dropbox", "1.1.0"
github "virtualbox", "1.0.2"
github "sourcetree", "0.0.2"
github "sublime_text_2","1.1.0"
個人設定は、以下の様な感じで設定ファイルを作り、設定を書いていきます。
# cd /etc/puppetlabs/puppet/modules
# mkdir -p ntp/manifests
# touch ntp/manifests/init.pp
# http://docs.puppetlabs.com/learning/modules1.html#module-structure
class ntp {case$operatingsystem{
centos, redhat: {$service_name='ntpd'$conf_file='ntp.conf.el'}
debian, ubuntu: {$service_name='ntp'$conf_file='ntp.conf.debian'}}
package {'ntp':
ensure=> installed,
}
file {'ntp.conf':
path=> '/etc/ntp.conf',
ensure=> file,
require=> Package['ntp'],
source=> "/root/examples/answers/${conf_file}"}
service {'ntp':
name=> $service_name,
ensure=> running,
enable=> true,
subscribe=> File['ntp.conf'],
}}
GUIアプリのインストール手順は、以下のような感じで書きます。
# http://trapezoid.hatenablog.com/entry/2013/04/21/005524
package {'ForkLift':
source=> "http://download.binarynights.com/ForkLift2.5.4.zip",
provider=> compressed_app;
'Mou':
source=> "http://mouapp.com/download/Mou.zip",
provider=> compressed_app;
'GoogleJapaneseInput':
source=> "http://dl.google.com/japanese-ime/latest/GoogleJapaneseInput.dmg",
provider=> pkgdmg;
'RemoteDesktopConnectionClient':
source=> "http://download.microsoft.com/download/C/F/0/CF0AE39A-3307-4D39-9D50-58E699C91B2F/RDC_2.1.1_ALL.dmg",
provider=> pkgdmg;
}
なお、感覚的に使うなら、boxen-webが便利です。
Vundle
Vundleを自動インストールしたり、シェルからプラグインを簡単にインストールしたりするシェルスクリプトの紹介です。
#!/bin/bash# 使い方## vundleをインストールする場合:### $ vundle_install## 他のプラグインをインストールする場合:### $ vundle_install Shougo/vimshell.vimvimrc="$HOME/.vim/bundle/vundle/test/minirc.vim"fpion=`grep -n "filetype plugin indent on"${vimrc} | cut -c1`
ls ${vimrc}if["$?" -eq 0 ]thensed -i -e "${fpion}d"${vimrc}&&echo -e "Bundle '$1'\nfiletype plugin indent on">> ${vimrc}&& vim +BundleInstall +qall
elsegit clone https://github.com/gmarik/vundle.git ~/.vim/bundle/vundle &&echo"source ${vimrc}">> ~/.vimrc && vim +BundleInstall +qall
fiexit 0
以下のコマンドを使って権限を変更します。
chmod +x ~/dotfiles/vundle_install