3  Pré-requisitos

Este capítulo prepara o seu computador para o resto do livro. Ao final, você terá instalado Julia e um editor, baixado os dados e os exercícios do livro e rodado um primeiro script que desenha um gráfico.

Siga os passos na ordem. Onde eles mudam de um sistema operacional para outro, escolha a aba do seu sistema. Reserve cerca de uma hora na primeira vez — a maior parte é espera enquanto os pacotes são instalados — e mantenha a conexão com a internet até concluir a Seção 3.6. Se algum passo não se comportar como descrito, veja a Seção 3.9.

NotaO que você vai instalar
O quê Para quê
Julia (pelo juliaup) a linguagem em si
VS Code e a extensão de Julia onde você escreve e roda o código
A pasta do livro dados, exercícios e a lista de pacotes que o livro usa
Os pacotes do livro data frames, gráficos e modelos, nas versões exatas com que o livro foi gerado

Você não precisa de git, R nem Quarto.

3.1 Passo 1: abra um terminal

Um terminal é uma janela onde você digita comandos em vez de clicar. Você só precisa dele para instalar Julia. Depois disso, tudo o que vamos fazer aqui neste livro acontece dentro do VS Code.

Abra o menu Iniciar, digite PowerShell e abra o Windows PowerShell (ou o Terminal, no Windows 11).

Pressione Cmd+Espaço, digite Terminal e pressione Return.

Pressione Ctrl+Alt+T na maioria das distribuições, ou procure Terminal no menu de aplicativos.

Para rodar um comando, cole-o no terminal e pressione Enter. Colar é Ctrl+V no Windows, Cmd+V no macOS e Ctrl+Shift+V na maioria dos terminais Linux.

3.2 Passo 2: instale Julia

Use o juliaup, o instalador e gerenciador oficial de versões. Não instale Julia pelo gerenciador de pacotes do sistema (apt, brew), que tende a distribuir versões desatualizadas.

winget install --name Julia --id 9NJNWW8PVKMN -e -s msstore

Se o Windows pedir que você aceite os termos da Microsoft Store, digite Y e pressione Enter.

curl -fsSL https://install.julialang.org | sh

O instalador pergunta se deve seguir com as configurações padrão. Pressione Enter para aceitá-las.

Quando terminar, feche o terminal e abra um novo — o comando julia só fica disponível em terminais novos. Depois, confira a instalação:

julia --version

O livro foi gerado com o Julia 1.12, mas o juliaup instala a versão estável mais recente, que pode ser mais nova (em outubro de 2026, a 1.13). Para usar a mesma versão do livro, rode:

juliaup add 1.12
juliaup default 1.12

e confira de novo com julia --version, que deve mostrar algo como julia version 1.12.6. Use a 1.12 mesmo que já tenha uma versão mais nova: com outra versão, o Pkg.instantiate() do Passo 6 avisa que o Manifest.toml foi resolvido com outra versão de Julia, algumas versões de pacotes podem não ser exatamente as do livro, e o checar("setup") do Passo 7 aponta o problema.

Agora digite julia e pressione Enter para abrir o Julia propriamente dito. O prompt muda para julia>; digite 1 + 1, pressione Enter, e Julia responde 2. Saia com exit().

Mais tarde, juliaup update atualiza o Julia e juliaup status lista as versões instaladas.

3.3 Passo 3: baixe a pasta do livro

O livro vem com uma pasta que contém os dados de exemplo, o verificador de exercícios e a lista de pacotes de que o livro precisa.

  1. Acesse https://github.com/esantos2ua/EcologicalAnalysesInJulia.

  2. Clique no botão verde Code e depois em Download ZIP.

  3. Descompacte o arquivo:

    Clique com o botão direito no arquivo baixado e escolha Extrair Tudo…. Trabalhe na pasta extraída, não dentro do ZIP: arquivos abertos de dentro de um ZIP são cópias somente leitura.

    Dê um duplo clique no arquivo baixado.

    Clique com o botão direito no arquivo e escolha Extrair aqui, ou rode unzip nele.

  4. Mova a pasta extraída, EcologicalAnalysesInJulia-main, para um lugar permanente, como a pasta Documentos. Você pode renomeá-la, mas evite deixá-la em Downloads, que alguns sistemas limpam automaticamente.

Dentro dela você deve ver, entre outras coisas, as pastas data e exercises e os arquivos Project.toml e Manifest.toml.

DicaSe você já usa git

Clone o repositório em vez de baixar o ZIP; depois, git pull traz as atualizações do livro:

git clone https://github.com/esantos2ua/EcologicalAnalysesInJulia.git

