Почему при установке 32-битного пакета удаляются 64-битные пакеты?

Мне не ясно, почему установка 32-битного пакета потребовала бы удаления 64-битного пакета.

Например, если я пытаюсь установить 32-битный пакет разработки libcurl, apt-get указывает, что он удалит несколько 64-битных пакетов, включая gcc !

$ sudo apt-get install libcurl4-openssl-dev:i386
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages were automatically installed and are no longer required:
  g++-4.8 gcc-4.8 libasan0 libasan0:i386 libatomic1 libatomic1:i386 libc6-dev
  libcloog-isl4:i386 libgcc-4.8-dev libgcc-4.8-dev:i386 libgmp10:i386 libgomp1
  libgomp1:i386 libisl10:i386 libitm1 libitm1:i386 libmpc3:i386 libmpfr4:i386
  libquadmath0 libquadmath0:i386 libstdc++-4.8-dev libtsan0 linux-libc-dev
Use 'apt-get autoremove' to remove them.
The following extra packages will be installed:
  comerr-dev:i386 gcc-4.8-base:i386 gcc-4.9-base:i386 krb5-multidev:i386
  libasn1-8-heimdal:i386 libc6:i386 libc6-dev:i386 libcomerr2:i386
  libcurl3:i386 libdb5.3:i386 libffi6:i386 libgcc1:i386 libgcrypt11:i386
  libgcrypt11-dev:i386 libgnutls-dev:i386 libgnutls-openssl27:i386
  libgnutls26:i386 libgnutlsxx27:i386 libgpg-error-dev:i386 libgpg-error0:i386
  libgssapi-krb5-2:i386 libgssapi3-heimdal:i386 libgssrpc4:i386
  libhcrypto4-heimdal:i386 libheimbase1-heimdal:i386 libheimntlm0-heimdal:i386
  libhx509-5-heimdal:i386 libidn11:i386 libidn11-dev:i386 libk5crypto3:i386
  libkadm5clnt-mit9:i386 libkadm5srv-mit9:i386 libkdb5-7:i386
  libkeyutils1:i386 libkrb5-26-heimdal:i386 libkrb5-3:i386 libkrb5-dev:i386
  libkrb5support0:i386 libldap-2.4-2 libldap-2.4-2:i386 libldap2-dev:i386
  libp11-kit-dev:i386 libp11-kit0:i386 libroken18-heimdal:i386
  librtmp-dev:i386 librtmp0:i386 libsasl2-2:i386 libsasl2-modules:i386
  libsasl2-modules-db:i386 libsqlite3-0:i386 libssl-dev:i386 libssl1.0.0:i386
  libstdc++6:i386 libtasn1-6:i386 libtasn1-6-dev:i386 libwind0-heimdal:i386
  linux-libc-dev:i386 pkg-config zlib1g:i386 zlib1g-dev:i386
Suggested packages:
  doc-base:i386 krb5-doc:i386 glibc-doc:i386 locales:i386 manpages-dev:i386
  libcurl4-doc:i386 libcurl3-dbg:i386 rng-tools:i386 libgcrypt11-doc:i386
  gnutls26-doc:i386 gnutls-bin:i386 krb5-user:i386 libsasl2-modules-otp:i386
  libsasl2-modules-ldap:i386 libsasl2-modules-sql:i386
  libsasl2-modules-gssapi-mit:i386 libsasl2-modules-gssapi-heimdal:i386
Recommended packages:
  gcc:i386 c-compiler:i386 libssl-doc:i386
The following packages will be REMOVED:
  cpp g++ gcc
The following NEW packages will be installed:
  comerr-dev:i386 gcc-4.8-base:i386 gcc-4.9-base:i386 krb5-multidev:i386
  libasn1-8-heimdal:i386 libc6:i386 libc6-dev:i386 libcomerr2:i386
  libcurl3:i386 libcurl4-openssl-dev:i386 libdb5.3:i386 libffi6:i386
  libgcc1:i386 libgcrypt11:i386 libgcrypt11-dev:i386 libgnutls-dev:i386
  libgnutls-openssl27:i386 libgnutls26:i386 libgnutlsxx27:i386
  libgpg-error-dev:i386 libgpg-error0:i386 libgssapi-krb5-2:i386
  libgssapi3-heimdal:i386 libgssrpc4:i386 libhcrypto4-heimdal:i386
  libheimbase1-heimdal:i386 libheimntlm0-heimdal:i386 libhx509-5-heimdal:i386
  libidn11:i386 libidn11-dev:i386 libk5crypto3:i386 libkadm5clnt-mit9:i386
  libkadm5srv-mit9:i386 libkdb5-7:i386 libkeyutils1:i386
  libkrb5-26-heimdal:i386 libkrb5-3:i386 libkrb5-dev:i386 libkrb5support0:i386
  libldap-2.4-2:i386 libldap2-dev:i386 libp11-kit-dev:i386 libp11-kit0:i386
  libroken18-heimdal:i386 librtmp-dev:i386 librtmp0:i386 libsasl2-2:i386
  libsasl2-modules:i386 libsasl2-modules-db:i386 libsqlite3-0:i386
  libssl-dev:i386 libssl1.0.0:i386 libstdc++6:i386 libtasn1-6:i386
  libtasn1-6-dev:i386 libwind0-heimdal:i386 linux-libc-dev:i386 pkg-config
  zlib1g:i386 zlib1g-dev:i386
The following packages will be upgraded:
  libldap-2.4-2
1 upgraded, 60 newly installed, 3 to remove and 28 not upgraded.
Need to get 15.1 MB of archives.
After this operation, 54.8 MB of additional disk space will be used.
Do you want to continue? [Y/n] n
Abort.

Похоже, что поддержка мультиархии включена:

$ dpkg --print-foreign-architectures
i386

Мне нужно использовать как 64-битные, так и 32-битные пакеты в одной коробке разработки. Я считаю, что это должно быть тривиально. Что я недопонимаю? Что мне нужно сделать, чтобы установить 32-разрядные пакеты без удаления критических 64-разрядных пакетов?

2
задан 1 June 2015 в 08:17

1 ответ

Не устанавливайте 32-разрядный *-dev пакеты. dev являются почти всегда просто заголовочными файлами. И заголовочные файлы являются почти всегда тем же для всей архитектуры.

Просто устанавливают 32-разрядные библиотеки. В данном случае это - libcurl3.

0
ответ дан 1 June 2015 в 08:17

Другие вопросы по тегам:

Похожие вопросы: