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

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

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 ele dá algum resultado, executar o aplicativo que está instalado também dá algum resultado. 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? Qual a diferença de apenas copiar o executável de um computador para outro (mesmo sistema operacional e hardware semelhante) e executá-lo lá?

Responder1

Bem, ao dizerinstalandoum aplicativo, isso normalmente significa que você usa um gerenciador de pacotes como dpkgou da aptfamília de nível superior. Neste caso, os executáveis ​​são enviados em um pacote que também pode conter bibliotecas adicionais necessárias para executar o executável, páginas de manual, arquivos de desenvolvedor, arquivos de configuração, etc. 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 pode levar à falha de outros aplicativos.

Portanto, embora possa funcionar apenas copiar seu executável para outro sistema, 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/bine /usr/local/sbinpara esse propósito ou, melhor ainda, criar um diretório abaixo /optpara 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 à sua PATHvariável de ambiente.

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

$ /opt/myapp/bin/myexec

ou

$ export PATH=$PATH:/opt/myapp/bin
$ myexec

Responder2

Um princípio fundamental 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 lá, e sim, para duas máquinas com exatamente a mesma (ou pelo menos muito semelhante) combinação de software e hardware (plataforma), você poderia simplesmente usar seu executável. Mas a maioria dos programas não consiste em apenas um executável. Execute ls -R /usr |grep libreofficeum exemplo de pacote mais complexo. Você não gostaria de copiar todos esses arquivos em seus locais individuais manualmente agora, 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, quase sempre você desejará fornecer um pacote para um produto acabado.

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 for lançada.

informação relacionada