Mac
環境構築
brew
chocolatey
新人プログラマ応援

ITエンジニアとしてのPC初期環境構築[MacOS編]

More than 1 year has passed since last update.

はじめに

Macを購入したので、エンジニアとしてやっておくべきであろう各種作業を行った。

備忘を兼ねて、社会人1年生の自分に伝えるつもりで書き残しておく。内容としては、下記のトピックについて。

  • IDE
  • パッケージマネージャ
  • エディタ
  • Gitホスティングサービス連携

IDEのインストール

IDE(統合開発環境)は数あれど、とりあえず公式のものを入れておいて損はない。MacOSの場合、XCode。Swiftやobjective-Cで開発するなら、アドバンテージがあるはず。

XCode

特に難しいことはなく、公式のページからダウンロード、実行するだけでOK。

CommandLineTools

ちょっと調べると、Xcodeに付随してCommandLineToolsを入れておけ、という記事をよく見かける。

何それ

Xcode Command Line Tools

Installation of many common Unix-based tools requires the GCC compiler. The Xcode Command Line Tools include a GCC compiler.

Unixベースのツールをインストールする際、CommandLineToolsに含まれるGCCコンパイラなどが必須となる。なるほど、開発者としてマシンを使いこなすためには、あった方が良さそう。

ちなみに逆に言えば、MacはもともとUnixベースで開発されたOSだからこうしたツールだけで済む、とも言える。WindowsでUnixライクな環境を立ち上げたい場合は、互換レイヤとしてCygwinを噛ませて…みたいな話になるのでつらそう(やったことはないです)。

導入の仕方

結論から言うと、XCodeのインストール完了時点で入っている(一定のバージョン以上の場合)。
せっかくなのでターミナルでインストールされているかの確認を。

$ xcode-select -p

以下(つまり、ツールのインストールされたディレクトリ)が表示されればインストールは済んでいる。

/Library/Developer/CommandLineTools

パスが帰ってこない場合、ツールがインストールされていない。その時は以下のコマンドでインストールすればOK。

$ xcode-select --install

パッケージマネージャ

新しいツール試したい!とか、新しい言語の開発環境を準備したい!となった時、パッケージマネージャを使ってコマンド1つで導入できた方が何かと楽。MacOSでそれを実現するためのツールがHomebrew。

Homebrew

概要や簡単な歴史は以下の記事から。
パッケージ管理システム Homebrew

導入は非常に簡単で、ターミナルでコマンドを実行するだけ。(公式サイトにある最新のものをコピペした方が安全かとは思います)

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

インストールが成功したかどうかは以下のコマンドで確認。

$ brew doctor

で、このメッセージが出ればOK。

Your system is ready to brew.

Homebrew-caskは必要だろうか?

Homebrewは、基本的にgitやnode.jsなど、コマンドラインベースのツールや新しいプログラミング言語をインストールする時に役立つもの。一方、Homebrew-caskという拡張を使うと、Chromeや後述するAtomなど、GUIアプリケーションまでコマンドでインストールできるようになる。強力。

ただし、デメリットもある。自分はこの辺の記事を読んだ結果、とりあえず入れないことにした。自動化厨だから気が変わるかもしれないけど。
自動化厨の自分がhomebrew-caskを使わなくなった理由

導入する場合は、以下コマンドで。早速Homebrewが威力を発揮する。

$ brew install caskroom/cask/brew-cask

エディタ

さっとjavascriptのコードを書いてnode.jsで実行したい、とかいう時にIDEはオーバースペックな時もあるので、軽量なエディタを持っているとプログラマとして良い。

選択肢について

別に宗教戦争を起こしたいわけではないが、大体以下のエディタが使っている方もそれなりに多く、有望と思う。

  • Sublime Text
  • Atom
  • Vim
  • Emacs
  • Visual Studio Code

自分は今回Atomを選ぶことにした。

AtomはGithub社謹製で信頼感が高いのと、比較的新しいエディタで拡張機能の開発が盛ん、という利点があると思う。VS CodeはWindows向けの印象が拭えない、VimとEmacsはカーソル移動やモードの概念に慣れるのが大変、Sublimeは本来的に有償ソフト、というのも理由…。

Atom

特徴は前述の通り。バージョン1.0のリリースが2015年なので、若いエディタ。GUIベースのツールなので、普通に公式サイトから落とすことになる。

ダウンロード・解凍したら、一応アプリケーションディレクトリにドラッグして移動。

なお、Homebrew-caskがある場合

$ brew cask install atom

以上。この手軽さを見てやっぱり入れようか迷ってしまった。

Gitホスティングサービス連携

今どきの開発者であればGitホスティングサービスとの連携は頻繁に行うと思う。Github、Bitbucketなど諸々のサービスがあるが、とりあえずGithubを対象に、アカウントは既に持っていることを前提に話を進める。

先ずは、Git

MacOSであれば最初からGitが入っているらしい。ただ、バージョンが古い場合もあるので確認しておいた方が良い。

$ git --version

古ければ、Homebrewで再インストールしてしまえば良い。

$ brew install git

インストール終了後、一応ターミナルを再起動してバージョンを確認。ついでに、Homebrewの管理下にGitが入ったことも確認できる。

$ git --version
git version 2.13.2

$ brew list
git

ここで上手くバージョンが上がっていない場合、パスの問題があり得る。自分は幸運にも無事だったが、この場合のトラブルシューティングはこちらの記事が参考になる。
HomebrewでGitをインストールする

鍵の生成と登録

基本的に以下の記事の方が詳細で良い。ここでは最小限の手順だけ紹介する。
gitHubでssh接続する手順~公開鍵・秘密鍵の生成から~

鍵を入れるディレクトリへ移動

$ mkdir ~/.ssh
$ cd ~/.ssh

鍵を生成

コマンド入力以降はEnter連打(=パスフレーズなし)で特段の問題はない。
これで鍵長2048、暗号方式RSAの公開鍵/秘密鍵ペアが生成される。

$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/(username)/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:

より厳格なセキュリティ担保について考えたい方には、こちらの一読をお勧めする。
お前らのSSH Keysの作り方は間違っている

Githubへの公開鍵登録

公開鍵をクリップボードにコピー。

$ pbcopy < ~/.ssh/id_rsa.pub

で、ホスティングサービス側に公開鍵を登録する。Githubの場合はここ。
https://github.com/settings/ssh

鍵のタイトルはマシン名に紐づくものにすれば良いだろう。自分の場合は"Private Mac"などにしている。

接続確認

$ ssh -T git@github.com
Hi (githubのaccount名)! You've successfully authenticated, but GitHub does not provide shell access.

上記のメッセージが帰って来れば接続成功。Githubへのssh接続が出来るようになった。

補足:Windowsでパッケージ管理

これで自分がやった初期環境構築作業としては以上。

このうちパッケージマネージャに関しては、実はWindowsにも該当するツールがあって、愛用していた。
Chocolatey

cinstコマンドでツールの導入が爆速で出来るようになる。Qiita上でもいくつか記事はあるが、Chocolateyの記事はHomebrewに比較してまだまだ少ないのでWindowsから離れた今でも普及してほしいと思っている。

終わりに

自分自身いろいろな環境構築系の記事にお世話になったが、

「特定の言語環境とか入れる前に、これやっておいた方がいいよね」

という内容をまとめたものってなかなかなかった。

自分が新人プログラマだったらそういうのあると助かるかもなあ、と思い、筆を取らせて頂いた。当記事が少しでもどなたかの助けとなれば幸いです。