Como eu sei onde colocar as coisas no linux?

58

Instalar algo no Windows leva um clique de um botão. Mas toda vez que tento instalar algo no linux, que não é encontrado no APT, fico tão confuso.

Você faz o download de uma pasta compactada e depois? Se você tiver sorte, há um README, referindo-se a alguma documentação, que pode ajudá-lo, se você tiver sorte.

Qual é o truque de mágica quando "instala" extensões e aplicativos que não são encontrados no APT?

Eu amo o Linux, mas esse problema me assombra todos os dias.

    
por Marcus Johansson 23.02.2011 / 12:55

4 respostas

33

Se for um software que obedeça ao Padrão de Hierarquia do Sistema de Arquivos , você deve colocá-lo em /usr/local e o arquivo apropriado. subdiretórios (como bin , lib , share , ...).

Outro software deve ser colocado em seu próprio diretório em /opt . Em seguida, defina sua variável PATH para incluir o diretório bin ou qualquer diretório que contenha os executáveis ou crie links simbólicos para /usr/local/bin .

    
por 23.02.2011 / 13:10
27

Não há uma resposta simples para essa pergunta, mas posso fornecer uma descrição geral de como isso funciona:

A maioria dos softwares Linux é fornecida pelos autores (o "upstream") na forma de código-fonte. Isso permite que todos que possuam um compilador para sua configuração particular de plataforma e sistema baixem o código fonte e compilem-no por conta própria. Infelizmente para você, muitos programas dependem de funções fornecidas por outros programas e bibliotecas de software (dependências).

O software do Windows geralmente vem em forma pré-compilada. Isso significa que há um arquivo executável genérico para todos os computadores Windows, e as dependências costumam acompanhá-lo no pacote de instalação.

As distribuições Linux pegam o código fonte, pré-compilam para você e também o oferecem como um pacote. O pacote não inclui as dependências, mas refere-se a elas e força o sistema de pacotes a instalá-las também (o que às vezes pode levar a problemas que você provavelmente já experimentou).

Se não houver um pacote pré-compilado, você sempre pode fazer o download do código-fonte e compilar você mesmo. Na maioria das vezes, o seguinte funcionará:

./configure
make
(sudo) make install (or sudo checkinstall)

A linha ./configure define o cenário para o processo de compilação (e gera erros se as dependências não forem atendidas). A linha make executará o Makefile, um script que compila todas as partes do programa.

Tradicionalmente, você usaria make install para instalar o software. Isso geralmente coloca os executáveis em / usr / local / bin.

Como você está usando o apt, recomendo muito que você faça o checkinstall. Você pode usá-lo no lugar de make install, e ele irá gerar um pacote .deb para você. Isso torna muito mais fácil remover o software mais tarde.

Note que há um punhado de outros sistemas de compilação, por exemplo cmake; e alguns softwares vêm pré-compilados, mas descompactados (caso em que você pode iniciá-lo diretamente da pasta descompactada); e alguns softwares vêm como uma coleção de scripts que você precisa executar. Código fresco do SVN às vezes vem sem scripts de configuração, então você tem que primeiro executar a toolchain do autoconf ... etc, etc ... você vê que existem muitas exceções à regra, mas com um pouco de experiência você será capaz de diga o que fazer com a maioria desses downloads misteriosos. Configure-Make-Checkinstall é um bom começo.

PS. Passe um fim de semana ou dois para aprender como se programar, e as coisas ficarão muito óbvias: -)

PPS. Você pode se perguntar por que os autores de software Linux não fornecem apenas pacotes pré-compilados em vez do código fonte. Bem, eles às vezes fazem. Mas diferentes plataformas e distribuições Linux têm seus próprios formatos de pacotes e regras de sistema de arquivos, então, como desenvolvedor, você precisa fornecer pacotes para cada configuração possível - o que é uma dor. No entanto, os pacotes do Ubuntu são os mais fáceis de encontrar - você deve descobrir o que é um PPA e como funciona!

    
por 23.02.2011 / 16:03
4

Você deve verificar checkinstall . Em vez de

./configure
make
sudo make install

você faz

./configure
make
sudo make checkinstall

e você poderá gerenciar esse pacote como se tivesse instalado através do apt.

    
por 24.02.2011 / 00:35
1

Existe uma razão válida e sensata que isso é tão confuso (há também um motivo de artefato chato) ...

O Unix tem um histórico de ser multiusuário e a maioria dos usuários não tinha acesso para instalar aplicativos fora das áreas às quais eles tinham acesso específico.

Portanto, a teoria seria que você criaria algo em seu diretório pessoal e depois copiaria para uma área sobre a qual você tinha controle (sua própria área de projeto ou uma área compartilhada).

Os PCs com Windows são geralmente sistemas de usuário único e não têm essa restrição, tudo fica nos Arquivos de Programas, não importa o que aconteça.

Depois, há o fato estúpido e irritante de que toda vez que uma nova versão do Unix é lançada, os criadores acham necessário mudar de local, mas os antigos ainda precisam estar lá para scripts automatizados. Isto dá-lhe um monte de diretórios ligados servindo ao mesmo propósito.

O sistema init é ainda pior.

    
por 23.02.2011 / 21:51