美文网首页
搭建自己终端开发环境(go,pyenv,nvm)

搭建自己终端开发环境(go,pyenv,nvm)

作者: 慢慢码 | 来源:发表于2021-04-14 19:52 被阅读0次

    目标

    搭建一个自定义的命令行开发环境(gopythonnode

    python使用pyenv部署,node使用nvm部署,以便实现多版本自由切换

    部署/准备

    我们以在家目录下配置为例子,其中 .env 为家目录下的隐藏目录(~/.env), 产出如下目录结构:

    ~/.env
      ├── bin
      ├── config
      ├── go
      ├── init
      ├── nvm
      ├── package
      ├── pyenv
    

    程序安装

    mkdir -p .env/bin
    
    # 安装 pyenv
    cd .env && git clone https://github.com/pyenv/pyenv.git
    cd -
    
    # 安装 nvm
    cd .env && git clone https://github.com/nvm-sh/nvm.git
    cd -
    
    # 安装 go
    # go的版本可以根据自己需要和使用操作系统选择不同的安装包
    cd .env && curl -o go.tar.gz https://dl.google.com/go/go1.13.15.linux-amd64.tar.gz && tar -zxf go.tar.gz && rm -f go.tar.gz
    

    环境配置

    编辑.env/init文件(例子中的路径~/.env/init),内容如下:

    ENVDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
    if [ "x$SHELL" != 'x/bin/bash' ]
    then
        ENVDIR="$( cd "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )"
    fi
    
    ENVCONFIG=${ENVDIR}/etc
    ENVPACKAGE=${ENVDIR}/package
    
    # bin 和 local/bin 加入 PATH, 可以放些小程序在里面
    ENVBIN=${ENVDIR}/bin
    if [ -d ${ENVDIR} ]
    then
        export PATH=${ENVBIN}:$PATH
    fi
    
    ENVLOCALBIN=${ENVDIR}/local/bin
    if [ -d ${ENVLOCALBIN} ]
    then
        export PATH=${ENVLOCALBIN}:$PATH
    fi
    
    # 配置golang环境变量
    ENVGO=${ENVDIR}/go
    if [ -d ${ENVGO} ]
    then
        export PATH=${ENVGO}/bin:$PATH
        export GOENV=${ENVCONFIG}/go/env
        if command -v go 1>/dev/null 2>&1; then
            export GOPATH=${ENVPACKAGE}/go
            export PATH=${GOPATH}/bin:$PATH
            eval "$(go env -w GO111MODULE=on)"
            eval "$(go env -w GOPROXY=goproxy.cn)"
            eval "$(go env -w GOSUMDB=off)"
            eval "$(go env -w GOPATH=${GOPATH})"
        fi
    fi
    
    ENVNVM=${ENVDIR}/nvm
    if [ -d ${ENVNVM} ]
    then
        export NVM_DIR="${ENVNVM}"
        [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm
        [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"  # This loads nvm bash_completion
    fi
    
    ENVPYENV=${ENVDIR}/pyenv
    if [ -d ${ENVPYENV} ]
    then
        export PYENV_ROOT=${ENVPYENV}
        export PATH="${PYENV_ROOT}/bin:$PATH"
        if command -v pyenv 1>/dev/null 2>&1; then
            eval "$(pyenv init -)"
        fi
    fi
    

    编辑.env.init文件(例子中的路径~/.env.init):

    BASEDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
    if [ "x$SHELL" != 'x/bin/bash' ]
    then
        BASEDIR="$( cd "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )"
    fi
    
    ENVINIT=${BASEDIR}/.env/init
    
    if [ -f ${ENVINIT} ]
    then
        source ${ENVINIT}
    fi
    

    使用

    环境使用初始化

    .bashrc 或者 .zshrc 或者其他配置文件中,增加引用
    .env在家目录为例,可以在 .bashrc 或者 .zshrc 中增加如下代码片段

    if [ -f ${HOME}/.env.init ]
    then
        source ${HOME}/.env.init
    fi
    

    环境使用及验证

    python

    参考pyenv官方文档: https://github.com/pyenv/pyenv/blob/master/COMMANDS.md

    node

    参考nvm官方文档配置node: https://github.com/nvm-sh/nvm#usage

    go

    可以直接执行 go version

    相关文章

      网友评论

          本文标题:搭建自己终端开发环境(go,pyenv,nvm)

          本文链接:https://www.haomeiwen.com/subject/lmyllltx.html