3.4 Passo 4: instale o VS Code

O VS Code com a extensão oficial de Julia é o editor padrão para Julia: oferece REPL integrado (o console onde o código roda), navegador de variáveis, painel de gráficos, depurador e avaliação linha a linha — o equivalente funcional do RStudio.

  1. Instale o VS Code a partir de https://code.visualstudio.com e abra-o.
  2. Instale a extensão de Julia. Abra o painel de extensões (Ctrl+Shift+X; Cmd+Shift+X no macOS), procure por Julia e instale a extensão publicada por julialang. Ela encontra sozinha o Julia instalado pelo juliaup.

Se você prefere uma versão de código aberto, o VSCodium é o VS Code compilado a partir do mesmo código-fonte sob licença MIT, sem a telemetria da Microsoft, e instala a mesma extensão de Julia pelo registro Open VSX. O Antigravity, outro editor derivado do VS Code, também roda a mesma extensão. Tudo neste livro vale para os três (pelo menos até onde eu testei). Outras opções são o Pluto.jl (notebooks reativos, excelentes para ensino) e qualquer editor com suporte a LSP via LanguageServer.jl.

3.5 Passo 5: abra a pasta do livro

  1. Abra uma pasta, não um arquivo. No VS Code, use File → Open Folder… e escolha a pasta do livro da Seção 3.3. Se o VS Code perguntar se você confia nos autores dos arquivos, responda que sim. A pasta aberta determina tanto onde Julia procura arquivos quanto quais pacotes ela usa.
  2. Confira o ambiente. A barra de status, na parte de baixo da janela, deve mostrar Julia env: seguido do nome da pasta do livro. Se aparecer algo como Julia env: v1.12, clique nessa entrada e escolha a pasta do livro.
  3. Inicie o REPL. Abra a paleta de comandos (Ctrl+Shift+P; Cmd+Shift+P no macOS) e rode Julia: Start REPL, ou pressione Alt+J e depois Alt+O. Um painel se abre embaixo com o prompt julia>, já dentro da pasta do livro e do seu ambiente.

Em R

Abrir uma pasta no VS Code cumpre o papel de abrir um .Rproj no RStudio: define o diretório de trabalho. Diferente do RStudio, também seleciona o ambiente de pacotes (Seção 3.10), de modo que as versões certas dos pacotes vêm junto automaticamente.

3.6 Passo 6: instale os pacotes do livro

Clique no painel do REPL e rode:

using Pkg
Pkg.instantiate()

Isso lê o Manifest.toml, baixa cada pacote que o livro usa na versão exata listada ali e os compila.

AvisoIsso demora

Na primeira vez, Pkg.instantiate() pode levar de vários minutos a meia hora, dependendo do seu computador e da sua conexão. Os pacotes de gráficos e de modelos são grandes, e Julia os compila antecipadamente para que rodem rápido depois. Linhas de progresso continuam aparecendo enquanto ele trabalha; deixe terminar e não feche o VS Code. Você só faz isso uma vez por computador.

NotaO que significa compilar?

Compilar significa traduzir o código legível por humanos diretamente para linguagem de máquina — as instruções que o processador do computador executa nativamente.

Enquanto linguagens como R e Python interpretam o código linha por linha durante a execução, Julia faz essa tradução com antecedência (na chamada pré-compilação). Isso exige paciência inicial ao instalar os pacotes, mas é o que garante que suas análises e gráficos rodem depois com velocidade máxima (veja mais sobre a latência de compilação na Seção 1.3).

3.7 Passo 7: confira se tudo funciona

A pasta do livro inclui um verificador, que você também vai usar nos exercícios a partir do Capítulo 4. Carregue-o e peça que ele confira a sua instalação:

include("exercises/checar.jl")
checar("setup")

Se estiver tudo certo, você verá:

✓ Julia 1.12.6
✓ A pasta de trabalho é a pasta do livro
✓ O ambiente do livro está ativo
✓ Arquivo de dados encontrado: data/ponds.csv
✓ Todos os 19 pacotes instalados
Tudo pronto. Siga para o primeiro script.

Uma linha com ✗ diz o que está errado e como corrigir; a Seção 3.9 tem mais detalhes.

3.8 Passo 8: um primeiro script

Com a pasta do livro aberta e o REPL rodando, crie um arquivo chamado primeiros-passos.jl na raiz da pasta (File → New File, ou Alt+J e depois Alt+N) e cole:

## Carregar pacotes
using CSV, DataFrames, CairoMakie

## Onde estou?
pwd()               # a pasta que você abriu
readdir("data")     # arquivos dentro de data/

