MacにGoプロジェクトの開発環境を準備する
どうもお久しぶりです。 全然ブログを書かないまま3年位経ちました。経ちすぎですね。。。
今回APIサーバーをGoで開発したいと思ったので開発環境を準備したのでメモをとっておきます。
- Mac(Hi Sierra)にGoをインストールする。 Rubyをインストールするときもrbenv等でバージョン管理等を行っていたので同じようなのないか探していたところ macにgoをインストールする手順メモ - とりあえずphpとかやっぱりありました。 なので今回はGVMを使ってGoをインストールして行きます。
1. MacにGVMをインストール
元々Homebrewは使っていたのでhomebrew等のインストール方法は省略します。
$ brew update $ brew install mercurial
gvmのインストール
$ bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)
インストールがおわると下記を実行しろって表示されるので実行
$ source /Users/${user}/.gvm/source/scripts/gvm
インストールを確認
$ gvm version Go Version Manager v1.0.22 installed at /Users/user/.gvm
2. GVMを使ってGoをインストール
# インストールできるGoのバージョンを確認 $ gvm listall gvm gos (available) go1 go1.0.1 go1.0.2 go1.0.3 go1.1 go1.1.1 go1.1.2 go1.10 . . . go1.9.7 go1.9beta1 go1.9beta2 go1.9rc1 go1.9rc2 release.r56 release.r57 # Goをインストール $ gvm install go1.9.7
Goの1.9.7をインストールをしようとした時にエラーがでる
#### Building Go bootstrap tool. cmd/dist ERROR: Cannot find /Users/user/go1.4/bin/go Set $GOROOT_BOOTSTRAP to a working Go tree >= 1.4 ./make.bash: line 121: /Users/user/go1.4/bin/go: No such file on directory
なんで1.4なのか MacOS Sierraでgvmを使ってGo 1.8をセットアップ なんか1.5+をBuildするために1.4を使っているらしいんじゃ最初に1.4をいれとけばいいのかと思って
# Go1.4をインストール $ gvm install go1.4
また別ので怒られた
# Building C bootstrap tool. cmd/dist # Building compilers and Go bootstrap tool for host, darwin/amd64. lib9 libbio liblink cmd/cc cmd/gc cmd/6l /Users/user/.gvm/gos/go1.4/src/cmd/6l/../ld/dwarf.c:1472:15: error: implicit conversion from 'int' to 'char' changes value from 156 to -100 [-Werror,-Wconstant-conversion] /Users/user/.gvm/gos/go1.4/src/cmd/6l/../ld/dwarf.c:1756:21: error: implicit conversion from 'int' to 'char' changes value from 144 to -112 [-Werror,-Wconstant-conversion] /Users/user/.gvm/gos/go1.4/src/cmd/6l/../ld/lib.h:168:13: note: expanded from macro 'cput' go tool dist: FAILED: clang -Wall -Wstrict-prototypes -Wextra -Wunused -Wno-sign-compare -Wno-missing-braces -Wno-parentheses -Wno-unknown-pragmas -Wno-switch -Wno-comment -Wno-missing-field-initializers -Werror -fno-common -ggdb -pipe -Wuninitialized -O2 -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -mmacosx-version-min=10.6 -c -m64 -I /Users/user/.gvm/gos/go1.4/include -I /Users/user/.gvm/gos/go1.4/src/cmd/6l -o /Users/user/.gvm/gos/go1.4/pkg/obj/cmd/6l/dwarf.o /Users/user/.gvm/gos/go1.4/src/cmd/6l/../ld/dwarf.c
もうよくわからない..... 色々調べてたらなんか同じようなので記事を見つけてGo1.4のバイナリーを持ってきて指定してやればインストールできそう。 なので下記を実行(記事の方はDockerからGoのバイナリーを持ってきてましたが-Bをつけてgvm管理下にバイナリーをおけるので僕はそっちを選択)
gvm install go1.8 -B # zshrcにGOROOT_BOOTSTRAPにgvmで持ってきたバイナリーファイルの設置場所を指定する export GOROOT_BOOTSTRAP=$GVM_ROOT/gos/go1.8
指定したら1.9.7をインストール
gvm install go1.9.7 Installing go1.9.7... * Compiling... go1.9.7 successfully installed!
入った!
良かったこれで開発ができるIDEとかGoglandを使ってみようかとおもいます。 プロジェクト毎にGOPATHを設定できるらしいのでちょっと無料期間で試してみてよかったら使ってみます。 それではまた!
CentOS6にredisインストールをしてみる
新年あけましておめでとうございます。
はじめましてshunlabと言います。
この度初ブログを開設してみました。
(開設してからなにもしないまま年明けちゃいましたが・・
最初の記事に何を書こうかと内容を考えていたけど、
考えているよりもまずは何か書かなきゃ始まらないなと思って現在キーボードを叩いてます。
挨拶はここまでにして、とりあえずタイトルの内容に移りたいと思います。
今仕事でfluentを使ったログ収集システムの構築を行っており、
ログのストレージにredisを使用する機会があるかもしれないので空いた時間でredisを調べ それについてまとめておきたいと思います。
redisダウンロード
$ wget http://download.redis.io/releases/redis-2.8.19.tar.gz $ tar xzf redis-2.8.19.tar.gz $ cd redis-2.8.19
redisインストール
$ make test
"make test"を実行した時にエラーがでた
You need 'tclsh8.5' in order to run the Redis test
自分の環境には"tclsh"のパッケージが無いみたいなのでインストールする。
yum install tcl
そして再度
$ make test $ make $ make install
redis.confと起動スクリプトのコピー
redisのソースの中に準備されているconfがあるのでそれをコピー
$ mkdir /etc/redis/ $ cp redis-2.8.19/redis.conf /etc/redis.conf $ cp -pi redis-2.8.19/utils/redis_init_script /etc/init.d/
redis.confの編集
daemonize no ↓ daemonize yes #bind 127.0.0.1 bind 127.0.0.1 logfile "" ↓ logfile /var/log/redis.log dir ./ ↓ dir /var/redis/dump/
redis-server起動
service redis start
プロセス確認
$ ps uaxwwf | grep redis root 5949 0.0 0.0 103244 828 pts/1 S+ 01:36 0:00 \_ grep redis root 5751 0.2 0.3 137372 7528 ? Ssl Jan04 0:18 /usr/local/bin/redis-server 127.0.0.1:6379
redis-cliを使用してredis-serverに接続
$ redis-cli 127.0.0.1:6379>
redisをちょっと使ってみる
127.0.0.1:6379>set name shunlab OK 127.0.0.1:6379>get name "shunlab"
以上です。 これからデータを入れたり削除したりして検証していきたいと思います!
それではまた!