Estou usando Ubuntu, e instalar pacotes através dos repositórios é fácil, o APT faz tudo para você, mas às vezes preciso instalar algo pela internet.
99% das vezes, esses pacotes são tarballs. Tudo o que li me diz para executar configure, make e make install para construir depois de extrair o arquivo com o gerenciador de arquivos ou com o próprio comando tar.
No entanto, tudo o que baixei até agora não possui um script de configuração escrito para ele. Ou pelo menos parece que sim.
Por exemplo, acabei de baixar o JRE do site do Java, na esperança de poder usar o plug-in do navegador. Mas as instruções de download cobrem apenas a descompactação dos arquivos e a criação de um link simbólico para que você possa acessar o plug-in.
Então, agora tenho esse arquivo gigante no meu diretório/opt. Aqui está o conteúdo:
Para mim, parece que bin, lib etc deveriam estar em diretórios diferentes. Isso é verdade ou não?
Eu tenho a mesma situação com praticamente todos os tarballs que baixei. Este não se aplica, mas para outros arquivos gostaria de disponibilizar o programa como um link na minha área de trabalho. Mas, novamente, as instruções de instalação cobrem apenas a descompactação e me deixam com um único diretório, como o acima.
Preciso apenas criar links para o arquivo apropriado na pasta da minha área de trabalho, se quiser o ícone?
Devo apenas presumir que os arquivos que precisam ser configurados posteriormente mencionarão isso nas instruções de instalação ou virão com um script de configuração?
EDITAR: Sei que o JRE está disponível nos Repositórios, mas exemplifica o problema, então por favor olhe a pergunta geral, não apenas a parte sobre o JRE.
Responder1
É útil entender quando você usa um tarball simples e quando você compila (e o que tudo faz)
O script configure é para software que você compila e pode ter opções de compilação envolvendo bibliotecas adicionais ou a opção de selecionar um prefixo. Ele também garante que você tenha tudo o que precisa para realmente compilar o script e gerar um makefile. make usa o makefile para compilar o programa.Tradicionalmentemake install copia o programa compilado e os arquivos associados para o lugar certo, mas eu uso checkinstall, que cria um deb e o instala. Isso também permite compartilhar bibliotecas e outras coisas interessantes. Um 'deb' ou 'RPM' é simplesmente um software compilado para uma distribuição e versão específicas com um conjunto sensato de configurações e o conhecimento de que você pode obter bibliotecas e dependências compartilhadas necessárias automaticamente
Se você já o compilou e não há opções, e está executando o software como um usuário comum, você pode empacotar tudo, compilado estaticamente. É o equivalente Linux do software 'portátil' (no sentido do pendrive, não no sentido de escrever uma vez, compilar em quase qualquer lugar). Ele pressupõe que seu usuário não precisa de opções adicionais e que tudo funciona (ou você está com preguiça de empacotá-lo corretamente. Isso acontece.
Embora o HFS seja obrigatório para usuários do Unix, nem todo mundo respeita isso. NissoespecíficoNesse caso, suspeito que esse estilo de empacotamento permite o uso simples de caminhos de arquivos relativos, instalações lado a lado de diferentes versões de Java, usando o prefixo JAVA_HOME e coisas assim. É totalmente intencional.