明日になったら本気出せる

底辺Web系エンジニアの日記

Chocolateyで整えるWindowsの開発環境 - gitの導入と設定[開発環境]

先日のエントリーで書いたとおりノートPCを買った。

中古ノートPCを衝動買いしてしまった-Thinkpad X201[日常]
http://gyouza-daisuki.hatenablog.com/entry/2013/12/09/165716

そんなわけでこのノートPCに開発環境を構築しようと思うんだけど、せっかくなので前々から試したいと思っていたChocolateyを用いて環境を構築する。今回はgitを導入。

  • Chocolateryのインストール
  • gitの導入
  • Bitbucketを使う

Chocolateryのインストール

Chocolateyとは?
簡単に言うと、Linuxのapt-getとかyum等といったパッケージマネージャーのWindows版といった立ち位置。是非一度公式サイトを見てほしい。対応しているパッケージの数に驚くはずだ。
http://chocolatey.org/ (Chocolatey公式)
パッケージ管理に対応しているソフトは公式サイトのPackagesタブから探すことができる。

というわけで早速インストールする。インストール方法はなんと公式サイトのトップにでかでかと乗っているコマンドをコマンドプロンプト上にコピペするだけで完了。

@powershell -NoProfile -ExecutionPolicy unrestricted -Command "iex ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1'))" && SET PATH=%PATH%;%systemdrive%\chocolatey\bin

しばらく待つと自動的にインストールが完了する。以下のコマンドでインストールが済んでいるか確認。

chocolatey.bat /?

以下のような感じでヘルプが表示されればインストールは成功している。

=====================================================
Chocolatey - Your local machine NuGet repository AKA your local tools repository AKA a kind of apt-get for Windows

'I'm a tools enabler, a global silent installer. I met your mother. Some want to call me apt-get for Windows, I just wan
t to get #chocolatey!'

Version: '0.9.8.23'
Install Directory: 'C:\Chocolatey'
=====================================================

~中略~

example: cinst ruby -version 1.8.7
example: cinst packages.config
=====================================================

今後パッケージ管理はコマンドライン上で行うが、それが苦手な人はChocolateyGUIというそのままのネーミングの管理ツールがあるのでそれを使ってもいい。以下のコマンドでインストールできる。

cinst ChocolateyGUI

gitの導入

インストール

インストールも非常に簡単。以下のコマンドを実行するだけ。

cinst git

ちなみにcinstはchocolatey installというコマンドのエイリアスになっている。

パスを通す

環境変数をいじるにはRapidEnvironmentEditerというフリーソフトが非常に便利。

窓の杜 - Rapid Environment Editer
http://www.forest.impress.co.jp/library/software/rapidee/

ユーザー変数のPathにC:\Program Files (x86)\Git\cmdを追加してやる。(追記する場所は要確認。既に追記されている場合は不要)
環境変数をいじるのは自己責任で!復元ポイントとか設定しておいたほうがよいかも。

PowerShellからgitを使いたい

PowerShellからgitを使いたい場合posh-gitのインストールが必要になってくる。こいつもchocolateyでインストールしてやる。

cinst poshgit

gitの初期設定

ほぼ写経なので詳しいことは省略。

# ユーザーの設定
git config --global user.email hoge.piyo@example.jp
git config --global user.name "hoge piyo"

# 改行コードの自動変換無効化
git config --global core.autocrlf false

# 文字化け対策
git config --global core.quotepath false

# エディタをサクラエディタにする(パスは適時変える。-CODE=4はUTF-8で開く)
git config --global core.editor "C:\...sakura.exe -CODE=4"

# プッシュ時の設定
git config --global push.default upstream

Bitbucketを使う

GITのホスティングサービスは色々あるけど今回はBitbucketを使用する。理由は以下のとおり。

  • 無料でプライベートリポジトリが作成できる。
  • プライベートリポジトリの数に制限がない。
  • GitHubと同じ感覚で使える。

Bitbucket
https://bitbucket.org/

リポジトリ作成

会員登録をさくっと終わらせたら早速リポジトリを作成する。
ログイン後右上からCreate repositoryを選択。
f:id:gyouza_daisuki:20131223155417j:plain

適当にリポジトリを作成する。
f:id:gyouza_daisuki:20131223155436j:plain

これでリポジトリは作成完了。非常に簡単。

早速クローンしてみる。以下のコマンドを実行する。

git clone https://example@bitbucket.org/example/test.git

パスワードを求められるので入力。ローカルにtestフォルダができれば正しくcloneできている。

SSHでCloneする

GITの設定

gitのデフォルトのSSHはOpenSSHだけど、どうもOpenSSHでは色々問題があるらしい。というわけでPuttySSHエージェントを使うことにする。

cinst putty

C:\Chocolatey\lib\以下にインストールされ、既にパスが通ってるはずのChocolatey\bin以下にも呼び出し用のリンクが作られる。

plink

とコマンドを実行した時に以下のようになればOK。

PuTTY Link: command-line connection utility
Unidentified build, Aug 7 2013 07:39:00

~中略~

Specify the serial configuration (serial only)

後は環境変数GIT_SSH=plink.batを追加してやれば今後GITはSSHエージェントをplinkにしてくれる。先ほどのRapidEnviromentEditorを使うと楽。

ちなみに僕は日本語化+その他もろもろを求めて以下のputtyで上書きした。

ICE IV + putty
http://ice.hotmint.com/putty/

鍵の作成

次に鍵を作成する。以下のコマンドを実行するとGUIが開く

puttygen

f:id:gyouza_daisuki:20131223155510j:plain

生成ボタンを押して鍵を生成する。マウスをグリグリしよう。
鍵が生成できると以下のようになる。秘密鍵を保存する。
f:id:gyouza_daisuki:20131223155527j:plain

OpenSSH形式が上のダイヤログボックスに生成されているのでコピーする。
Bitbuketの管理画面からSSHキーを選び、鍵の追加を行う。
f:id:gyouza_daisuki:20131223155538j:plain

SSH形式でCloneする。

puttyplinkが置いてあるフォルダと同じ場所にpagentという実行ファイルがある。
こいつがかなり便利で、予め鍵を読ませておくと自動的に鍵をロードしてくれる。
というわけでこいつに鍵を食わせる。
f:id:gyouza_daisuki:20131223155548j:plain

以下のコマンドでcloneできれば完了。先程HTTPSでcloneしていたファイルがあると失敗するので注意。

git clone git@bitbucket.org:example/test.git


これでとりあえずgitの開発環境は整った。ここまで書いておいてなんだけどこういった情報ってありふれてるよね。まぁ自分の備忘録といった感じで書いたんだけど。次回はCygwinにするかVargrantにするか・・・