Clojure: Instalando no Windows
Tags: clojure, beginners, programming, tutorial
Published: 2023-01-24 12:00:00

Estou acostumado a usar Clojure no MacOS, nunca tinha tentado instalar no Windows. 

## Documentação
Primeira coisa que fiz foi ler a [documentação oficial](https://clojure.org/guides/install_clojure#_windows_instructions), nela consta instruções para cada Sistema Operacional e também os pré-requisitos necessários. A documentação é simples e direta, o que facilita bastante todo o processo

## Pré-requisito

O único pré-requisito especificado nessa página é o JAVA

>Sim, Clojure é uma linguagem que roda na JVM

Na própria página com as instruções de cada SO, tem [instruções para instalação do JAVA](https://clojure.org/guides/install_clojure#java), inclusive com a recomendação de uma JDK específica. Fiz a instalação e validei através do terminal:

```shell
D:\ java --version
openjdk 17.0.5 2022-10-18
OpenJDK Runtime Environment Temurin-17.0.5+8 (build 17.0.5+8)
OpenJDK 64-Bit Server VM Temurin-17.0.5+8 (build 17.0.5+8, mixed mode, sharing)
```

## Instalação

A instalação do Clojure no Windows está em alpha e fica numa página separada: [Clj on Windows](https://github.com/clojure/tools.deps.alpha/wiki/clj-on-Windows)

Nessa página constam mais 2 pré-requisitos:
 -  [PowerShell 5](https://aka.ms/wmf5download) (ou mais recente, incluindo [PowerShell Core](https://aka.ms/pscore6))
 - [.NET Core SDK 2.1+ or .NET Framework 4.5+](https://www.microsoft.com/net/download) (ou mais recente)


No meu caso eu tinha ambos os pré-requisitos instalados, portanto segui para o próximo passo que era a instalação em si do Clojure.
Para instalar eles disponbilizam um comando para rodar no PowerShell que irá fazer o download do script de instalação e executá-lo:

```shell
D:\ Invoke-Expression (New-Object System.Net.WebClient).DownloadString('https://download.clojure.org/install/win-install-1.11.1.1165.ps1')
Downloading Clojure tools
AVISO: Clojure will install as a module in your PowerShell module path.

Possible install locations:
  1) C:\Users\user\Documents\WindowsPowerShell\Modules
  2) C:\Program Files\WindowsPowerShell\Modules
  3) C:\Windows\system32\WindowsPowerShell\v1.0\Modules
Enter number of preferred install location: 1

Installing PowerShell module
Removing download
Clojure now installed. Use "clj -h" for help.
```

Veja que o script pergunta onde deseja instalar, na própria documentação eles explicam que a opção 1 é a única que não precisa ser `admin`, acabei optando por ela.

## Validação

Para validar a instalação abri uma nova instância do PowerShell rodei o comando `clj`, na primeira vez ele faz o download de algumas dependências:
```shell
D:\ clj 
Downloading: org/clojure/clojure/1.11.1/clojure-1.11.1.pom from central
Downloading: org/clojure/core.specs.alpha/0.2.62/core.specs.alpha-0.2.62.pom from central
Downloading: org/clojure/spec.alpha/0.3.218/spec.alpha-0.3.218.pom from central
Downloading: org/clojure/pom.contrib/1.1.0/pom.contrib-1.1.0.pom from central
Downloading: org/clojure/spec.alpha/0.3.218/spec.alpha-0.3.218.jar from central
Downloading: org/clojure/core.specs.alpha/0.2.62/core.specs.alpha-0.2.62.jar from central
Downloading: org/clojure/clojure/1.11.1/clojure-1.11.1.jar from central
Clojure 1.11.1
```
Após baixar as dependências, ele mostra a versão do Clojure que está rodando e habilita o REPL.
Fiz uma execução simples para ver se realmente estava tudo certo, somando 1 e 1:
```
user=> (+ 1 1)
2
```
Aparentemente está tudo certo!

Para finalizar o REPL pode utilizar `Ctrl+C`

---

Eai, conseguiu instalar no Windows? Me conta aí se teve alguma dificuldade ou se foi tranquilo.