Ein trivial widersprüchliches Paket foo kann durch Ausführen dazu gebracht werden, mit bar zu arbeiten dpkg --force-conflicts -i foo
. Aber irgendwann ist es Zeit für ein Upgrade und 'apt-get'-Objekte:
% apt-get upgrade
Reading package lists... Done
Building dependency tree
Reading state information... Done
You might want to run 'apt-get -f install' to correct these.
The following packages have unmet dependencies:
foo : Conflicts: bar but 0.2-1 is installed
E: Unmet dependencies. Try using -f.
Kann apt-get optimiert / gezwungen werden, den (ziemlich festen) Konflikt zu tolerieren und dann zu aktualisieren?
(Quickie Existenzbeweis: uninstall foo , dann aktualisieren, installieren Sie dann foo wie vor Deshalb ist es. Ist möglich, ist die Frage nach dem geringsten Aufwand Mechanismus zu finden.)
Ein Beispiel, aber bei dieser Frage geht es nicht um zwei bestimmte Pakete.
Seit einigen Jahren hat GNU parallel einen trivialen Konflikt mit Moretutils ; jedes bietet / usr / bin / parallel . dpkg kann das Zusammenleben erzwingen:
# assume 'moreutils' is already installed, and 'parallel' is in
# apt's cache directory.
dpkg --force-conflicts -i /var/cache/apt/archives/parallel_20141022+ds1-1_all.deb
Dadurch wird eine Umleitung erstellt und die moreutils- Version in /usr/bin/parallel.moreutils umbenannt . Beide Programme funktionieren, bis der Benutzer ein Upgrade durchführt.
Ich habe eine -o- Option ausprobiert , aber das hat keinen Frieden gebracht:
apt-get -o Dpkg::Options::="--force-conflicts" install parallel moreutils
Mögliche -o Optionen sind jedoch Hunderte ...
dpkg
und apt
sind eindeutig unzufrieden mit der aktuellen Situation. Und die einzige Möglichkeit, Probleme zu beheben, besteht darin, nicht beide Pakete installiert zu haben. Dies ist kein guter Weg, um sie zu beruhigen, und der Versuch, dies zu tun, führt nirgendwo hin.
--forcing
Dinge sind im Allgemeinen eine schlechte Idee, wenn Sie nicht wissen, was Sie tun.