## Ler os dados de exemplo
ponds = CSV.read(joinpath("data", "ponds.csv"), DataFrame)
first(ponds, 5)
describe(ponds)

## Gráfico de riqueza contra área da lagoa
fig = Figure()
ax = Axis(fig[1, 1]; xlabel = "Área da lagoa (m²)", ylabel = "Riqueza de espécies",
          xscale = log10)
scatter!(ax, ponds.area_m2, ponds.richness)
fig

Linhas que começam com ## dividem o script em células. Coloque o cursor na primeira célula e pressione Alt+Enter para rodá-la; depois siga célula por célula (Alt+Shift+Enter roda a célula e pula para a próxima). Algumas coisas a observar:

  • Carregar pacotes é lento na primeira vez em cada sessão — é a latência de compilação discutida na Seção 1.3. As células seguintes rodam na hora.
  • Os caminhos são relativos à pasta que você abriu. pwd() confirma isso, e é por isso que joinpath("data", "ponds.csv") funciona sem digitar o caminho completo. joinpath insere o separador correto em qualquer sistema operacional.
  • describe é a sua primeira checagem dos dados. Ele mostra que canopy tem 7 valores ausentes e que area_m2 é fortemente assimétrica à direita (mediana perto de 149 m², máximo perto de 2000 m²) — por isso o gráfico usa escala logarítmica.
  • xlabel = ... e xscale = log10 são argumentos nomeados, passados pelo nome e não pela posição, como em R. A Seção 10.2 explica os detalhes.

Os atalhos que você vai usar o tempo todo:

