Por que instalar um pacote de 32 bits em um sistema de 64 bits avisa sobre a remoção de pacotes críticos de 64 bits?

3

Quando tento instalar uma biblioteca de 32 bits apt-get install liblua5.2:i386 apt avisa que vai desinstalar alguns pacotes essenciais de 64 bits. Alguns deles estão sendo substituídos por versões de 32 bits, mas outros não serão substituídos.

Os pacotes de 32 e 64 bits não devem funcionar lado a lado? O sistema é o Ubuntu 14.04 de 64 bits e pacotes essenciais como o kde-plasma-desktop, o kde-workspace, o build-essential, o gcc-4.8 etc, estão programados para remoção.

Isso é uma falha no design do pacote e seus dependentes.

The following packages will be REMOVED
  build-essential cpp cpp-4.8 g++ g++-4.8 gcc gcc-4.8 gcc-4.8-multilib
  gcc-multilib kde-plasma-desktop kde-workspace kde-workspace-bin libbonobo2-0
  libbonoboui2-0 libgnome2-0 libgnome2-bin libgnome2-perl libgnomeui-0
  libidl-common libidl0 liblua5.2-rrd-dev liblua5.2-rrd0 liborbit2 librrd4
  libtool php5-dev shutter x11-apps x11-session-utils x11-xserver-utils

A saída completa:

The following extra packages will be installed:
  gcc-4.8-base gcc-4.8-base:i386 lib32asan0 lib32atomic1 lib32gcc-4.8-dev
  lib32gomp1 lib32itm1 lib32quadmath0 libasan0 libatomic1 libc6-dev:i386
  libdbi1:i386 libgcc-4.8-dev libgfortran3 libgomp1 libitm1 libquadmath0
  libreadline-dev:i386 libreadline6-dev:i386 librrd4:i386 libstdc++-4.8-dev
  libstdc++6 libstdc++6:i386 libtinfo-dev:i386 libtsan0 libx32asan0
  libx32atomic1 libx32gcc-4.8-dev libx32gomp1 libx32itm1 libx32quadmath0
  linux-libc-dev linux-libc-dev:i386
Suggested packages:
  glibc-doc:i386 manpages-dev:i386 libstdc++-4.8-doc
Recommended packages:
  gcc:i386 c-compiler:i386 ttf-dejavu:i386 ttf-bitstream-vera:i386
The following packages will be REMOVED
  build-essential cpp cpp-4.8 g++ g++-4.8 gcc gcc-4.8 gcc-4.8-multilib
  gcc-multilib kde-plasma-desktop kde-workspace kde-workspace-bin libbonobo2-0
  libbonoboui2-0 libgnome2-0 libgnome2-bin libgnome2-perl libgnomeui-0
  libidl-common libidl0 liblua5.2-rrd-dev liblua5.2-rrd0 liborbit2 librrd4
  libtool php5-dev shutter x11-apps x11-session-utils x11-xserver-utils
The following NEW packages will be installed
  libc6-dev:i386 libdbi1:i386 liblua5.2-0:i386 liblua5.2-0-dbg:i386
  liblua5.2-dev:i386 liblua5.2-rrd-dev:i386 liblua5.2-rrd0:i386
  libreadline-dev:i386 libreadline6-dev:i386 librrd4:i386 libtinfo-dev:i386
  linux-libc-dev:i386
The following packages will be upgraded:
  gcc-4.8-base gcc-4.8-base:i386 lib32asan0 lib32atomic1 lib32gcc-4.8-dev
  lib32gomp1 lib32itm1 lib32quadmath0 libasan0 libatomic1 libgcc-4.8-dev
  libgfortran3 libgomp1 libitm1 libquadmath0 libstdc++-4.8-dev libstdc++6
  libstdc++6:i386 libtsan0 libx32asan0 libx32atomic1 libx32gcc-4.8-dev
  libx32gomp1 libx32itm1 libx32quadmath0 linux-libc-dev
26 to upgrade, 12 to newly install, 30 to remove and 316 not to upgrade.
Need to get 12.1 MB of archives.
After this operation, 73.3 MB disk space will be freed.
Do you want to continue? [Y/n] 
    
por vfclists 25.06.2015 / 21:21

1 resposta

4

Experimente apt-get install liblua5.2-0:i386 ; não há liblua5.2 package, por isso apt-get install liblua5.2:i386 está tentando instalar liblua5.2-dev:i386 , liblua5.2-0-dbg:i386 e liblua5.2-0:i386 . O pacote -dev é o causador das remoções.

A extensão de pesquisa acontece porque o nome do pacote fornecido contém . ; do manual de apt-get :

If no package matches the given expression and the expression contains one of '.', '?' or '*' then it is assumed to be a POSIX regular expression, and it is applied to all package names in the database. Any matches are then installed (or removed). Note that matching is done by substring so 'lo.*' matches 'how-lo' and 'lowest'. If this is undesired, anchor the regular expression with a '^' or '$' character, or create a more specific regular expression.

Assim, você pode evitar isso executando

apt-get install ^liblua5.2:i386$

(que falha corretamente). A regra é generalizável aparentemente; pelo que eu vi apt-get tenta usar o nome do pacote como um regex se ele não corresponder exatamente ao nome do pacote, mesmo que a expressão não contenha . , ? ou * .

    
por 25.06.2015 / 22:52

Tags