Qual é a diferença entre copiar um arquivo a.out (arquivo executável) e instalar um aplicativo? [fechadas]

0

Qual é a diferença entre instalar um software aplicativo e copiar o arquivo executável (ex: a.out) do aplicativo? Quando executamos o arquivo a.out, isso dá algum resultado, executar o aplicativo que está instalado também dá algum resultado. Eu não entendo a diferença quando alguém diz "Instalando um aplicativo" e copiando um arquivo executável. O que realmente acontece quando um aplicativo é instalado? Como é diferente de apenas copiar o executável de um computador para outro (mesmo sistema operacional e hardware similar) e executá-lo lá?

    
por Charan K 10.02.2018 / 11:57

2 respostas

1

Bem, ao dizer instalando um aplicativo, isso normalmente significa que você usa um gerenciador de pacotes como dpkg ou a família apt de nível superior. Nesse caso, os executáveis são enviados em um pacote que também pode conter bibliotecas adicionais necessárias para executar o executável, manpages, arquivos de desenvolvedor, arquivos de configuração, etc. A vantagem disso é que o administrador pode acompanhar o que está instalado e também garante que, ao instalar novos softwares ou atualizações, o novo software não entre em conflito com outros softwares e bibliotecas já instalados, o que poderia levar a falhas em outros aplicativos.

Assim, embora possa funcionar apenas copiar o seu executável para outro sistema, ele não é recomendado, pois pode quebrar as coisas. É seguro copiar executáveis para algum lugar fora dos caminhos do sistema, como /bin/ , /sbin , /usr/bin , /usr/sbin .
Você poderia usar /usr/local/bin e /usr/local/sbin para tal propósito ou, melhor ainda, criar um diretório abaixo de /opt para o seu executável e colocá-lo lá. Em seguida, chame o executável com o caminho completo ou adicione o caminho do executável à variável de ambiente PATH .

$ mkdir -p /opt/myapp/bin
$ cp myexec /opt/myapp/bin/
$ /opt/myapp/bin/myexec

ou

$ export PATH=$PATH:/opt/myapp/bin
$ myexec
    
por Thomas 10.02.2018 / 12:16
0

Um princípio básico de todos os sistemas operacionais do tipo Unix (como o Ubuntu) é tudo é um arquivo . Se você olhar o conteúdo de um pacote, também encontrará um arquivo executável e, sim, para duas máquinas com a mesma combinação exata (ou pelo menos muito similar) de software e hardware (platform ), você pode simplesmente usar o seu executável. Mas a maioria dos programas não consiste em apenas um executável. Executar ls -R /usr |grep libreoffice para um exemplo de um pacote mais complexo, você não gostaria de copiar manualmente todos esses arquivos em seus locais individuais, não é?

Embora em alguns casos (especialmente ao testar programas pequenos) faça sentido apenas enviar a alguém um executável que ele possa executar, você quase sempre desejará fornecer um pacote para um produto finalizado.

Os gerenciadores de pacotes geralmente também cuidam da instalação de dependências, adicionando seu programa à lista de aplicativos instalados e PATH, e por último, mas não menos importante, fornecem uma opção para atualizar o programa quando uma nova versão é lançada.

    
por NeoTheThird 10.02.2018 / 12:23