Atalho Ação
Shift+Enter roda a linha atual ou a seleção e passa para a próxima
Ctrl+Enter roda a linha atual ou a seleção, sem sair do lugar
Alt+Enter roda a célula atual (um bloco delimitado por linhas ##)
Alt+J, Alt+R reinicia o REPL
Ctrl+C no REPL interrompe uma computação em andamento

No macOS, Alt é a tecla Option; Ctrl continua sendo Ctrl. Atalhos e nomes de menu foram conferidos na versão 1.249 da extensão de Julia em setembro de 2026.

Inspecionando o ambiente. Clique no ícone de Julia na barra de atividades (a faixa à esquerda). O painel Workspace lista todas as variáveis da sessão — ponds, fig, ax — com tipo e tamanho; expanda uma entrada para ver o conteúdo. Para um data frame, passe o mouse sobre o nome e clique no ícone Open in VS Code, ou rode vscodedisplay(ponds) no REPL, para abri-lo em uma grade no estilo de planilha — o equivalente ao View() do RStudio.

Gráficos. Avaliar fig abre a figura no painel de gráficos (plot pane), uma aba do VS Code. O painel Plot Navigator, abaixo do Workspace, guarda o histórico de gráficos da sessão; com o painel de gráficos em foco, as setas do teclado navegam por ele. Para salvar uma figura em disco, use save("riqueza-area.png", fig).

3.9 Solução de problemas

julia não é reconhecido / command not found.
Feche todos os terminais e abra um novo; o instalador só atualiza terminais novos. Se ainda falhar, rode de novo o comando de instalação da Seção 3.2.
Windows: winget não é reconhecido.
O winget vem com o aplicativo Instalador de Aplicativo (App Installer). Atualize-o pela Microsoft Store, ou procure Julia na Microsoft Store e instale por lá — é o mesmo instalador juliaup.
Linux: curl: command not found.
Instale o curl pelo gerenciador de pacotes da sua distribuição (por exemplo, sudo apt install curl no Ubuntu) e repita a Seção 3.2.
O VS Code diz que não encontra o Julia.
Em um terminal, rode where.exe julia (Windows) ou which julia (macOS, Linux) e copie o caminho exibido. No VS Code, abra as configurações (Ctrl+,; Cmd+, no macOS), procure por julia.executablePath e cole o caminho ali. Depois, reinicie o VS Code.
A barra de status mostra Julia env: v1.12 (ou outra versão) em vez da pasta do livro.
O VS Code está com a pasta errada aberta, ou com um único arquivo. Use File → Open Folder… e escolha a própria pasta do livro — a que contém o Project.toml —, não uma pasta acima ou dentro dela. Depois, reinicie o REPL (Alt+J, Alt+R).
include("exercises/checar.jl") falha com No such file or directory.
O REPL não está rodando na pasta do livro. pwd() mostra onde ele está. Abra a pasta do livro como descrito acima e reinicie o REPL.
Pkg.instantiate() parece travado.
Provavelmente está compilando; essa é a parte lenta. Enquanto novas linhas continuarem aparecendo a cada poucos minutos, espere. Se ele parou com um erro — por exemplo, porque a conexão caiu —, rode Pkg.instantiate() de novo; ele continua de onde parou.
Package CairoMakie not found in current path (ou outro pacote).
Ou o ambiente do livro não está ativo (confira a barra de status), ou a Seção 3.6 não terminou. checar("setup") diz qual dos dois.
O primeiro using CairoMakie de cada sessão leva um minuto.
É normal: Julia compila o código na primeira vez que ele roda em uma sessão (Seção 1.3). Os comandos seguintes são rápidos.

3.10 Por dentro: ambientes de projeto

Você já usou um ambiente sem precisar pensar nele: é o que a barra de status da Seção 3.5 mostra. Esta seção explica o que ele é — o conceito que mais difere da prática usual em R.

Em R, install.packages() instala em uma biblioteca global compartilhada por todos os seus projetos. Em Julia, cada projeto tem seu próprio ambiente, descrito por dois arquivos:

  • Project.toml — as dependências diretas que você declarou.
  • Manifest.toml — a árvore completa e resolvida de dependências, com as versões exatas de tudo.

Juntos eles tornam a análise reproduzível por construção: quem tiver a pasta do seu projeto e rodar Pkg.instantiate() obtém exatamente as suas versões — foi o que você fez na Seção 3.6.

Em R

Project.toml + Manifest.toml cumprem o papel de renv.lock, mas fazem parte da linguagem, não de um pacote adicional. Ativar um ambiente é a operação padrão, não a exceção.

Pkg.status() lista os pacotes do ambiente ativo:

using Pkg
Pkg.status()
Status `~/Documents/Repos/EcologicalAnalysesInJulia/Project.toml`
⌃ [cbdf2221] AlgebraOfGraphics v0.13.1
⌅ [336ed68f] CSV v0.10.17
⌃ [13f3f980] CairoMakie v0.15.13
⌅ [324d7699] CategoricalArrays v0.10.9
  [a93c6f00] DataFrames v1.8.2
  [31c24e10] Distributions v0.25.131
  [8f03c58b] Effects v1.7.1
  [38e38edf] GLM v1.9.5
⌃ [09f84164] HypothesisTests v0.11.8
⌃ [ff71e718] MixedModels v5.8.2
⌅ [ce6b1742] RDatasets v0.7.7
⌃ [10745b16] Statistics v1.11.4
  [2913bbd2] StatsBase v0.34.13
  [3eaba693] StatsModels v0.7.10
  [79ddc9fe] TidierCats v0.2.2
  [fe2206b3] TidierData v0.17.2
  [8ae5e7a9] TidierFiles v0.3.2
  [337ecbd1] TidierPlots v1.0.0
  [9a3f8284] Random v1.11.0
Info Packages marked with ⌃ and ⌅ have new versions available. Those with ⌃ may be upgradable, but those with ⌅ are restricted by compatibility constraints from upgrading. To see why use `status --outdated`

Este livro foi gerado com:

versioninfo()
Julia Version 1.12.6
Commit 15346901f00 (2026-04-09 19:20 UTC)
Build Info:
  Official https://julialang.org release
Platform Info:
  OS: macOS (arm64-apple-darwin24.0.0)
  CPU: 10 × Apple M5
  WORD_SIZE: 64
  LLVM: libLLVM-18.1.7 (ORCJIT, apple-m1)
  GC: Built with stock GC
Threads: 1 default, 1 interactive, 1 GC (on 4 virtual cores)
Environment:
  JULIA_LOAD_PATH = @:@stdlib

3.11 Por dentro: Quarto

Você não precisa desta seção para acompanhar o livro. Ela é para quem quer gerar o livro por conta própria ou escrever documentos parecidos.

Este livro é escrito em Quarto, sucessor direto do bookdown. Desde a versão 1.5, Quarto executa blocos Julia nativamente, sem passar por Jupyter.

```{julia}
#| label: exemplo
1 + 1
```

O README.md do repositório explica como gerar o livro.

Desafios

  1. No REPL, pressione ] para entrar no modo de pacotes (o prompt fica azul; Backspace sai dele). Rode activate meu-teste e depois add DataFrames: isso cria um ambiente em uma pasta nova, meu-teste. Inspecione o Project.toml gerado e depois rode activate . para voltar ao ambiente do livro.
  2. Apague meu-teste/Manifest.toml, ative meu-teste de novo e rode resolve. O que muda?
  3. Rode o primeiros-passos.jl (Seção 3.8) célula por célula. No painel Workspace, que tipos o CSV.jl atribuiu às colunas region e canopy, e por que o tipo de canopy é diferente do de area_m2?