2

To run crossover i need to install libnss-mdns:i386, but this depends on base-files:i386.

When i ran apt-get install base-files:i386 it outputs this:

root@ntrnnr17:/home/username# apt-get install base-files:i386
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages will be REMOVED:
  base-files bash bash-completion build-essential dpkg-dev heirloom-mailx libextutils-pkgconfig-perl
  libglib-object-introspection-perl libnss-mdns nvidia-settings pkg-config rsync ubuntu-standard
The following NEW packages will be installed:
  base-files:i386
WARNING: The following essential packages will be removed.
This should NOT be done unless you know exactly what you are doing!
  base-files bash
0 upgraded, 1 newly installed, 13 to remove and 229 not upgraded.
Need to get 65,8 kB of archives.
After this operation, 10,2 MB disk space will be freed.
You are about to do something potentially harmful.
To continue type in the phrase 'Yes, do as I say!'
?] _

This is not the normal confirmation prompt i get, i have CTRL^C'd out of this.

I really want to use crossover, but not if installing a dependency kills my OS.
Is it safe?
Should i make backups of certain files prior to install?

btw, this person had the same issue.

x13
  • 129
  • 8

1 Answers1

2

The “Yes do as I say” prompt is shown when you try to remove a package that's marked “essential”. Its meaning is what it says on the tin — what you're trying to do could make your system unusable, and you should not continue unless you know exactly what you're doing. It's one of those cases where if you need to ask, don't do it.

I'm not sure what would go wrong here; the content of the base-files package is almost identical between architectures. However I expect a slew of broken dependencies if the native base-files package is missing, completely breaking package management in practice.

I don't know why libnss-mdns insists on having the base-files package for the same architecture. Most libraries don't depend on having same-architecture packages except for other libraries. It's possible that forcing dependencies would work, however forcing dependencies has a tendency of confusing APT, so I don't recommend doing this.

The path of least resistance is to install a 32-bit system alongside your 64-bit system. Running 32-bit applications and 64-bit applications on the same installation is easy, what's difficult is to mix the installations. So install a 32-bit distribution in a chroot; you'll then effectively have 32-bit applications alongside 64-bit applications, sharing the same home directory. The key to making this easy is schroot. To set this up, follow my guide. Once you've done the installation, run schroot -c jessie32 (jessie32 being the name you picked for the chroot) and you'll get a command prompt with your usual home directory, but the root directory pointing to the 32-bit installation.

  • If i were to force install it, how bad is that for my system? I would like to refrain from using chroot because i want crossover to run without opening the terminal every time. – x13 Feb 03 '16 at 07:02
  • 1
    @ThisNameBetterBeAvailable, apt-get tells you exactly what the impact of forcing the installation would be; in the list of packages to be removed, the only two that worry me are bash and ubuntu-standard. The former can easily be fixed by installing bash:i386, I don't know about the latter. In any case you should be able to revert such an installation by removing libnss-mdns:i386 and re-installing bash:amd64 and base-files:amd64. But you're wondering into unsupported territory here... – Stephen Kitt Feb 03 '16 at 09:30
  • @StephenKitt i forced the install using this method, i will test it soon but crossoverappears to work for now. Edit: i can't install any new packages using apt, even ones that don't depend on base-files:i386. – x13 Feb 03 '16 at 11:08
  • @ThisNameBetterBeAvailable Using chroot doesn't require opening a terminal. You can put a wrapper script around a command, or invoke schroot -c jessie32 crossover instead of crossover. – Gilles 'SO- stop being evil' Feb 03 '16 at 12:42
  • Actually I got that the wrong way round, since 7.1 (Wheezy) base-files is Multi-Arch: foreign which allows it to satisfy dependencies for any architecture. In Ubuntu that corresponds to 14.10; what version are you using? – Stephen Kitt Feb 03 '16 at 13:06
  • @StephenKitt Wily Werewolf – x13 Feb 04 '16 at 13:49
  • @ThisNameBetterBeAvailable what happens if you run apt-get install libnss-mdns:i386 instead of installing base-files:i386? – Stephen Kitt Feb 04 '16 at 13:58
  • @StephenKitt It complains about missing base-files:i386 and exits – x13 Feb 04 '16 at 15:46