post Image
Golang開発環境構築 in MAC

(*うまくいかないので継続監視中)
OS: OSX Yosemite 10.10.4
Darwin Kernel Version 14.4.0

1. VSCodeの利用

https://code.visualstudio.com/
からOSX用をダウンロードしてApplicationフォルダにコピーして起動します。

2. GO拡張のインストール

GO拡張もこちらを見ながら入れます。
こちらも参考に。
(F1を押すとテキスト入力が画面上部に表示されるので、extensionと入力して、InstallExtentionを選択。
ext installと表示されるのでgoと入れるとGoExtentionが選択可能になる。)

3. settings.json

スクリーンショット 2016-02-21 21.46.04.png
進んでいるといつの間にか、.vscodeというディレクトリができていて、その中にlaunch.jsonとtasks.jsonが作成されています。
新規にsettings.jsonを作成して下記コードをコピペして保存します。
*1”go.goroot”はwhereした結果で書き換えます。
*2”go.gopath”はecho #GOPATHした結果で書き換えます。
*3エディタを再起動しましょう。

{
    "go.buildOnSave": true,
    "go.lintOnSave": true,
    "go.vetOnSave": true,
    "go.buildFlags": [],
    "go.lintFlags": [],
    "go.vetFlags": [],
    "go.useCodeSnippetsOnFunctionSuggest": false,
    "go.formatOnSave": false,
    "go.formatTool": "goreturns",
    "go.goroot": "/usr/local/go",
    "go.gopath": "/Users/murotanimari/work"
}

F1を押すと下記のように使えるコマンドが増えています。
スクリーンショット 2016-02-21 21.53.01.png

4. delveのインストール

OSX用には自己証明の作成が必要みたいです。
delve

4.1 証明書作成

1.キーチェーンアクセスを開く
2.キーチェーンアクセス>証明書アシスタント>証明書作成
名前:dlv-cert
固有名のタイプ:自己署名ルート
証明書のタイプ:コード署名
デフォルト無効化をチェック
3.続ける
4.有効期間を任意に変更
5.続けてください。
6.証明書の場所を指定
キーチェーン: システム
(もしエラーになる場合にはloginキーチェーンに格納してexportしてください。その後Systemキーチェーンに格納できます。)
スクリーンショット 2016-02-21 22.07.37.png
7.公開/秘密鍵アクセス制御変更
(Yosemite以降は)右クリック>情報を見る>アクセス制御
この項目を仕様を全てのアプリケーションに許可へ変更保存
8.再起動
1.キーチェーンアクセスを閉じる
2.taskgatedをkillするかOS再起動

4.2. delveのmake

*1 taskgatedをkillします

*2 makeの引数として先ほど作成した証明書を指定します。

cd ~/work/src/github.com/derekparker
git clone https://github.com/derekparker/delve.git
cd delve
sudo su
GO15VENDOREXPERIMENT=1 CERT=dlv-cert make install

4.3. デバッガ動作確認

delvコマンドがちゃんと動くか確認します。
パスなどの設定が間違っていて動かない場合には適宜修正します。

cd $GOPATH
cd src/github.com/derekparker/delve/cmd/dlv
$GOPATH/bin/dlv debug main.go

スクリーンショット 2016-02-27 14.08.27.png

Rootでないと動かない場合に下記のようなエラーが出ます。

[murotanimari]$ $GOPATH/bin/dlv debug main.go
could not launch process: could not fork/exec

5. launch.jsonの設定

一旦VSCを再起動してlaunch.jsonを作成します。

launch.json
{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Launch",
            "type": "go",
            "request": "launch",
            "mode": "debug",
            "program": "${workspaceRoot}",
            "env": {},
            "args": []
        }
    ]
}

6. デバックExtensionのビルドと追加

~/.vscode/extensionsに移動し何もないことを確認します。

rm -rf ~/.vscode/extensions/lukehoban.Go
cd ~
git clone https://github.com/Microsoft/vscode-go
cd vscode-go
npm install

他のツールもインストールします。

go get -u -v github.com/nsf/gocode
go get -u -v github.com/rogpeppe/godef
go get -u -v github.com/golang/lint/golint
go get -u -v github.com/lukehoban/go-find-references
go get -u -v github.com/lukehoban/go-outline
go get -u -v sourcegraph.com/sqs/goreturns
go get -u -v golang.org/x/tools/cmd/gorename
go get -u -v github.com/tpng/gopkgs
go get -u -v github.com/newhook/go-symbols

7. VSCで起動

root以外のユーザーで起動するのでエラーが出てしまいます・・・・。
sudoでVSCを起動しても起動時には関係ないみたいです・・・。

VSCODE_CWD="$PWD" sudo open -n -b "com.microsoft.VSCode" --args $* ;

スクリーンショット 2016-02-27 16.38.53.png


『 Go 』Article List
Category List

Eye Catch Image
Read More

Androidに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

AWSに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Bitcoinに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

CentOSに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

dockerに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

GitHubに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Goに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Javaに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

JavaScriptに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Laravelに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Pythonに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Rubyに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Scalaに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Swiftに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Unityに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Vue.jsに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Wordpressに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

機械学習に関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。