• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

APT/SYNAPTIC: Unterstrich '_' wird durch '%5f' ersetzt

Status
Für weitere Antworten geschlossen.

RGimbel

Newbie
Hallo !

Hat jemand von euch eine Idee zu folgendem Problem (ob es ein Problem von SYNAPTIC oder dem "darunterliegenden" APT ist, ist mir unklar):

Ich habe die Tage ein Update größeren Umfanges per SYNAPTICS bzw. APT durchgeführt. Dabei wurden verschiedene Pakete, in deren Namen ursprünglich ein Unterstrich '_' enthalten ist, dieser Unterstrich durch die Zeichenfolge '%5f' (= ASCII-Code von '_' ?) ersetzt.

Weiterhin kann ich mir ein Verhalten mit in '_' umgewandelten '.' festgestellt, das ich aber noch nicht genau benennen kann. Irgendwie sind '_' vor dem abschliessenden 'i586.rpm' aufgetaucht. An dieser Stelle sind doch sonst nur '.', oder ? An dieser Stelle kann ich jedoch einer Fehlinformation aufsitzen ...

Das Installieren der neuen Pakete nach dem Download wird mit einer Fehlermeldung bzgl. unsigned packages abgebrochen.

Betroffen sind u.a.:
- OpenOffice_org*-1.9.110-1.2.i586.rpm
- OpenOffice_org*-1.9.125-2.1.i586.rpm
- km_fglrx-8.14.13-0.1.i586.rpm

Es ist immer der erste Unterstrich durch %5f-Konstrukt ersetzt, d.h. weitere Unterstriche, z.B. der am Ende bleibt erhalten ...

Woran könnte dieses Verhalten liegen ? Auf den FTP-Servern ( ftp.gwdg.de, mirrors.mathematik.uni-bielefeld.de, ftp.rz.tu-bs.de ) kann ich an den Dateinamen keine Besonderheiten fest stellen ...

Ich habe auch schon versucht durch umstellen der Reihenfolge der ftp-Server das Problem einzugrenzen -- leider ohne Erfolg ...

Das händiche Installieren der heruntergeladenen Pakete in /var/cache/apt/archives scheint problemlos zu funktionieren.

Für sachdienliche Hinweise wäre ich euch dankbar !

Danke !

Gruß,
Reinhard.
 

oc2pus

Ultimate Guru
das hat so seine Richtigkeit.

Der apt-cache legt die Dateien nach einer bestimmten Namensgenerik ab.

Das passiert immer wenn ein Paketname einen "_" enthält. Zugegeben sieht komisch aus, ist aber so erforderlich :)
 
OP
R

RGimbel

Newbie
Diese Konvention hilft doch irgendwie nicht wirklich weiter, da die Installation der betroffenen Pakete auf Grund dieser Konvention nicht durchgeführt werden.

Irgendwie nicht ganz schlüssig ...

Letztendlch sollte apt/synaptic doch eine Erleichterung bringen. Wenn ich dann doch noch per Hand durch irgendwelche Repositories turnen muss, und anschliessend aufgrund nicht ganz nachvollziehbarer Konventionen Dateien umbenennen muss und von Hand installieren muss, dann ist an der Sache etwas faul, oder ?

Jetzt kommt doch hoffentlich nicht der oft zitierte Spruch "It's not a bug, it's a feature !" ...

Sorry,
Reinhard.
 

oc2pus

Ultimate Guru
Mooooment!!

du bist es der erst mal lesen sollte, unsignierte Pakete werden eben mal nicht on the flight installiert von apt. Das YaST macht das, eine sehr bedenkliche Sicherheitslücke ;)

Und wenn du meinst das du aus dem apt-cache Pakete via YaST oder rpm manuell installieren musst, bitte, es ist dein System.

Also lies dich erst mal ein, wie du das mit den Signaturen auf die Reihe bringst, dann sehen wir weiter. Dazu gibt es einen extra Thread hier im Forum.

