Po dłuższej zabawie z go
narzędziem wygląda to tak go get
:
- (opcjonalnie) pliki do pobrania,
- kompiluje,
- i instaluje
kawałek oprogramowania, a jednocześnie go install
po prostu
- kompiluje
- i instaluje
to. W takim przypadku, dlaczego go install
polecenie istnieje, skoro go get
je zastępuje?
go get ./path/to/local_package
i zachowywałby się tak samo, jak gdybym używałgo install ./path/to/local_package
, prawda? Ponieważ w tym przypadku nie ma procesu pobierania.go install
sprawia, że twój cel jest bardziej wyraźny, ale przypuszczam, że oba osiągną to samo. Testowałem z kilkoma pakietami, w tym zadeklarowanymi jakomain
i wydawały się równoważne. W dokumentach bardzo brakuje tego polecenia.go get
ale niego install
. Jak to się ma do tego opisu?go get
zamiastgo install
w trzecim punkcie, ponieważgo get
nie spowoduje to ponownego pobrania biblioteki (chyba że dodasz-u
). Możesz również użyćgo get
podczas pisania biblioteki od zera.go install
wydaje się całkowicie zbędny.go get
wykonuje dwie główne czynności w tej kolejności:pobiera i zapisuje w
$GOPATH/src/<import-path>
pakietach (kod źródłowy) nazwanych w ścieżkach importu, wraz z ich zależnościami, a następniewykonuje
go install
-d
Flag (go get -d
) nakazujego get
, aby zatrzymać po pobraniu pakietów; to znaczy nakazuje,go get
aby tego nie robićgo install
różnica:
go get
// sprawdź, czy pakiety muszą zostać pobrane, w razie potrzeby pobierz, a następnie skompilujgo install
// pomiń część z pobieraniem pakietów, po prostu skompiluj (spowoduje to błąd, jeśli brakuje jakichkolwiek pakietów)o
GOPATH
zmiennej środowiskowejGOPATH
Zmienna jest używana przez narzędzia Go. To musi być ustawiony, aby mócget
,build
iinstall
opakowań, a to określa położenie obszaru roboczego. Jest to prawdopodobnie jedyna zmienna środowiskowa, którą musisz ustawić podczas tworzenia kodu Go.Ponownie,
GOPATH
nie powinno wskazywać na instalację Go, ale raczej na twój obszar roboczy.Na przykład w systemie Windows, jeśli zdecydujesz, że twój obszar roboczy jest
c:\gowork\
ustawiony na , będziesz musiał ustawićGOPATH
wartość jakoc:\gowork
Twój kod źródłowy powinien znajdować się w,
c:\gowork\src\<some project folder>\
a po uruchomieniugo get
w wierszu polecenia z wewnątrzc:\gowork\src\<some project folder>\
zobaczyszc:\gowork\bin\
ic:\gowork\pkg\
zostanie utworzony.źródło
go install
pobiera pakiet w konfiguracji uwzględniającej moduły.Zwróć uwagę, że wersja 1.16 (Q1 2021) sprawi, że różnica będzie wyraźniejsza, zaimplementowana w CL 266360 jako część wydania 40276 :
źródło
go install
. I robi to, instalując pakiety w określonych wersjach, niezależnie od bieżącego kontekstu modułu. To poprawka w porównaniu do staregogo get
.