Golangのインストール
What's anyenv
anyenvはPythonならpyenv、Rubyならrbenvのような**env系をひとまとめにするラッパープログラム。
現在以下の言語に対応している
- Renv: R
- crenv: Crystal
- denv: D
- erlenv: Erlang
- exenv: Elixir
- goenv: GO
- hsenv: Haskell
- jenv: Java
- luaenv: Lua
- nodenv: Node.js
- phpenv: PHP
- plenv: Perl
- pyenv: Python
- rbenv: Ruby
- sbtenv: Sbt
- scalaenv: Scala
- swiftenv: Swift
**env ...?
**env系とはRubyのrbenvが発祥の言語を複数のバージョン使い分ける為のツール。 派生として各言語の**envができた。
グローバルの環境を汚さないので開発環境に適している。
Install anyenv
Homebrew (Mac)
- anyenvをインストールする
- anyenvの設定をする
- 初期設定
- 起動時に読み込むようにする
- 端末を再起動する
- プラグインをインストールする
$ brew install anyenv
$ anyenv init
$ anyenv install --init
# bashの場合 $ echo 'eval "$(anyenv init -)"' >> ~/.bashrc # zshの場合 $ echo 'eval "$(anyenv init -)"' >> ~/.zshrc
$ mkdir -p $(anyenv root)/plugins $ git clone https://github.com/znz/anyenv-update.git $(anyenv root)/plugins/anyenv-update $ git clone https://github.com/znz/anyenv-git.git $(anyenv root)/plugins/anyenv-git
Manual git checkout (Linux)
- ~/.anyenvにクローンする
- ~/.anyenv/binを$PATHに追加し、起動時に読み込むようにする
- anyenvの設定をする
- 初期設定
- 端末を再起動する
- プラグインをインストールする
$ git clone https://github.com/anyenv/anyenv ~/.anyenv
# bashの場合 $ echo 'export PATH="$HOME/.anyenv/bin:$PATH"' >> ~/.bashrc $ echo 'eval "$(anyenv init -)"' >> ~/.bashrc # zshの場合 $ echo 'export PATH="$HOME/.anyenv/bin:$PATH"' >> ~/.zshrc $ echo 'eval "$(anyenv init -)"' >> ~/.zshrc
$ ~/.anyenv/bin/anyenv init
$ ~/.anyenv/bin/anyenv install --init
$ mkdir -p $(anyenv root)/plugins $ git clone https://github.com/znz/anyenv-update.git $(anyenv root)/plugins/anyenv-update $ git clone https://github.com/znz/anyenv-git.git $(anyenv root)/plugins/anyenv-git
Install goenv and golang
- goenvをインストールする
- GOPATHを指定
- 端末を再起動する
- Golangをインストールする
- デフォルトに設定する
- 端末を再起動する
$ anyenv install goenv
# bashの場合 $ echo 'export GOENV_DISABLE_GOPATH=1' >> ~/.bashrc $ echo 'export GO111MODULE=on' >> ~/.bashrc $ echo 'export GOPATH=$HOME/Project' >> ~/.bashrc $ echo 'export PATH=$PATH:$GOPATH/bin' >> .bashrc # zshの場合 $ echo 'export GOENV_DISABLE_GOPATH=1' >> ~/.zshrc $ echo 'export GO111MODULE=on' >> ~/.zshrc $ echo 'export GOPATH=$HOME/Project' >> ~/.zshrc $ echo 'export PATH=$PATH:$GOPATH/bin' >> ~/.zshrc
$ goenv install 1.15.3
$ goenv global 1.15.3
Golangのツールをインストールする
- ghq (GOPATH管理の為のツール)をインストール
- Homebrew (Mac)
- Linux
- ghqの設定
- peco (リポジトリ間の移動を楽にするツール)をインストール
- Homebrew (Mac)
- Linux pecoのリリースページに行って最新版をダウンロードしてパスの通ってるところに配置する
- pecoの設定 ctrl + ]で使えるようにする
- zshの場合 ~/.zshrcに以下を追記
- bashの場合 ~/.bashrcに以下を追記
- 端末を再起動
$ brew install ghq
$ go get github.com/x-motemen/ghq
$ git config --global ghq.root $GOPATH/src
$ brew install peco
$ wget -O /tmp/peco.tar.gz https://github.com/peco/peco/releases/download/v0.5.8/peco_linux_amd64.tar.gz $ tar xzvf /tmp/peco.tar.gz -C /tmp $ sudo mv /tmp/peco_linux_amd64/peco /usr/local/bin/peco
# Setting for peco function peco-src () { local selected_dir=$(ghq list -p | peco --query "$LBUFFER") if [ -n "$selected_dir" ]; then BUFFER="cd ${selected_dir}" zle accept-line fi zle clear-screen } zle -N peco-src bindkey '^]' peco-src
# Setting for peco function peco-src() { local selected_file=$(ghq list --full-path | peco --query "$LBUFFER") if [ -n "$selected_file" ]; then if [ -t 1 ]; then echo ${selected_file} cd ${selected_file} pwd fi fi } bind -x '"\201": peco-src' bind '"\C-]":"\201\C-m"'
Clone repository
git clone
の代わりにghq get
を使うと規定のディレクトリに勝手にクローンしてくれる
$ git clone git@gitlab.inoue-lab:inoue-lab/icn-hash.git
なら
$ ghq get git@gitlab.inoue-lab:inoue-lab/icn-hash.git
とすると
$GOPATH/gitlab.inoue-lab/inoue-lab/icn-hash
にクローンされる
リポジトリに移動するときは ctrl + ]
を押すと検索画面がでるのでそこで選択すると移動できる。