Linux Paketmanager Abhängigkeitsproblem

Gast #6716229
Lesenswert?

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).
Gast #6716323
Lesenswert?

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)
Gast #6716327
Lesenswert?

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:
1
christoph:~$ apt-cache policy libiio0
2
libiio0:
3
  Installiert:           (keine)
4
  Installationskandidat: 0.19-1
5
  Versionstabelle:
6
     0.19-1 500
7
        500 http://de.archive.ubuntu.com/ubuntu focal/universe amd64 Packages
#6716464
Lesenswert?

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:
1
sudo apt-get purge --autoremove gr-iio libad9361-0 libgnuradio-iio1 libiio0
(Firma: Hobbytheoretiker) #6716571
Lesenswert?

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
#6716599
Lesenswert?

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...
Gast #6716737
Lesenswert?

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.
Angehängte Dateien:
Gast #6716741
Lesenswert?

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?
1
christoph:/usr/lib/x86_64-linux-gnu$ ll libiio*
2
lrwxrwxrwx 1 root root     11 Jun 19  2020 libiio.so -> libiio.so.0
3
lrwxrwxrwx 1 root root     14 Jun 19  2020 libiio.so.0 -> libiio.so.0.21
4
-rw-r--r-- 1 root root 559664 Jun 19  2020 libiio.so.0.21
(Firma: Hobbytheoretiker) #6716742
Lesenswert?

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.
#6716751
Lesenswert?

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.
Gast #6716763
Lesenswert?

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.
(Firma: Hobbytheoretiker) #6716768
Lesenswert?

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.
#6716867
Lesenswert?

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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren