LoginSignup
54
53

More than 5 years have passed since last update.

Macの初期設定に便利なコマンドとツール

Last updated at Posted at 2013-06-15

はじめに

Macのセットアップは、結構めんどくさかったりします。例えば、Windowsでは、Chocolateyなどがありますので、それほど面倒ではありませんが、Macの場合は、パッケージ管理ツールを導入する際に、XcodeCommand Line Toolsが必要だったりするからだと思います。しかも、これらのツールをダウンロードするには、AppStoreからダウンロードして来なければなりません。そうでなくてもWeb認証が必要になったりします。

よって、今回は、Macの初期設定を出来る限り手間がかからないようにするためのコマンドやツールを紹介していきたいと思います。

なお、この記事で明示しているリンクは、問題解決のためのヒントになります。参考にしてください。

Macの初期設定を便利にするコマンド

Command Line Tools

HomebrewBoxenを使うには、 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)には、lngitを使うことが多いです。参考までに、具体例を載せておきます。

setup.sh
# 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の音量を大きくしたままだったので、それが原因らしいです。よって、シャットダウン時には、音量をゼロにすることにしました。

~/.zshrc
#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
/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

Mac OS X と UNIX の関係

起動時や終了時にコマンドを実行する方法

$ sudo mkdir /Library/StartupItems/Foo

$ sudo vim /Library/StartupItems/Foo/Foo
/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 を実行する

/path/to/your-boxen/Puppetfile
# 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
/etc/puppetlabs/puppet/modules/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アプリのインストール手順は、以下のような感じで書きます。

~/src/our-boxen/modules/people/manifests/$USER.pp
# 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用Puppet manifestsの作り方

なお、感覚的に使うなら、boxen-webが便利です。

大人数でBoxen使うならboxen-webが断然便利

Vundle

Vundleを自動インストールしたり、シェルからプラグインを簡単にインストールしたりするシェルスクリプトの紹介です。

~/dotfiles/vundle_install
#!/bin/bash
# 使い方
## vundleをインストールする場合:
### $ vundle_install
## 他のプラグインをインストールする場合:
### $ vundle_install Shougo/vimshell.vim

vimrc="$HOME/.vim/bundle/vundle/test/minirc.vim"
fpion=`grep -n "filetype plugin indent on" ${vimrc} | cut -c1`

ls ${vimrc}

if [ "$?" -eq 0 ]
then

    sed -i -e "${fpion}d" ${vimrc} && echo -e "Bundle '$1'\nfiletype plugin indent on" >> ${vimrc} && vim +BundleInstall +qall

else

    git clone https://github.com/gmarik/vundle.git ~/.vim/bundle/vundle && echo "source ${vimrc}" >> ~/.vimrc && vim +BundleInstall +qall

fi

exit 0

以下のコマンドを使って権限を変更します。

chmod +x ~/dotfiles/vundle_install
54
53
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
54
53