portupgrade funzt wiederholt nicht

I.MC

Watt soll denn hier hin?
nachdem ich portupgrade -aPR laufen lies sagte er am Ende fleissig

...
+ security/openssl (openssl-0.9.7b_1)
+ misc/mc (mc-4.6.0_5)
...

jedoch waren diese Programme in Wirklichkeit nicht mehr vorhanden, was auch pkg_info bestätigte und ein find danach. Wieso sagt er, dass alles wunderbar upgedated worden ist, wenn er in Wirklichkeit alles deinstalliert und das Proggi gar nicht mehr vorhanden ist. Das passiert öfter hier, vor allem bei diesen beiden Programmen. Das raff ich nicht!

Gruß, incmc
 
wie wäre es, anstatt alles zu updaten, mal einfach nur die Programme die anscheinend Probleme machen upzugraden? Dann sollte der output ja umfangreicher sein
 
Ich habe nun diese beiden Programme per portinstall -P NAME neu installiert., jetzt sind sie auch da.
Interessant scheint hier der Vergleich der Ausgabe von pkg_info und portversion.

pkg_info zeigt bei beiden ein "=" an, portversion ein ">". Wie das sein kann sagte mir die man page. Ein ">" kann auftreten wenn der installierte Port neuer ist, als die in der INDEX Datei eingetragene Version. Schaut man auch noch in de man page von portsdb nach, erfährt man, dass dies passieren kann, da die INDEX Datei nur ca. einmal pro Woche geupdated wird, egal ob dazwischen ports geändert wurden oder nicht. Das kann man bekämpfen indem man naxh jeden cvsup der ports mittels "portsdb -Uu" für einen sync der von portupgrade (usw.) verwendeten Datanbank namens INDEX.db sorgt. Das ist zwar alles für mich keine Erklärung wieso portupgrade versagte beim upgraden, aber es ist das einzige womit es zusammenhängen könnte. Ich update gerade die INDEX.db und werde das dann an den vorhin fehlgeschlagenen Programmen erneut testen. Wenn es dann klappt, lag es echt daran.
 
@asg

Ich hatte den kompletten Output gespeichert, da stand aber nichts negatives drin. Daher war ich ja so erstaunt "wieso is mein mc jetzt nicht da"
Ich teste noch ein wenig weiter...


Gruß, incmc
 
Ja, portsdb -Uu nach jedem cvsup ist Pflicht, und ein "pkgdb -F" nach jedem Bau eines Portes würde ich auch vorschlagen zu machen.
Warum aber nun die beiden Programme Probleme bereiten kann ich nicht sagen, hier gibts keinerlei Probleme mit portupgrade.
 
Ich versteh allerdings nicht wieso portsdb -Uu Pflicht ist, wofür ist diese db überhaupt da??? Ich meiner portupgrade installiert ja fleissig immer die neuste Portversion, auch wenn in der index Datei noch nicht die neuste drinsteht....
 
man portsdb
[...]
DESCRIPTION
The portsdb command is a tool to generates the ports database named
INDEX.db from the ports index file named INDEX. It is commonly used
among the tool suite and automatically updated on demand when it gets
older than the index file. To save time, you can update it beforehand,
like right after the index file is updated. In addition, considering
that the INDEX file often gets outdated because it is updated only once a
week or so in the official ports tree, it is recommended that you run
``portsdb -Uu'' after every CVSup of the ports tree in order to keep them
always up-to-date and in sync with the ports tree.
[...]
 
Über die INDEX.db stellt z.B. portversion fest, welche files 'out of date' sind. Du hast Recht, portupgrade auf ein einzelnes Package funktioniert auch ohne vorheriges 'portsdb -uU', allerdings kann es dann nicht feststellen, ob sich evtl. Abhängigkeiten geändert haben.

Letztendlich läuft es auf so etwas hinaus: 'Normalerweise' funktioniert alles ohne 'portsdb -uU', aber wenn etwas schiefgeht, lass erst 'portsdb -uU' laufen und schau ob es damit geht...
 
@asg

Die man page kenne ich, das hat aber nicht erklärt wieso INDEX.db wichtig ist, wofür sie wirlich eingesetzt wird. Sonst hätte ich nicht gefragt :-)

Aber jetzt weiss ich es ja :-)

Gruß, incmc
 
Hmm, es steht in meinen Augen sehr genau drin wozu das INDEX file benutzt wird...
 
Code:
/usr/ports# file INDEX
INDEX: ASCII English text, with very long lines
/usr/ports# file INDEX.db
INDEX.db: Berkeley DB 1.85/1.86 (Btree, version 3, native byte-order)

soweit ich das verstaden habe, beeinhalten beide Dateien das gleiche, weswegen auch der sync mit portsdb -Uu wichtig ist.
wie man sieht ist die INDEX.db eine Binärdatei, und zwar eine Berkeley Datenbank. Diese sind auf suchen in der DB optimiert.
Daraus folgt, das ganze ist nur ein performance hack für diverse tools wie portupgrade, portversion, etc.

ob sich der ganze aufwand lohnt? keine ahnung
gruss Male
 
Zurück
Oben