Hallo Zusammen,
ich habe gerade ein Problem mit dem Paketmanager. Es scheint einer Art
"zirkuläre Abhängigkeit" zu geben, die ich nicht lösen kann.
Ich will das Paket gr-iio entfernen und neu installieren. Es scheint
aber verschiedene Versionen von libii0 zu geben, die sich irgendwie
stören. Hat jemand einen Lösungsvorschlag?. Normalerweise verwende ich
"synaptic". Das Paket libiio0 hatte ich aber irgendwann zuvor als *.deb
Paket installiert.
1
chris:~$ sudo apt-get remove gr-iio
2
Paketlisten werden gelesen... Fertig
3
Abhängigkeitsbaum wird aufgebaut.
4
Statusinformationen werden eingelesen.... Fertig
5
Probieren Sie »apt --fix-broken install«, um dies zu korrigieren.
6
Die folgenden Pakete haben unerfüllte Abhängigkeiten:
7
libad9361-0 : Hängt ab von: libiio0 soll aber nicht installiert werden
8
libgnuradio-iio1 : Hängt ab von: libiio0 (>= 0.18) soll aber nicht installiert werden
9
E: Unerfüllte Abhängigkeiten. Versuchen Sie »apt --fix-broken install« ohne Angabe eines Pakets (oder geben Sie eine Lösung an).
Vermutlich wirst Du da etwas tiefer in den Innereien recherchieren
müssen:
https://itsfoss.com/check-dependencies-package-ubuntu/
Etwas mehr Infos bringt auch dieses Befehlsbeispiel zum Vorschein:
apt-cache policy libc6
Martin B. (martin_b97)
>chris_ schrieb:>> apt --fix-broken install>Mal das probiert?
Ja, habe ich schon, aber er traut sich nicht, eine Library zu
überschreiben:
1
christoph:~$ sudo apt --fix-broken install
2
3
Paketlisten werden gelesen... Fertig
4
Abhängigkeitsbaum wird aufgebaut.
5
Statusinformationen werden eingelesen.... Fertig
6
Abhängigkeiten werden korrigiert ... Fertig
7
Die folgenden zusätzlichen Pakete werden installiert:
8
libiio0
9
Die folgenden NEUEN Pakete werden installiert:
10
libiio0
11
0 aktualisiert, 1 neu installiert, 0 zu entfernen und 0 nicht aktualisiert.
12
3 nicht vollständig installiert oder entfernt.
13
Es müssen noch 0 B von 45,5 kB an Archiven heruntergeladen werden.
14
Nach dieser Operation werden 138 kB Plattenplatz zusätzlich benutzt.
15
Möchten Sie fortfahren? [J/n] J
16
(Lese Datenbank ... 281632 Dateien und Verzeichnisse sind derzeit installiert.)
17
Vorbereitung zum Entpacken von .../libiio0_0.19-1_amd64.deb ...
18
Entpacken von libiio0:amd64 (0.19-1) ...
19
dpkg: Fehler beim Bearbeiten des Archivs /var/cache/apt/archives/libiio0_0.19-1_
20
amd64.deb (--unpack):
21
Versuch, »/usr/lib/x86_64-linux-gnu/libiio.so.0« zu überschreiben, welches auch
22
in Paket libiio 0.21.g565bf68 ist
23
Fehler traten auf beim Bearbeiten von:
24
/var/cache/apt/archives/libiio0_0.19-1_amd64.deb
25
E: Sub-process /usr/bin/dpkg returned an error code (1)
Dieter D. (Firma: Hobbytheoretiker)
>Etwas mehr Infos bringt auch dieses Befehlsbeispiel zum Vorschein:>apt-cache policy libc6
Hmm, tja ... jetzt wäre die Frage, wie ich das interpretieren muss:
Wie hast du gr-iio installiert, mit "dpkg -i <packetname>.deb"?
Heutzutage stattdessen immer "apt-get install ./<packetname>.deb"
nehmen, dann prüft es die Abhängigkeiten auch richtig.
Versuche mal, das halb installierte Zeugs auch zu deinstallieren:
Daniel A. schrieb:> Wie hast du gr-iio installiert, mit "dpkg -i <packetname>.deb"?> Heutzutage stattdessen immer "apt-get install ./<packetname>.deb"> nehmen, dann prüft es die Abhängigkeiten auch richtig.
Hmm. Was soll denn DAS heißen?!
Wir gehen davon aus folgendes wurde vorher erledigt:
sudo apt-get update und
sudo apt-get upgrade
Was noch zu probieren wäre:
dpkg-reconfigure all
Ganz normale Ausgabe, wenn es nach dem Paketmanager nicht installiert
sei:
apt-cache policy libiio0
libiio0:
Installed: (none)
Candidate: 0.16-1
Version table:
0.16-1 500
500 http://raspbian.raspberrypi.org/raspbian buster/main armhf
Packages
Egon D. schrieb:> Daniel A. schrieb:>>> Wie hast du gr-iio installiert, mit "dpkg -i <packetname>.deb"?>> Heutzutage stattdessen immer "apt-get install ./<packetname>.deb">> nehmen, dann prüft es die Abhängigkeiten auch richtig.>> Hmm. Was soll denn DAS heißen?!
"dpkg -i" ist ganz low level, es installiert einfach die Pakete, die man
ihm sagt, das es installieren soll, selbst wenn einige Abhängigkeiten
fehlen.
"apt-get install" hingegen, geht über den Paketmanager. Es schaut also
erst, welche anderen Pakete braucht es sonst noch, wovon ist es
abhängig, downloaded was fehlt, und installiert das dann alles in der
richtigen Reihenfolge (über dpkg -i). Das hilft zwar nicht um zu
verhindern, das Nichtdistributionspakete später mal Probleme machen
könnten, aber zumindest beim Installieren sollte danach erst mal alles
"sauber" sein. Ich glaube apt konnte das nicht immer. Früher nutzte ich
immer "dpkg -i", und dann "apt-get -f install" um das fehlende
Nachzuinstallieren, und hoffte, dass ich nichts gröber zerschossen habe.
Wobei, im Fall des TO hätte das wohl auch nichts gebracht. Das mit den
Dateien, die schon von einem anderen Paket bereitgestellt wird, prüft
APT idiotischerweise nicht im vornherein, sondern erst wenn es sie
erstellen will...
Deshalb würde ich all das zeug, das Probleme macht, einfach wieder weg
hauen, sofern noch möglich...
Daniel
>Wie hast du gr-iio installiert, mit "dpkg -i <packetname>.deb"?>Heutzutage stattdessen immer "apt-get install ./<packetname>.deb">nehmen, dann prüft es die Abhängigkeiten auch richtig.
Ich glaube, dass könnte das Problem sein: Ich habe es mit dpkg
installiert und jetzt kommt es in Konflikt mit dem Paketmanager weil er
es nicht richtig im Abhängigkeitsbaum hat.
>Versuche mal, das halb installierte Zeugs auch zu deinstallieren:>sudo apt-get purge --autoremove gr-iio libad9361-0 libgnuradio-iio1 libiio0
Bei der Zeile wird kein Fehler gemeldet. Wenn ich dann aber wieder
gr-iio installieren möchte, kommt die Fehlermeldung im Bild.
Daniel
>Deshalb würde ich all das zeug, das Probleme macht, einfach wieder weg>hauen, sofern noch möglich...
Die Frage ist, wie ich das Zeug weg kriege, sodass der Paketmanager
nicht meint, es wäre immer noch da. Sollte ich einfach im Verzeichnis
unten die Dateien manunell löschen?
Schau mal nach, ob da etwas unter "Pinned packages" steht.
$ apt-cache policy
Package files:
100 /var/lib/dpkg/status
release a=now
500 http://archive.raspberrypi.org/debian buster/main armhf Packages
...
Pinned packages:
Hier sind noch einige Tipps:
https://wiki.ubuntuusers.de/Paketverwaltung/Problembehebung/
Bei mir hatte ich mal alles so zerschossen, dass nur noch die harte Tour
half indem alles aus den caches gelöscht werden mußte, so dass apt-get
alle Abhängigkeiten erst wieder aufbauen mußte.
chris_ schrieb:> Daniel>>Deshalb würde ich all das zeug, das Probleme macht, einfach wieder weg>>hauen, sofern noch möglich...>> Die Frage ist, wie ich das Zeug weg kriege, sodass der Paketmanager> nicht meint, es wäre immer noch da. Sollte ich einfach im Verzeichnis> unten die Dateien manunell löschen?
Auf keinen Fall! Damit machst du deine Paketdatenbank noch mehr kaputt.
Und das Paket gilt immer noch als installiert.
Was du entfernen musst, sagt er doch:
chris_ schrieb:> Versuch, »/usr/lib/x86_64-linux-gnu/libiio.so.0« zu überschreiben,> welches auch in Paket libiio 0.21.g565bf68 ist
^^^^^^
Du willst also das Paket libiio0 installieren, hast aber schon ein Paket
libiio (man beachte: Ohne 0) installiert, das die gleiche Datei enthält.
Also muss zuerst libiio (und ggf. das, was davon abhängig ist)
deinstalliert werden.
Rolf M. (rmagnus)
>Du willst also das Paket libiio0 installieren, hast aber schon ein Paket>libiio (man beachte: Ohne 0) installiert, das die gleiche Datei enthält.>Also muss zuerst libiio (und ggf. das, was davon abhängig ist)>deinstalliert werden.
Danke für den Vorschlag. Das habe ich jetzt mal so gemacht
1
sudo dpkg -r libiio
und konnte es damit entfernen. Danach habe ich es mit "synaptic" mit der
Version aus dem Ubuntu Paketmanager installiert.
Jetzt scheint alles konsistent zu sein.
Allerdings funktioniert trotzdem nichts, weil die Version aus Ubuntu
20.04 die Version libiio 0.19 ist. Man scheint aber 0.21 zu brauchen.
Es scheint kein Ende zu nehmen: Das vorcompilierte *.deb file mit der
Version 0.21 scheint sich mit den Ubuntu Versionen 0.19 gebissen zu
haben.
Wenn ich es richtig verstehe, bleibt jetzt nur noch der Weg, alles mit
dem Paketmanager zu deinstallieren und die neuen Version auf dem Rechner
selbst zu kompilieren.
Da scheint beim Installieren ein Skript dabei gewesen zu sein das die
Library compelierte und installierte. Somit wäre diese nicht im dpkg
registriert.
Du könntest versuchen die 0.19er Version vielleicht so drüberzubügeln:
https://askubuntu.com/questions/138284/how-to-downgrade-a-package-via-apt-get
Oder versuchen das betreffende *.deb des Paketes im apt-cache
Verzeichnis mit dpkg manuell zu installieren.
chris_ schrieb:> und konnte es damit entfernen. Danach habe ich es mit "synaptic" mit der> Version aus dem Ubuntu Paketmanager installiert.> Jetzt scheint alles konsistent zu sein.> Allerdings funktioniert trotzdem nichts, weil die Version aus Ubuntu> 20.04 die Version libiio 0.19 ist. Man scheint aber 0.21 zu brauchen.
Was ist "man"? Was scheint das zu brauchen, und wie hast du das
installiert? Wo kommt es her?
> Es scheint kein Ende zu nehmen: Das vorcompilierte *.deb file mit der> Version 0.21 scheint sich mit den Ubuntu Versionen 0.19 gebissen zu> haben.
Ich habe den Überblick verloren. Du hast jetzt das aus dem Ubuntu-Repo
installiert, obwohl das die falsche Version ist? Du hast ein Paket, das
die richtige Version hast, und versuchst das nun gleichzeitig zu
installieren?
> Wenn ich es richtig verstehe, bleibt jetzt nur noch der Weg, alles mit> dem Paketmanager zu deinstallieren und die neuen Version auf dem Rechner> selbst zu kompilieren.
Wo hast du die Pakete, die du zu installieren versucht hast, eigentlich
her, und warum sind die nicht in einem Repository, wo die Abhängigkeiten
automatisch aufgelöst werden?
In focal, also Ubuntu 20.04 LTS ist das Paket libiio0 in Version 0.19.
Ubuntu 21.04 hat übrigens schon Version 0.21.
>Wo hast du die Pakete, die du zu installieren versucht hast, eigentlich>her, und warum sind die nicht in einem Repository, wo die Abhängigkeiten>automatisch aufgelöst werden?
Hier habe ich mal aufgeschrieben, was ich machen will:
Beitrag "Re: Adalm Pluto experiments"
Für Installation aus deb-Dateien mit apt, installiere Dir das Paket
apt-file:
apt-file - search for files within Debian packages (command-line
interface)