Por que tenho o mesmo pacote instalado para as duas arquiteturas?

1

Eu tenho mais de 1400 pacotes APT instalados que especificam sua arquitetura como amd64. Em torno de 180 são i386. Pelo menos alguns dos pacotes i386 também têm suas contrapartes amd64 instaladas.

Eu assumi que apenas os pacotes amd64 seriam instalados em uma máquina de 64 bits. Por que tenho alguns pacotes i386 instalados?

E, para pontos de bônus, como o APT lida com o mesmo pacote em duas arquiteturas? Tem alguma maneira de conhecer as instâncias exatas onde deve instalar os dois?

FYI, aprendi tudo sobre o estado dos pacotes instalados no meu arquivo de status do APT.

    
por mac9416 03.06.2017 / 01:35

2 respostas

1

Todos os pacotes em um sistema amd64 Ubuntu instalado são amd64, a menos que seja explicitamente especificado.

Os pacotes listados como *-i386 são pacotes de compatibilidade para a arquitetura amd64 , que geralmente são necessários como uma dependência para um pacote instalado.

Dessa forma, você pode instalar um pacote disponível para a arquitetura amd64 (a versão amd64 de um pacote i386 ) que foi escrito para i386 sem precisar "adicionar" este " foreign-architecture ".

No entanto, se um pacote estiver listado como *:i386 , será um pacote i386 .

Certos pacotes estão disponíveis apenas como versão i386. Isso parece ser mais comum com pacotes proprietários e, portanto, o vinho é muitas vezes um problema, pois todos sabemos como o Windows não executa muitas coisas sem o diretório x86 (32 bits).

Com isso dito, acredito que a arquitetura externa do i386 está habilitada por padrão nas versões mais recentes do Ubuntu.

Você pode remover as versões i386 de todos os pacotes do seu sistema, embora você deva fazer isso com cuidado, pois isso pode causar problemas de compatibilidade com aplicativos como o Wine.

No entanto, tenha certeza de que o Ubuntu e o apt sempre usarão como padrão e instalarão a versão amd64 de um pacote sobre a versão i386 (exceto para o Wine). Normalmente, você deve especificar a versão i386 e, se nenhum arco for especificado, o sistema quase sempre instalará e usará a versão amd64 se estiver disponível e / ou instalado.

    
por mchid 03.06.2017 / 01:54
2

Os pacotes i386 estão instalados no sistema amd64 porque os programas i386 não podem usar amd64 libraries.

É assim que amd64 computers podem executar i386 programs & amp; programas amd64 . Se um programa amd64 solicitar para libxml2 , a versão amd64 de libxml2 será chamada. Se um programa i386 solicitar para libxml2 e receber a versão amd64 , eles não serão compatíveis. Em vez disso, ele receberá a versão i386 de libxml2 .

Portanto, o motivo pelo qual os pacotes i386 e amd64 estão instalados é para i386 suporte de programa em amd64 systems.

    
por Modelmat 03.06.2017 / 01:55