No Windows, principalmente nas versões mais antigas, era comum os programas armazenarem arquivos de configuração e dados não constantes em seus C:\Program Filesdiretórios. Isso é derivado de como os programas eram geralmente instalados e executados no DOS de usuário único, sem rede e sem permissão de arquivo.
Do ponto de vista da segurança, essa é uma má ideia. Locais onde o código executável reside devem ser separados dos dados modificáveis. Dessa forma, é mais fácil aplicar permissões de arquivo apropriadas para impedir a modificação de binários instalados por usuários não autorizados. Da mesma forma, os diretórios da biblioteca que podem ser atualizados separadamente dos principais executáveis também devem estar em um diretório separado.
Com o advento dos aborrecimentos do Vista e do UAC, essa tradição está finalmente começando a perder seriamente a tração.
O UNIX e o Linux, sendo um sistema multiusuário desde muito cedo, tinham a tendência de separar diretórios executáveis de outros diretórios muito antes, pois havia a necessidade de impedir que outros usuários, além do root, modificassem os binários instalados. Também é por isso que, /usre /sbinàs vezes até são, partições separadas - um administrador particularmente consciente da segurança pode montar essas partições somente leitura e remontá-las para leitura / gravação quando uma instalação / desinstalação precisar acontecer.
Os pacotes geralmente são instalados a partir de um gerenciador de pacotes. Existem vários gerenciadores de pacotes, como aptitude(Debian e distribuições derivadas), yum(Redhat e distribuições derivadas), pacman(esqueça que distribuição é essa ...) e outros.
O gerenciador de pacotes permite procurar repositórios, baixar, instalar, consultar e remover software, como uma sofisticada (e gratuita) "loja de aplicativos". Ele assume a responsabilidade de garantir que as dependências sejam atendidas e rastrear o que está instalado no momento.
Normalmente, o gerenciador de pacotes também permitirá as mesmas operações em um pacote baixado manualmente fora de qualquer repositório. As ferramentas também estão disponíveis se você quiser criar o seu próprio a partir do software que você criou ou compilou.
Como o pacote em si NÃO é um arquivo executável, você não precisa executar um executável não confiável, o que realmente não sabe o que faz. (O Windows finalmente está disponibilizando atualizações distribuindo .msu's em vez de .exe' - mas .msijá existem há algum tempo ...)
rpm, você poderárpm -q --whatprovidesencontrar o nome do pacote para um arquivo específico e, em seguida,rpm -q -adescobrir quais arquivos o pacote instalou.