強化go get命令

2022-07-21 02:21:14 字數 2144 閱讀 5753

源**

// conf.go

)// config 配置資訊

type config struct

// server 伺服器

type server struct

var (

// conf 全域性配置變數

conf = new(config)

// homepath 專案位置

homepath string

)func init()

}// readconf 讀取配置檔案

func readconf()

if conf == nil

for _,value := range conf.servers

}}

// main

package main

import (

"flag"

"fmt"

"io/ioutil"

"log"

"net"

"os"

// "os"

"os/exec"

"sync"

"time"

"golang.org/x/crypto/ssh"

)// 設計思路

// 多台伺服器同時go get 包,保證多台伺服器上有go,並且能夠fq

// shost session and host

type shost struct

// flaggit 命令

// sessions 對話組

var shosts = make(*shost, 0)

// wg 執行緒組

var wg sync.waitgroup

func init() }}

// connect 建立伺服器連線

func connect(server *server) (*shost, error)

// get auth method

auth := make(ssh.authmethod, 0)

clientconfig := &ssh.clientconfig,

} addr := fmt.sprintf("%s:%d", server.host, server.port)

client, err := ssh.dial("tcp", addr, clientconfig)

if err != nil

session, err := client.newsession()

if err != nil

return &shost, nil

}func main()

stderr, err := cmd.stderrpipe()

if err != nil

if err := cmd.start(); err != nil

outbytes, err := ioutil.readall(stdout)

if err != nil else

errbytes, err := ioutil.readall(stderr)

if err != nil else

// 後再伺服器上執行

for i := 0; i < len(shosts); i++

} if iserr

}}

;配置檔案寫入方法 利用配置檔案的分組規則寫

[servers "a"]

user = 使用者名稱

port = 開放埠號

host = ip

password = 密碼

goabpath = /usr/local/go/bin/go

go get命令被牆解決思路

go get命令被牆,很蛋疼,從網上找到了幾種方法,總結了下,可以概括為如下三種 1 買ss,開vpn 學生黨沒錢,也不常用,忽略 2 用git從github上clone 但每次都要自己建目錄,很煩,大批量clone時,更煩 3 使用gopm命令代替,但是安裝gopm的方法是go get u git...

關於go get命令的一些簡談

我剛開始接觸golang的時候,曾以為go get git clone,後來發現,是我想的太簡單了。按照官方的說法,go get借助 管理工具 例如 git,svn,hg等等 從遠端拉取 和依賴包,並且自動完成編譯和安裝。可以這麼理解,go get獲取 到本地的時候編譯器會通覽一遍 得出需要哪些依賴...

go get的beego安裝問題

go get的beego安裝問題 一開始go get沒反應和出現問題,我以為是牆的問題或者是環境變數的問題,所以錯誤的鼓搗了半天,後來才想的到應該在看看git是否正真的安裝上了。排除git 是否安裝不成功的問題 開啟cmd 輸入命令 git 如果正常出現,以下提示,表明你的git安裝沒有問題。但我這...