{"id":153,"date":"2019-12-02T10:54:00","date_gmt":"2019-12-02T13:54:00","guid":{"rendered":"https:\/\/www.linuxpro.com.br\/2019\/12\/install-golang-linux\/"},"modified":"2026-09-08T03:04:41","modified_gmt":"2026-09-08T06:04:41","slug":"install-golang-linux","status":"publish","type":"post","link":"https:\/\/www.linuxpro.com.br\/en\/2019\/12\/install-golang-linux\/","title":{"rendered":"Instalando Golang no Linux"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" alt=\"Mascote do LinuxPro pegando um cubo do pacote Go, com o fluxo de build indo para a pasta de sa\u00edda\" src=\"\/wp-content\/uploads\/2026\/09\/install-golang-linux-v3.webp\" width=\"1052\" height=\"652\" \/><\/p>\n<div style=\"background:#fff8e1;border-left:4px solid #8b1a1a;padding:.8em 1em;margin:1em 0\"><strong>Nota (2026):<\/strong> O post original pedia um gist como root, pasta <code data-no-translation=\"\">~\/GO<\/code> e PATH em <code data-no-translation=\"\">\/etc\/profile<\/code>. Isso \u00e9 de 2019. Abaixo: tarball oficial do go.dev (s\u00e9rie Go 1.27, lan\u00e7ada em agosto de 2026), snap e apt \u2014 com <code data-no-translation=\"\">go.mod<\/code>, sem GOPATH artesanal.<\/div>\n<p>Go nasceu no Google em 2007 (Pike, Thompson, Griesemer) e virou open source em 2009 \u2014 contamos essa saga em <a href=\"\/en\/2026\/09\/a-historia-da-linguagem-go\/\">A hist\u00f3ria da linguagem Go<\/a>. Compila r\u00e1pido, gera um bin\u00e1rio, concorr\u00eancia com goroutine. Docker, Kubernetes, Terraform: Go. Em 2019 este howto baixava um script. Em 2026 o caminho oficial \u00e9 o tarball do <a href=\"https:\/\/go.dev\/dl\/\">go.dev\/dl<\/a>.<\/p>\n<p><!-- more --><\/p>\n<h2>Tarball oficial (recomendado)<\/h2>\n<p>Puxa a vers\u00e3o est\u00e1vel do momento, confere a arch e instala em <code data-no-translation=\"\">\/usr\/local\/go<\/code>. N\u00e3o extraia em cima de uma \u00e1rvore antiga \u2014 o pr\u00f3prio Go pede para apagar antes:<\/p>\n<pre data-no-translation=\"\"><code class=\"language-bash\" data-no-translation=\"\">VER=$(curl -fsSL 'https:\/\/go.dev\/VERSION?m=text' | head -n1)\ncase $(uname -m) in\n  x86_64)  GOARCH=amd64 ;;\n  aarch64) GOARCH=arm64 ;;\n  *) echo \"arch n\u00e3o suportada\"; exit 1 ;;\nesac\ncd \/tmp\ncurl -fLO \"https:\/\/go.dev\/dl\/${VER}.linux-${GOARCH}.tar.gz\"\nsudo rm -rf \/usr\/local\/go\nsudo tar -C \/usr\/local -xzf \"${VER}.linux-${GOARCH}.tar.gz\"\n<\/code><\/pre>\n<p>PATH no seu usu\u00e1rio, n\u00e3o em <code data-no-translation=\"\">\/etc\/profile<\/code> de root:<\/p>\n<pre data-no-translation=\"\"><code class=\"language-bash\" data-no-translation=\"\">echo 'export PATH=$PATH:\/usr\/local\/go\/bin' &gt;&gt; ~\/.profile\necho 'export PATH=$PATH:$(go env GOPATH)\/bin' &gt;&gt; ~\/.profile\nsource ~\/.profile\ngo version\n<\/code><\/pre>\n<p>O GOPATH padr\u00e3o j\u00e1 \u00e9 <code data-no-translation=\"\">~\/go<\/code>. N\u00e3o precisa <code data-no-translation=\"\">mkdir ~\/GO<\/code>. Checksum SHA-256 de cada arquivo est\u00e1 em <a href=\"https:\/\/go.dev\/dl\/\">go.dev\/dl<\/a>. A partir do 1.21 o toolchain pode baixar sozinho uma vers\u00e3o mais nova se o <code data-no-translation=\"\">go.mod<\/code> pedir (<code data-no-translation=\"\">GOTOOLCHAIN<\/code>).<\/p>\n<h2>Snap e apt<\/h2>\n<p>Se quiser o pacote da distro, saiba que ele atrasa da upstream. Ubuntu 24.04 empacota por volta da 1.22; o snap da Canonical acompanha melhor:<\/p>\n<pre data-no-translation=\"\"><code class=\"language-bash\" data-no-translation=\"\"># snap (cl\u00e1ssico, atualiza sozinho)\nsudo snap install go --classic\ngo version\n\n# apt (est\u00e1vel da distro, costuma ser mais velho)\nsudo apt update\nsudo apt install -y golang-go git\ngo version\n<\/code><\/pre>\n<p>N\u00e3o misture snap, apt e <code data-no-translation=\"\">\/usr\/local\/go<\/code> no mesmo PATH. Escolha um. PPA <code data-no-translation=\"\">longsleep\/golang-backports<\/code> ainda existe para Ubuntu LTS, se o apt da caixa for antigo demais.<\/p>\n<h2>Hello, m\u00f3dulo<\/h2>\n<p>Desde o 1.16 o m\u00f3dulo \u00e9 o default. Nada de <code data-no-translation=\"\">GOPATH\/src\/github.com\/...<\/code>:<\/p>\n<pre data-no-translation=\"\"><code class=\"language-bash\" data-no-translation=\"\">mkdir -p ~\/src\/hello &amp;&amp; cd ~\/src\/hello\ngo mod init hello\nprintf 'package mainnimport \"fmt\"nfunc main() { fmt.Println(\"ol\u00e1, linuxpro\") }n' &gt; hello.go\ngo run .\n<\/code><\/pre>\n<p>Generics existem desde o 1.18 \u2014 o texto de 2019 dizia que n\u00e3o havia. O gist do post original (<a href=\"https:\/\/gist.github.com\/jniltinho\/8758e15a9ef80a189fce\">jniltinho\/8758e15a9ef80a189fce<\/a>) fica como rel\u00edquia: n\u00e3o rode script de gist como root em 2026.<\/p>\n<h2>O que ficou<\/h2>\n<p>Um tarball, um PATH, um <code data-no-translation=\"\">go mod init<\/code>. A linguagem que a lista de 2017 ainda chamava de \u201cfraca no Brasil\u201d \u00e9 a da infra. O mapa: <a href=\"\/en\/2017\/05\/linguagens-de-programacao\/\">As 7 principais linguagens<\/a>. O howto de 2017, irm\u00e3o mais velho deste: <a href=\"\/en\/2017\/05\/instalando-golang-no-linux\/\">Instalando Golang no Linux<\/a>.<\/p>\n<p>Go instalado, veja a linguagem em a\u00e7\u00e3o aqui no blog \u2014 dois projetos nossos escritos em Go: <a href=\"\/en\/2026\/09\/go-imapsync\/\">go-imapsync<\/a> (migra\u00e7\u00e3o de caixas IMAP num bin\u00e1rio \u00fanico) e <a href=\"\/en\/2026\/09\/go-postfixadmin\/\">go-postfixadmin<\/a> (painel moderno para Postfix).<\/p>\n<p>Docs: <a href=\"https:\/\/go.dev\/doc\/install\">go.dev\/doc\/install<\/a> \u00b7 tour: <a href=\"https:\/\/go.dev\/tour\/\">go.dev\/tour<\/a>.<\/p>","protected":false},"excerpt":{"rendered":"<p>Go nasceu no Google em 2007 (Pike, Thompson, Griesemer) e virou open source em 2009 \u2014 contamos essa saga em A hist\u00f3ria da linguagem Go. Compila r\u00e1pido, gera um bin\u00e1rio, concorr\u00eancia com goroutine. Docker, Kubernetes, Terraform: Go. Em 2019 este &#8230; <a title=\"Instalando Golang no Linux\" class=\"read-more\" href=\"https:\/\/www.linuxpro.com.br\/en\/2019\/12\/install-golang-linux\/\" aria-label=\"Read more about Instalando Golang no Linux\">Read more<\/a><\/p>","protected":false},"author":0,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[28],"tags":[29,31,32,30],"class_list":["post-153","post","type-post","status-publish","format-standard","hentry","category-dicas","tag-blog","tag-golang","tag-static-site","tag-zola"],"_links":{"self":[{"href":"https:\/\/www.linuxpro.com.br\/en\/wp-json\/wp\/v2\/posts\/153","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.linuxpro.com.br\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.linuxpro.com.br\/en\/wp-json\/wp\/v2\/types\/post"}],"replies":[{"embeddable":true,"href":"https:\/\/www.linuxpro.com.br\/en\/wp-json\/wp\/v2\/comments?post=153"}],"version-history":[{"count":7,"href":"https:\/\/www.linuxpro.com.br\/en\/wp-json\/wp\/v2\/posts\/153\/revisions"}],"predecessor-version":[{"id":1093,"href":"https:\/\/www.linuxpro.com.br\/en\/wp-json\/wp\/v2\/posts\/153\/revisions\/1093"}],"wp:attachment":[{"href":"https:\/\/www.linuxpro.com.br\/en\/wp-json\/wp\/v2\/media?parent=153"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.linuxpro.com.br\/en\/wp-json\/wp\/v2\/categories?post=153"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.linuxpro.com.br\/en\/wp-json\/wp\/v2\/tags?post=153"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}