sio456wer
Интересный вопрос. Документация говорит, что нужно установить (скомпилировать) утилиту для отключения телеметрии такой командой:
Код:
go install golang.org/x/telemetry/cmd/gotelemetry@latest
который скомпилирует бинарник ~/go/bin/gotelemetry
Можно с помощью go 1.23, можно с 1.22.
И после этого надо выполнить:
Однако, у меня команда go telemetry off не сработала. Видимо ~/go/bin не в PATH. Поэтому я просто перетащил ~/go/bin/gotelemetry в ~/.local/bin/gotelemetry и тогда команда стала:
При этом анализ доступа к файлам (sudo fatrace) показал, что эта утилита только создаёт текстовый файл ~/.config/go/telemetry/mode с содержимым:
где после off дата отключения сборочной телеметрии.
Таким образом, получается утилита не нужна и можно самому создать такой файл (не знаю, можно ли удалить дату для красоты, но я не стал).
Файлик ~/.config/go/telemetry/mode я в документации go что-то не встречал. Хотя, могли бы и упомянуть, чтобы не компилировать специальную утилиту для его создания.
Это отключает телеметрию сборки, которая собирается, но по умолчанию не отправляется, вроде как.
Также я заметил, что линуксовая команда file compiled-binary (т.е. бинари, которые компилирует go), показывает уникальный Go ID. Значит, go добавляет его при компиляции. Я погуглил и узнал, что такое добавление отключается опцией при компиляции:
Код:
-ldflags="-s -w -buildid="
-s -w в данном случае это другое, чтобы не добавлялись отладочные символы.