Baixei e instalei a Plataforma Haskell. E foi instalado (padrão) para/usr/local/haskell/
Eu quero adicionar os binários dentro /usr/local/haskell/bin/
do meu caminho. Mas eu não quero (se possível) mudar meu caminho..
Qual seria o melhor curso de ação aqui? Devo mover haskell/bin/*
para local/bin
ou é a melhor prática adicionar a pasta haskell ao caminho como?
Uma abordagem alternativa para atualização
$PATH
que é bastante comum é criar links simbólicos para os binários em algum lugar que já esteja listado em$PATH
, por exemplo, em/usr/local/bin
.Você pode fazer isso com:
(Mas, antes de fazer isso, certifique-se de inspecionar a lista de binários
/usr/local/haskell/bin/
e verifique se a criação dos links simbólicos faz sentido. Você pode decidir vincular apenas um subconjunto dos arquivos também.)Uma razão pela qual você não gostaria de mover os binários em si é que muitas vezes os binários que são distribuídos em formato binário em tarballs são escritos de uma maneira que podem funcionar quando descompactados em qualquer lugar do sistema. Para fazer isso, eles geralmente tentam detectar onde estão instalados (na maioria das vezes olhando para
/proc/self/exe
.). Ao fazer isso, eles podem encontrar o diretório pai/usr/local/haskell
onde esperam encontrar outras bibliotecas e arquivos de que precisam. A criação de links simbólicos normalmente não interfere em tais mecanismos, pois eles ainda poderão encontrar os binários reais em/usr/local/haskell/bin
, localizando com êxito o caminho de instalação.Outra razão para não mover os binários é que mais tarde se você quiser desinstalar o Haskell você pode simplesmente deletar o
/usr/local/haskell
diretório inteiro, você não precisa lembrar que alguns dos binários foram movidos/usr/local/bin
e, mesmo que você se lembre disso, você não precisa lembrar quais pertencem ao Haskell (assumindo que você usou este método para instalar mais de um pacote de software.) Você acaba com alguns links simbólicos quebrados se/usr/local/bin
desinstalar o Haskell apenas excluindo o diretório, mas eles são inofensivos e é fácil apontar quais pertencem ao Haskell, já que todos terão../haskell/bin
em seu nome, então são fáceis de limpar também.