Und bevor man keine Ahnung hat wie ein Tool arbeitet, sollte man sehr vorsichtig sein mit seinen Behauptungen ...
 
OP
R

RGimbel

Newbie
O.k., jetzt versuch' ich 'mal *etwas* zurück zu rudern ...

Ich habe die Fehlermeldungen in soweit interpretiert, dass die Signaturen auf Grund der fehlerhaften Nameskonstrukte ('_' wird bei einem Stringvergleich eben nicht als '%5f' durchgehen [oder umgekehrt]) entstanden sind. Ich gelobe Besserung und werde hier noch etwas weiterforschen.

Oc2pus, Du beisst Dich im Moment leider an der von mir zitierten Fehlermeldung fest, welche aus meiner Sicht die Namens-"Verfremdungen" nicht erklärt ...; Ich wollte diese Fehlermeldung nicht unterschlagen, sonst hätt' ich höchstwahrscheinlich einen auf den Deckel bekommen ...; Wie mann/frau es macht, macht mann/frau es verkehrt ...

Kommen wir zum -- aus meiner bescheidenen Sicht -- Kern des Problems:

Warum zum Teufel werden die von mir weiter obengenannten Dateien denn unter /var/cache/apt/archives nicht mit den gleichen Namen abgelegt, wie sie auf den Servern zufinden sind ? Hast Du -- oder ein anderer Mitleser -- ein schlüssige Erklärung ? Hier scheinen apt* und/oder synaptic noch eine Inkonsistenz oder Unschärfe zu haben. Dies lässt sich im ersten Ansatz nicht unbedingt zwingend mit

[zitat]
Der apt-cache legt die Dateien nach einer bestimmten Namensgenerik ab.

Das passiert immer wenn ein Paketname einen "_" enthält. Zugegeben sieht komisch aus, ist aber so erforderlich Smile
[/zitat]

erklären.

Hat ausser oc2pus jemand noch 'ne Idee ?

Gruß,
Reinhard.
 

Martin Breidenbach

Ultimate Guru
Du sollst im apt cache überhaupt nicht rumfummeln. Deswegen ist es egal wie apt die Dateien da ablegt. Wenn etwas im apt cache liegt kannst Du es mit apt install paketname ja installieren. Wenn es nicht im apt cache liegt dann wird es mit apt install paketname eben erst dahin runtergeladen und dann installiert. Wo ist da das Problem ?

Wenn ich dann doch noch per Hand durch irgendwelche Repositories turnen muss, und anschliessend aufgrund nicht ganz nachvollziehbarer Konventionen Dateien umbenennen muss und von Hand installieren muss, dann ist an der Sache etwas faul, oder ?

Äh... seit wann muß man das ? Und wozu ?

Ich gebe zu daß das erstmalige Erstellen der sources.list etwas Gehirnschmalz erfordert (weil man da die 'Gefährlichen' aussortieren sollte) aber danach funktioniert das doch fast automatisch.

Und das mit den Signaturen kann man abschalten.
 

oc2pus

Ultimate Guru
ei donnerlüttich ...

schau dir die Source-Codes von apt an ;)

apt nutzt eine bestimmte Namensschablone um die Dateinamen von der Versionsnummer zu trennen. Und wenn in einem Paketnamen ein "_" vorkommt, dann würde apt das falsch interpretieren. Deshalb werden im cache die Dateien alle mit geänderten Namen abgespeichert:

Code:
SDL_1.2.8-4_i586.rpm
wenn du genau hinschaust, erkennst du <name>_<version>_<architecture>.<type> :)

Code:
SDL%5fimage_1.2.3-225_i586.rpm
und hier <name>_<version>_<architecture>.<type>, aber der Name enthält in wirklichkeit einen "_" (SDL_image), deshalb wird der beim speichern im apt-cache "maskiert". Wow, ein cleverer Trick!
 
Status
Für weitere Antworten geschlossen.
Oben