{"id":180,"date":"2026-09-05T17:28:14","date_gmt":"2026-09-05T20:28:14","guid":{"rendered":"https:\/\/www.linuxpro.com.br\/?p=180"},"modified":"2026-09-10T22:57:20","modified_gmt":"2026-09-11T01:57:20","slug":"rodando-ia-local-no-linux-com-ollama","status":"publish","type":"post","link":"https:\/\/www.linuxpro.com.br\/es\/2026\/09\/rodando-ia-local-no-linux-com-ollama\/","title":{"rendered":"Rodando IA local no Linux com Ollama"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" alt=\"Mascote do LinuxPro conversando com um modelo de IA rodando na pr\u00f3pria m\u00e1quina, com a lhama do Ollama ao lado\" src=\"\/wp-content\/uploads\/2026\/09\/ollama-v4.webp\" width=\"1486\" height=\"856\" \/><\/p>\n<p><strong>Rodar modelos de IA localmente<\/strong> deixou de ser coisa de laborat\u00f3rio: com o Ollama voc\u00ea baixa e executa LLMs no seu pr\u00f3prio Linux, sem enviar dados para a nuvem e sem pagar por token. Este post conta de onde o projeto veio \u2014 a origem explica muita coisa do desenho dele \u2014 e mostra como instalar, ajustar e usar de verdade.<\/p>\n<h2>De onde veio o Ollama<\/h2>\n<p>Para entender por que o Ollama parece tanto com o Docker, basta olhar quem o escreveu. <strong>Jeff Morgan<\/strong> e <strong>Michael Chiang<\/strong> s\u00e3o dois canadenses que se conheceram na Universidade de Waterloo e, antes disso tudo, criaram o <strong>Kitematic<\/strong> \u2014 a interface que tornava o Docker utiliz\u00e1vel por gente normal. A Docker comprou o projeto em <strong>2015<\/strong>, e aquilo virou o que hoje se chama Docker Desktop.<\/p>\n<p>A dupla passou pelo Y Combinator na turma de <strong>inverno de 2021<\/strong> e, em <strong>26 de junho de 2023<\/strong>, abriu o reposit\u00f3rio do Ollama. A tese era a mesma do Kitematic, trocando container por modelo: existe uma tecnologia poderosa e chata de operar, e algu\u00e9m precisa embrulh\u00e1-la num comando s\u00f3.<\/p>\n<p>Da\u00ed vem tudo o que parece familiar. Voc\u00ea faz <code>pull<\/code> de um modelo de um registro. Voc\u00ea descreve o seu modelo num arquivo chamado <strong>Modelfile<\/strong>, que \u00e9 um Dockerfile com outro nome. Voc\u00ea lista o que tem instalado com <code>list<\/code> e apaga com <code>rm<\/code>. Nada disso \u00e9 coincid\u00eancia.<\/p>\n<p>N\u00fameros de setembro de 2026: escrito em <strong>Go<\/strong>, licen\u00e7a <strong>MIT<\/strong>, mais de <strong>180 mil estrelas<\/strong> no GitHub e cerca de <strong>9 milh\u00f5es de desenvolvedores<\/strong> usando. Em julho de 2026 a empresa \u2014 de apenas 14 pessoas \u2014 levantou uma s\u00e9rie B de <strong>US$ 65 milh\u00f5es<\/strong> liderada pela Theory Ventures, chegando a US$ 88 milh\u00f5es no total, com Benchmark e o pr\u00f3prio Y Combinator na lista.<\/p>\n<p>Um detalhe t\u00e9cnico importante da trajet\u00f3ria: at\u00e9 2025 o Ollama era, no fundo, uma casca sobre o <strong>llama.cpp<\/strong>. Em maio daquele ano o projeto lan\u00e7ou <strong>motor pr\u00f3prio<\/strong>, constru\u00eddo sobre a biblioteca de tensores GGML, porque dar suporte a modelo multimodal remendando o llama.cpp tinha virado insustent\u00e1vel. Hoje cada modelo \u00e9 autocontido e traz a pr\u00f3pria camada de proje\u00e7\u00e3o \u2014 mas o GGML continua ali embaixo, por compatibilidade de CPU.<\/p>\n<h2>Por que rodar IA local?<\/h2>\n<ul>\n<li><strong>Privacidade<\/strong>: seus dados n\u00e3o saem da m\u00e1quina \u2014 decisivo para c\u00f3digo propriet\u00e1rio, documento interno e qualquer coisa sob LGPD.<\/li>\n<li><strong>Custo zero por uso<\/strong>: depois de baixar o modelo, rode quantas vezes quiser.<\/li>\n<li><strong>Funciona offline<\/strong>: \u00fatil em rede restrita, laborat\u00f3rio isolado e servidor sem sa\u00edda para a internet.<\/li>\n<li><strong>Sem limite de taxa<\/strong>: nenhum &#8220;voc\u00ea excedeu a cota&#8221; no meio de um processamento em lote.<\/li>\n<\/ul>\n<p>E o outro lado, que \u00e9 justo dizer: <strong>a qualidade n\u00e3o \u00e9 a mesma<\/strong>. Um modelo de 8B rodando na sua GPU n\u00e3o substitui um modelo de fronteira. Para tarefa mec\u00e2nica \u2014 resumir, classificar, extrair, reformatar \u2014 a diferen\u00e7a some. Para racioc\u00ednio dif\u00edcil, n\u00e3o.<\/p>\n<h2>Requisitos reais: \u00e9 a mem\u00f3ria que manda<\/h2>\n<p>A conta pr\u00e1tica: um modelo quantizado em 4 bits ocupa mais ou menos <strong>0,6 GB por bilh\u00e3o de par\u00e2metros<\/strong>, mais uma folga para o contexto. Traduzindo:<\/p>\n<table>\n<thead>\n<tr>\n<th>Tamanho do modelo<\/th>\n<th>VRAM ou RAM necess\u00e1ria<\/th>\n<th>Serve para<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>1B \u2013 3B<\/td>\n<td>~2\u20134 GB<\/td>\n<td>Classificar, extrair, autocompletar; roda at\u00e9 em CPU<\/td>\n<\/tr>\n<tr>\n<td>7B \u2013 8B<\/td>\n<td>~6\u20138 GB<\/td>\n<td>O ponto ideal de custo-benef\u00edcio para uso geral<\/td>\n<\/tr>\n<tr>\n<td>14B<\/td>\n<td>~10\u201312 GB<\/td>\n<td>C\u00f3digo e racioc\u00ednio, com placa de 12 GB ou mais<\/td>\n<\/tr>\n<tr>\n<td>32B<\/td>\n<td>~20\u201324 GB<\/td>\n<td>Precisa de placa grande; qualidade bem melhor<\/td>\n<\/tr>\n<tr>\n<td>70B+<\/td>\n<td>40 GB ou mais<\/td>\n<td>Duas GPUs ou muita paci\u00eancia com offload para RAM<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Se o modelo n\u00e3o couber na VRAM, o Ollama joga o excedente na RAM do sistema e continua funcionando \u2014 s\u00f3 que devagar. Se voc\u00ea quer saber onde investir, veja o <a href=\"\/2026\/09\/servidor-ia-recondicionado-64gb-vram-v100-p100-mi25\/\">servidor de IA recondicionado com 64 GB de VRAM<\/a> e a <a href=\"\/2026\/09\/tesla-v100-ia-local-barata\/\">Tesla V100 de 32 GB<\/a>.<\/p>\n<h2>Instalando<\/h2>\n<p>Instala\u00e7\u00e3o em uma linha, direto do site oficial:<\/p>\n<pre><code class=\"language-bash\">curl -fsSL https:\/\/ollama.com\/install.sh | sh<\/code><\/pre>\n<p>O instalador cria o servi\u00e7o systemd <code>ollama<\/code> e detecta a GPU automaticamente. Confira:<\/p>\n<pre><code class=\"language-bash\">systemctl status ollama\nollama --version\nnvidia-smi        # a GPU foi vista?<\/code><\/pre>\n<p>Se voc\u00ea prefere cont\u00eainer \u2014 \u00fatil para isolar a instala\u00e7\u00e3o ou rodar em servidor j\u00e1 containerizado:<\/p>\n<pre><code class=\"language-bash\">docker run -d --gpus=all -v ollama:\/root\/.ollama -p 11434:11434 \n  --name ollama ollama\/ollama\n\ndocker exec -it ollama ollama run qwen2.5-coder<\/code><\/pre>\n<h2>Baixando e rodando um modelo<\/h2>\n<pre><code class=\"language-bash\"># baixa e j\u00e1 abre o chat interativo\nollama run llama3.2\n\n# s\u00f3 baixar, sem abrir o chat\nollama pull qwen2.5-coder\n\n# tamanho espec\u00edfico\nollama pull llama3.2:3b\n\n# listar o que est\u00e1 instalado, com tamanho\nollama list\n\n# ver o que est\u00e1 carregado na mem\u00f3ria agora\nollama ps\n\n# uma pergunta s\u00f3, direto do shell \u2014 \u00f3timo para script\nollama run llama3.2 \"explique o comando: tar czf backup.tar.gz \/etc\"\n\n# ler um arquivo e mandar para o modelo\nollama run llama3.2 \"resuma os erros deste log\" &lt; \/var\/log\/syslog<\/code><\/pre>\n<p>Dentro do chat interativo, <code>\/bye<\/code> sai, <code>\/clear<\/code> esquece a conversa e <code>\/set verbose<\/code> passa a mostrar a velocidade em tokens por segundo \u2014 a m\u00e9trica que voc\u00ea quer olhar ao comparar modelos.<\/p>\n<p>Para m\u00e1quina modesta, prefira as variantes menores. Para programar, as fam\u00edlias <em>coder<\/em> se saem visivelmente melhor que os modelos generalistas do mesmo tamanho.<\/p>\n<h2>O Modelfile: a heran\u00e7a do Docker<\/h2>\n<p>Aqui a origem dos criadores aparece inteira. Voc\u00ea personaliza um modelo declarando o que quer num arquivo de texto \u2014 mesma l\u00f3gica do Dockerfile:<\/p>\n<pre><code class=\"language-text\">FROM qwen2.5-coder:7b\n\n# temperatura baixa = respostas mais previs\u00edveis\nPARAMETER temperature 0.2\nPARAMETER num_ctx 8192\n\nSYSTEM \"\"\"\nVoc\u00ea \u00e9 um assistente de sysadmin Linux. Responda em portugu\u00eas do Brasil,\nsempre com o comando pronto para colar. Avise quando o comando for\ndestrutivo. N\u00e3o invente flag que voc\u00ea n\u00e3o tem certeza que existe.\n\"\"\"<\/code><\/pre>\n<pre><code class=\"language-bash\">ollama create sysadmin -f .\/Modelfile\nollama run sysadmin<\/code><\/pre>\n<p>\u00c9 o jeito mais r\u00e1pido de transformar um modelo gen\u00e9rico numa ferramenta com a cara do seu trabalho \u2014 e o resultado fica salvo como um modelo local seu, que voc\u00ea pode listar, rodar e apagar como qualquer outro.<\/p>\n<h2>Usando pela API<\/h2>\n<p>O Ollama sobe uma API HTTP local na porta <strong>11434<\/strong>. A nativa:<\/p>\n<pre><code class=\"language-bash\">curl http:\/\/localhost:11434\/api\/generate -d '{\n  \"model\": \"llama3.2\",\n  \"prompt\": \"Explique o comando: tar czf backup.tar.gz \/etc\",\n  \"stream\": false\n}'<\/code><\/pre>\n<p>E \u2014 o que resolve a vida de quem j\u00e1 tem c\u00f3digo pronto \u2014 ele tamb\u00e9m fala o <strong>protocolo da OpenAI<\/strong>. Qualquer aplica\u00e7\u00e3o ou SDK que use a API da OpenAI passa a apontar para a sua m\u00e1quina trocando s\u00f3 a URL:<\/p>\n<pre><code class=\"language-python\">from openai import OpenAI\n\nclient = OpenAI(base_url=\"http:\/\/localhost:11434\/v1\", api_key=\"ollama\")\n\nresposta = client.chat.completions.create(\n    model=\"llama3.2\",\n    messages=[{\"role\": \"user\", \"content\": \"Escreva uma unit systemd para um script em \/opt\/job.sh\"}],\n)\nprint(resposta.choices[0].message.content)<\/code><\/pre>\n<h2>Os ajustes que importam<\/h2>\n<p>O padr\u00e3o funciona, mas quase nunca \u00e9 o que voc\u00ea quer num servidor. A configura\u00e7\u00e3o vai no systemd:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl edit ollama<\/code><\/pre>\n<pre><code class=\"language-ini\">[Service]\n# escutar na rede, n\u00e3o s\u00f3 no localhost\nEnvironment=\"OLLAMA_HOST=0.0.0.0:11434\"\n\n# guardar os modelos num disco maior\nEnvironment=\"OLLAMA_MODELS=\/dados\/ollama\"\n\n# manter o modelo carregado (padr\u00e3o: 5 minutos)\nEnvironment=\"OLLAMA_KEEP_ALIVE=30m\"\n\n# quantas requisi\u00e7\u00f5es atender em paralelo\nEnvironment=\"OLLAMA_NUM_PARALLEL=4\"\n\n# quantos modelos diferentes manter na mem\u00f3ria ao mesmo tempo\nEnvironment=\"OLLAMA_MAX_LOADED_MODELS=2\"<\/code><\/pre>\n<pre><code class=\"language-bash\">sudo systemctl daemon-reload &amp;&amp; sudo systemctl restart ollama<\/code><\/pre>\n<p><strong>Aviso de seguran\u00e7a:<\/strong> o Ollama <em>n\u00e3o tem autentica\u00e7\u00e3o<\/em>. Ao trocar o <code>OLLAMA_HOST<\/code> para <code>0.0.0.0<\/code> voc\u00ea abre a porta 11434 para qualquer um que alcance a m\u00e1quina \u2014 e quem alcan\u00e7a pode usar a sua GPU e ler as suas conversas. Em servidor exposto, ponha um proxy reverso com autentica\u00e7\u00e3o na frente e feche a 11434 no firewall.<\/p>\n<h2>Ollama, llama.cpp ou vLLM?<\/h2>\n<table>\n<thead>\n<tr>\n<th><\/th>\n<th>Ollama<\/th>\n<th>llama.cpp<\/th>\n<th>vLLM<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>Para quem<\/strong><\/td>\n<td>Uso pessoal e equipe pequena<\/td>\n<td>Quem quer controle fino<\/td>\n<td>Servi\u00e7o multiusu\u00e1rio em produ\u00e7\u00e3o<\/td>\n<\/tr>\n<tr>\n<td><strong>Facilidade<\/strong><\/td>\n<td>Um comando e funciona<\/td>\n<td>Exige compilar e ajustar<\/td>\n<td>Exige planejar VRAM<\/td>\n<\/tr>\n<tr>\n<td><strong>Formato<\/strong><\/td>\n<td>GGUF, via registro pr\u00f3prio<\/td>\n<td>GGUF<\/td>\n<td>Pesos do Hugging Face<\/td>\n<\/tr>\n<tr>\n<td><strong>Modelo n\u00e3o cabe<\/strong><\/td>\n<td>Faz offload para a RAM<\/td>\n<td>Faz offload para a RAM<\/td>\n<td>Precisa de <code>--cpu-offload-gb<\/code><\/td>\n<\/tr>\n<tr>\n<td><strong>Vaz\u00e3o sob carga<\/strong><\/td>\n<td>Cai r\u00e1pido<\/td>\n<td>Cai r\u00e1pido<\/td>\n<td>\u00c9 o objetivo do projeto<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Resumindo: se \u00e9 voc\u00ea na sua m\u00e1quina, Ollama. Se \u00e9 uma API que v\u00e1rias pessoas ou v\u00e1rios agentes v\u00e3o consumir ao mesmo tempo, o caminho \u00e9 o <a href=\"\/2026\/09\/vllm-primeiros-passos-linux\/\">vLLM<\/a>.<\/p>\n<h2>Manuten\u00e7\u00e3o e limpeza<\/h2>\n<p>Modelo ocupa v\u00e1rios GB e some do radar. De vez em quando:<\/p>\n<pre><code class=\"language-bash\">ollama list                 # o que eu tenho mesmo?\nollama rm llama3.2          # apagar um\ndu -sh ~\/.ollama\/models     # quanto isso est\u00e1 comendo de disco<\/code><\/pre>\n<p>Os modelos ficam em <code>~\/.ollama\/models<\/code> quando voc\u00ea roda como usu\u00e1rio, e em <code>\/usr\/share\/ollama\/.ollama\/models<\/code> quando roda como servi\u00e7o.<\/p>\n<h2>Linha do tempo<\/h2>\n<ul>\n<li><strong>2015<\/strong> \u2014 a Docker compra o Kitematic, de Jeff Morgan e Michael Chiang; o projeto vira a base do Docker Desktop.<\/li>\n<li><strong>Inverno de 2021<\/strong> \u2014 a dupla passa pelo Y Combinator.<\/li>\n<li><strong>26 de junho de 2023<\/strong> \u2014 o reposit\u00f3rio do Ollama \u00e9 criado, em Go e sob licen\u00e7a MIT, como uma camada sobre o llama.cpp.<\/li>\n<li><strong>Maio de 2025<\/strong> \u2014 o projeto lan\u00e7a motor pr\u00f3prio sobre a biblioteca GGML, para dar conta dos modelos multimodais.<\/li>\n<li><strong>Julho de 2026<\/strong> \u2014 s\u00e9rie B de US$ 65 milh\u00f5es liderada pela Theory Ventures; total captado chega a US$ 88 milh\u00f5es, com cerca de 9 milh\u00f5es de desenvolvedores usando.<\/li>\n<li><strong>Setembro de 2026<\/strong> \u2014 mais de 180 mil estrelas no GitHub; a linha est\u00e1vel \u00e9 a 0.33.<\/li>\n<\/ul>\n<h2>Fechando<\/h2>\n<p>O m\u00e9rito do Ollama n\u00e3o \u00e9 t\u00e9cnico \u2014 o llama.cpp j\u00e1 fazia infer\u00eancia local antes dele. O m\u00e9rito \u00e9 de embalagem: dois caras que j\u00e1 tinham feito exatamente isso com o Docker olharam para os LLMs e transformaram um processo de compilar, converter e ajustar par\u00e2metro em <code>ollama run<\/code>. \u00c9 a mesma li\u00e7\u00e3o do Kitematic, dez anos depois.<\/p>\n<p>Para continuar: <a href=\"\/2026\/09\/assistentes-de-ia-no-terminal-linux\/\">assistentes de IA no terminal Linux<\/a> mostra como plugar isso no seu fluxo de trabalho, e <a href=\"\/2026\/09\/gpu-vs-tpu-como-funcionam-chips-ia\/\">GPU vs TPU<\/a> explica o que est\u00e1 acontecendo no hardware enquanto o modelo responde.<\/p>\n<p><strong>Links oficiais:<\/strong> <a href=\"https:\/\/ollama.com\/\" target=\"_blank\" rel=\"noopener\">ollama.com<\/a> \u00b7 <a href=\"https:\/\/docs.ollama.com\/\" target=\"_blank\" rel=\"noopener\">documenta\u00e7\u00e3o<\/a> \u00b7 <a href=\"https:\/\/github.com\/ollama\/ollama\" target=\"_blank\" rel=\"noopener\">github.com\/ollama\/ollama<\/a> \u00b7 <a href=\"https:\/\/github.com\/ollama\/ollama\/releases\" target=\"_blank\" rel=\"noopener\">releases<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Rodar modelos de IA localmente deixou de ser coisa de laborat\u00f3rio: com o Ollama voc\u00ea baixa e executa LLMs no seu pr\u00f3prio Linux, sem enviar dados para a nuvem e sem pagar por token. Este post conta de onde o projeto veio \u2014 a origem explica muita coisa do desenho dele \u2014 e mostra como &#8230; <a title=\"Rodando IA local no Linux com Ollama\" class=\"read-more\" href=\"https:\/\/www.linuxpro.com.br\/es\/2026\/09\/rodando-ia-local-no-linux-com-ollama\/\" aria-label=\"Read more about Rodando IA local no Linux com Ollama\">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":[115,2],"tags":[116,4,128,127],"class_list":["post-180","post","type-post","status-publish","format-standard","hentry","category-ia","category-linux","tag-ia","tag-linux","tag-llm","tag-ollama"],"_links":{"self":[{"href":"https:\/\/www.linuxpro.com.br\/es\/wp-json\/wp\/v2\/posts\/180","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.linuxpro.com.br\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.linuxpro.com.br\/es\/wp-json\/wp\/v2\/types\/post"}],"replies":[{"embeddable":true,"href":"https:\/\/www.linuxpro.com.br\/es\/wp-json\/wp\/v2\/comments?post=180"}],"version-history":[{"count":8,"href":"https:\/\/www.linuxpro.com.br\/es\/wp-json\/wp\/v2\/posts\/180\/revisions"}],"predecessor-version":[{"id":1509,"href":"https:\/\/www.linuxpro.com.br\/es\/wp-json\/wp\/v2\/posts\/180\/revisions\/1509"}],"wp:attachment":[{"href":"https:\/\/www.linuxpro.com.br\/es\/wp-json\/wp\/v2\/media?parent=180"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.linuxpro.com.br\/es\/wp-json\/wp\/v2\/categories?post=180"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.linuxpro.com.br\/es\/wp-json\/wp\/v2\/tags?post=180"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}