Por que muitos aplicativos não estão disponíveis em repositórios de pacotes?
Pode haver muitas razões:
- Ninguém se preocupou em empacotar o aplicativo.
- Ninguém tem permissão para empacotar o aplicativo (como Oracle insistindo em ser o apenas um para distribuir o Java ).
- O pacote é publicado sob uma licença que contradiz os valores das distribuições.
- ...
Não há um único motivo. Se quiser ver seu aplicativo favorito no gerenciador de pacotes da sua distro, você deve tratar cada caso separadamente. Tente entrar em contato com os desenvolvedores (em um canal de IRC ou uma lista de discussão, por exemplo) e pergunte como você poderia ajudar na embalagem.
Como instalar um tarball?
Um tarball (pacote .tar.gz) pode conter qualquer coisa. Até você realmente abri-lo, você não tem como assumir como instalá-lo. Mais uma vez, cada pacote deve ser abordado de forma diferente.
Procure documentação! Qualquer pacote (semi-) decente fornecerá instruções sobre como instalar o aplicativo. Seu primeiro reflexo deve ser sempre procurar um arquivo de texto chamado README, INSTALL ou algo assim. Verificar o website do editor também pode ajudar.
Como cada pacote é diferente, não há uma maneira universal de processar todos os pacotes do mundo. É como pedir uma receita que funcione com todos os ingredientes do mundo. Não está acontecendo.
Um bom conhecimento do seu sistema, sua distro e seu ambiente de trabalho ajudarão, então, se isso for reconfortante, as coisas parecerão cada vez mais previsíveis à medida que você passa tempo no mundo linux.
Um caso especial: Autotools
À medida que os projetos crescem, eles precisam fornecer maneiras fáceis de passar do código-fonte para o binário e para a instalação completa no sistema. É por isso que eles são fornecidos com um sistema de criação incorporado, uma coleção de scripts para fazer o necessário.
No mundo do Linux / Código Aberto / Software Livre, um sistema de construção tem uma adoção mais ampla: GNU Autotools . Se você já lidou com um pacote fonte (n aberto), há uma grande chance de usar o Autotools.
No caso mais simples, veja como instalar um aplicativo empacotado com autotools:
-
./configure
: Um script que irá gerar os Makefiles correspondentes ao seu sistema (ele também verifica frequentemente a disponibilidade de dependências). -
make
: Compilando o código fonte de acordo com os Makefiles gerados anteriormente. -
make install
: copia os binários para os locais apropriados, cria links simbólicos e qualquer outra etapa definida pelo desenvolvedor.
Notas
-
Os scripts
configure
geralmente têm muitas opções, como qual compilador usar ou como definir o diretório de destino. Se você precisa de flexibilidade, vale a pena olhar para./configure --help
. - Mesmo se tiver certeza de que é o Autotools e você o conhece muito bem, sempre comece lendo os documentos (README, INSTALL, ...)
Responda à atualização na pergunta
O que você está pedindo não tem uma resposta definitiva. Todos aqui podem ter uma opinião sobre o que constitui "boa prática", mas no final do dia, só você pode encontrar o que funciona para você . Se houvesse uma resposta fácil, você não estaria fazendo a pergunta. Sua distro teria respondido por você.
Dito isto, aqui estão algumas observações pessoais.
-
No meu sistema, eu reservo
/usr/local/bin
para os pacotes instalados pelo meu gerenciador de pacotes. Tudo que eu compilar / instalar manualmente entra em/opt
. Este é um detalhe, mas ajuda a evitar grandes dores de cabeça ao lidar com várias versões do mesmo programa. -
xxx.desktop
e problemas de GUI em geral são específicos do ambiente de área de trabalho que você está usando. Se funciona para o seu sistema, ótimo. Mas não pode ser generalizado para todos os ambientes disponíveis no Unix. -
/usr/local/bin
tem a vantagem de já estar em seu PATH . Se você quiser usar outro diretório (como/opt
como eu sugiro), certifique-se de incluí-lo no seu PATH. Se você não sabe como fazê-lo, abra um terminal e execute o seguinte em um terminal (não a maneira mais bonita de fazê-lo, mas sem saber nada sobre o seu sistema, não posso sugerir mais nada):echo 'export PATH=$PATH:/opt' >> ~/.bashrc