Получить список всех установленных пакетов в Go

Как я могу перечислить все установленные пакеты через goinstall? Мне нужно это, чтобы переустановить все пакеты, установленные на одном компьютере, на другой компьютер.


person D R    schedule 05.07.2011    source источник
comment
Примечание goinstall было только до Go 1.0 и не существовало уже много лет; многие из этих ответов больше не применимы.   -  person Dave C    schedule 22.05.2015
comment
Да, возможно, вы захотите снова принять другой ответ в наши дни...   -  person rustyx    schedule 16.07.2021


Ответы (3)


В разделе $GOROOT/goinstall.log есть список. Если вы хотите установить все пакеты на другой компьютер, просто скопируйте файл и запустите,

goinstall -a

и goinstall прочитает этот файл и установит все перечисленные в нем пакеты.

person Jessta    schedule 06.07.2011
comment
Проголосуйте как за хороший ответ, так и за замечательную функцию, о которой я не знал - person Seth Hoenig; 06.07.2011
comment
функция кажется натянутой - person Matt Joiner; 20.04.2016

Большинство ответов здесь относятся к версиям, предшествующим Go 1.0, которым уже несколько лет, и ответы больше не применимы к работающим установкам Go.

Простой ответ: go list ... (как и в случае с другими подкомандами go, три буквальные точки соответствуют всем пакетам). В нем будут перечислены все пакеты в системе. См. go list -h для других применений этой универсальной команды.

У Дэйва Чейни также есть соответствующая статья в блоге: список, ваш швейцарский армейский нож.

person Dave C    schedule 22.05.2015
comment
Мне пришлось процитировать три точки go list '...', чтобы это сработало. - person Ilia Choly; 08.09.2015
comment
Не уверен, что так было всегда или это было добавлено позже, но go list all также работает вместо .... См. go help packages, как указать имена пакетов, такие как all, ..., std и т. д. - person Dave C; 14.09.2016
comment
Как узнать, какие все внешние пакеты я установил вручную? @DaveC - person Soumendra; 10.05.2020

Я не уверен, что это можно сделать через goinstall, но в $GOROOT/goinstall.log должен быть список.

person Evan Shaw    schedule 06.07.2011