pkg_add -u schlägt immer fehl

defender

Member
hallo,

ich hab mein system schon länger nicht mehr aktualisiert, das wollte ich jetzt mal machen.

Code:
pkg_add -u
........
Unknown element: @sha Z7SBayhMvLNthjRj1XPcPxQPJIztzJXkBGle1jQ9V+g= in SCALAR(0x20e4c6040),  at /usr/libdata/perl5/OpenBSD/PackingList.pm line 301, <$fh> line 7.

Hat jemand eine Idee was da sein könnte?

mfg
 
Welche OpenBSD-Version benutzt du? Stable? Current?

Wenn letzteres, immer bei seltsamen Problemen auf ein aktuelles snapshot updaten. Das ist der Preis für current :P
 
wurde da nicht letztens an der paketverwaltung was mit den signaturen umgestellt? ein aktueller snapshot sollte das beheben.
 
Da die aktuellen packages fuer current vom 07.12.2008 sind, wurden sie auch mit einem aktuellen Snapshot von Dezember gebaut. Bei jedem bauen werden Pruefsummen gebildet. Versuchst du nun, die neuesten packages mit den neuesten Pruefsummen bei einem etwas aeltern System zu installieren, stimmen die Pruefsummen nicht mehr. Wie oenone schon sagte: "ganz oder gar nicht. aktualisiere einfach dein OpenBSD auf einen aktuelleren Snapshot." Das ist einer der Gruende, warum ich unter current nur Ports benutze. Die Pruefsummen der Ports aendern sich erst, wenn ich den tree neu per cvs update. Das macht das Leben unter current etwas angenehmer.
 
oke, sowas in der art hab ich schon befürchtet,
gibt es eigentlich eine andere einfach art das grundsystem zu updaten, außer durch boot von cd image + ftp?

mfg
 
ja, direkt die pakete auf die platte bügeln. im faq unter "ohne installationskernel updaten". ist aber nicht die empfohlene methode.
du kannst natürlich auch die ganzen pakete auf der lokalen platte ablegen, bsd.rd starten und dann von disk updaten. neu starten musst du so oder so, da du ja den neuen kernel verwenden möchtest. ob du nun einmal oder zweimal neu startest, ist mE nach egal, nur das das update per installkernel für mich irgendwie "sauberer" ist.
 
Da die aktuellen packages fuer current vom 07.12.2008 sind, wurden sie auch mit einem aktuellen Snapshot von Dezember gebaut. Bei jedem bauen werden Pruefsummen gebildet. Versuchst du nun, die neuesten packages mit den neuesten Pruefsummen bei einem etwas aeltern System zu installieren, stimmen die Pruefsummen nicht mehr.

Das ist so nicht korrekt. Die Pruefsummen in der packing list beziehen sich lediglich auf den Inhalt eines Paketes. Das Problem ist vielmehr, wie makenoob auch schon angedeutet hatte, dass am 4. Oktober sha256 und base64-kodierte Pruefsummen eingefuehrt wurden (und am 24. Oktober wurde der Default auf sha256 umgestellt). Das System des OP stammt offenbar von einem Snapshot vor dem 4. Oktober.

Wie oenone schon sagte: "ganz oder gar nicht. aktualisiere einfach dein OpenBSD auf einen aktuelleren Snapshot." Das ist einer der Gruende, warum ich unter current nur Ports benutze. Die Pruefsummen der Ports aendern sich erst, wenn ich den tree neu per cvs update.

Die Pruefsummen der Ports (distinfo) haben nichts mit den Pruefsummen in den packing lists der Pakete zu tun. Das Problem mit Current und Packages ist vielmehr, dass die Package-Snapshots je nach Architektur gegenueber den System-Snapshots z.T. deutlich hinterherhinken.

Aber das ist auch kein wirkliches Drama; solange man die Versionen der shared Libs des zu den aktuellen Package-Snapshots passenden System-Snapshots hat, sollten aeltere Packages auch auf einem neueren System-Snapshot laufen.

Bloede wird's nur, wenn man tatsaechlich mit Ports arbeiten will/muss/darf, dann gilt es entweder auf aktuelle Packages zu warten oder wirklich selbst bauen. Grosser Spass z.B. auf einem Zaurus (deshalb habe ich mir auch ein turboschnelles Allnet-Spielzeug zugelegt, da kann man ruby auch mal in weniger als einer Woche bauen).

Faustregel: aeltere Packages auf neuem System funktionieren, solange man nicht dauernd alte shlibs in /usr/lib in die Tonne tritt. neuere Packages auf aelterem System: nope. Frischer System-Snapshot oder -current und aktueller Portstree: muss gehen.

-- Kili
 
Du kannst das System auch von den Sourcen komplett neu bauen.

Das ist nicht unbedingt die geeignete Empfehlung fuer einen Newbie (und da defender erst seit ein paar Monaten OpenBSD verwendet, wuerde ich ihn mal als einen solchen bezeichnen).


release(8) ist hier voellig fehl am Platz. Defender will sein System auf einen aktuellen Stand bringen. Ob er das nun mit einem Snapshot macht, oder von Source baut, ist ja eigentlich wurst (obwohl ich wirklich einen Snapshot empfehlen wuerde), aber das ganze make release-Geraffel kann er sich auf jeden Fall sparen, es sei denn, er will von Sourcen bauen und mehrere Rechner mit dem Resultat bestuecken.

Dabei (und auch bei Verwendung von Snapshots) solltest du aber gelegentlich folgende Site im Auge behalten:

http://openbsd.org/faq/current.html

Ja, und da ist unter anderem der PIE-Change drin, und aktuell kommen noch diverse Aenderungen von martynas@ an libc, libm und libstdc++ dazu. Ich glaube zwar nicht, dass letzteres grossartigen Stress verursacht, aber alleine das separate Bauen des gcc ist schon nervig genug, um sich mit einem Snapshot etwas Entspannung zu goennen.

Obacht: die auf current.html erwaehnten perl-Packages muessen auf jeden Fall per pkg_delete entsorgt werden.

-- Kili
 
also ich hab jetzt mal upgedated (mit aktueller snapshot cd)
ich jetzt pakete aus 4.4 installieren/updaten, aber nicht die pakete aus snapshot.

versuch ich pakete von zb ftp://anga.funkfeuer.at/pub/OpenBSD/snapshots/amd64/ zu installieren bekomme ich einige fehler, die vermutlich damit zusammenhängen, dass irgendwas mit der relase bezeichnung nicht passt (eingentlich hab ich aber auf snapshot geupdatet....):


Code:
Dependencies for python-2.6p0 resolve to: sqlite3-3.5.9p0
Full dependency tree is sqlite3-3.5.9p0
c.49.0: partial match in /usr/lib: major=50, minor=0 (bad major)
c.49.0: partial match in /usr/lib: major=43, minor=0 (bad major)
c.49.0: partial match in /usr/lib: major=48, minor=0 (bad major)
m.4.0: partial match in /usr/lib: major=3, minor=0 (bad major)
m.4.0: partial match in /usr/lib: major=2, minor=3 (bad major)
m.4.0: partial match in /usr/lib: major=5, minor=0 (bad major)
sqlite3.12.0: partial match in /usr/local/lib: major=11, minor=0 (bad major)
stdc++.45.1: partial match in /usr/lib: major=46, minor=0 (bad major)
stdc++.45.1: partial match in /usr/lib: major=45, minor=0 (minor not large enough)
stdc++.45.1: partial match in /usr/lib: major=44, minor=0 (bad major)
 
die packages sind zu alt. warte bis sie erneuert werden oder bau sie dir selbst aus den ports.
 
Back
Top