Por que o Linux possui tantos problemas de dependência ao instalar o software, enquanto o Windows não o faz com exceção de alguns, como o VC ++? [fechadas]

1

Sou usuário do Windows e também preciso usar muito as distribuições do Linux para o trabalho. A instalação do software tem sido tão difícil, com toda a dependência ausente / versão não atualizada / versão de distro do SO incomparável.

Não que eu não aprecie as coisas boas sobre o Linux. Eu só quero saber o motivo. Como o Windows está lidando com isso? É porque o instalador de gordura do Windows agrupa todas as dependências com ele?

Para ser específico, vamos levar o Ubuntu e o apt. Toda vez que o sistema operacional é atualizado, por exemplo preciso para fiel, dependências quebram. E a solução alternativa muitas vezes é apenas continuar usando a versão antiga. É claro que os desenvolvedores devem testar e certificar-se de que são compatíveis com a nova versão do sistema operacional e marcar como no repositório.

    
por Boyang 23.02.2016 / 18:21

1 resposta

6

A resposta curta é que os instaladores do Windows geralmente incluem todas as bibliotecas necessárias como DLLs, que geralmente são instaladas no mesmo diretório que o aplicativo e geralmente só podem ser usadas por um único aplicativo. Isso significa que, se você tiver dois ou três produtos Windows que usam a mesma biblioteca de origem (por exemplo, uma biblioteca de compactação ou um elemento GUI), todos eles terão as mesmas DLLs instaladas, possivelmente em versões diferentes.

Isso causa inchaço e pode levar a vulnerabilidades de segurança, pois correções podem não ser aplicadas de maneira consistente a todas as cópias instaladas da mesma biblioteca.

Algumas bibliotecas compartilhadas existem (obviamente, as bibliotecas fornecidas pelo sistema operacional são incluídas). Nesse caso, é necessário garantir que você as tenha instalado e não há uma solução simples do Windows integrada para isso (geralmente é executada pelos próprios instaladores) .

As distribuições modernas do Linux vêm com gerenciadores de pacotes que devem manipular dependências para quaisquer aplicativos no repositório da distribuição. Essa é a maior parte do trabalho de empacotar uma distribuição (juntamente com elementos de personalização para fornecer consistência). Por exemplo, apt lida com dependências no Debian, então você não precisa se preocupar, assim como você está instalando a partir do repositório Debian.

Se você estiver baixando e instalando seus próprios pacotes ou compilando a partir do código-fonte, então sim, você precisará gerenciar as dependências por conta própria.

    
por 23.02.2016 / 19:54