Ruby stenckert bei Systemupdate herum

Berufspenner

Well-Known Member
Hi@all

Ich habe ein kleines Problem. Wenn ich mein FreeBSD 5.1 System auf den aktuellsten Stand bringen will stoße ich nach einem Update der Ports auf folgende Fehlermeldungen
Code:
su-2.05b# pkgdb -F
/usr/local/lib/ruby/site_ruby/1.6/portsdb.rb:969: [BUG] unexpected local variable
ruby 1.6.8 (2003-10-15) [i386-freebsd5]
Abort trap (core dumped)
su-2.05b# portupgrade -an
/usr/local/sbin/portupgrade:1448: [BUG] Segmentation fault
ruby 1.6.8 (2003-10-15) [i386-freebsd5]
Abort trap (core dumped)
su-2.05b#
Kann mir jemand einen Tip zu behebung dieses Problems geben?

Cu
André
 
Hi

Also, dann versuche ich es mal. Wie kann ich eigentlich ein Programm rückstandslos vom System entfernen? make deinstall clean scheint mir irgendwie nicht so sauber zu sein.

Cu
André
 
Hi

Na supie, da scheint ja einiges im Allerwertesten zu sein...
Code:
su-2.05b# pkg_deinstall portupgrade
/usr/local/lib/ruby/site_ruby/1.6/optparse.rb:1255:in `private': undefined method `visit' for class `OptionParser' (NameError)
        from /usr/local/lib/ruby/site_ruby/1.6/optparse.rb:1255
        from /usr/local/sbin/pkg_deinstall:34:in `require'
        from /usr/local/sbin/pkg_deinstall:34
Das schreit scheinbar nach einem lagen Wochenende vor dem Rechner um das System neu aufzusetzen :rolleyes:

Cu
André
 
Ich buddele mal diesen alten Thread aus, denn ich habe ein ähnliches Problem. Ich habe versucht den mplayer per portupgrade auf den neuesten Stand zu bringen. Ich erhalte folgende Meldung:

Code:
home# portupgrade mplayer-gtk-esound
[Failed `Inappropriate file type or format'] [Updating the portsdb <format:bdb1_btree> in /usr/ports ... - 11218 port entries found .........1000.........2000.........3000.........4000...[BUG] Segmentation fault
ruby 1.8.1 (2004-05-02) [i386-freebsd5]

Abort (core dumped)
home#

Kennt das jemand? "portupgrade" neu zu bauen hat nichts gebracht. Ebenfalls erfolglos war der Versuch ruby18 per portupgrade neu zu bauen. Kann ich ruby einfach löschen und neu installieren? Gibt es eine andere Lösung? Ich habe FreeBSD 5.2.1. Danke im voraus.

Grüße
Styx
 
lösche die /usr/ports/INDEX.db, und dann
Code:
sort < /usr/ports/INDEX > /usr/ports/INDEX.sorted
mv /usr/ports/INDEX.sorted /usr/ports/INDEX
und dann portsdb -u
dann sollte es gehen
 
Ich hatte auch gestern ein solches Problem. Es lag daran,das irgendwelche neueren Daten, eine alte ruby Version haben wolllten. (Zumindest habe ich das so Verstanden)
Ich konnte dann aus den Fehlermeldungen herauslesen das man "openssl" installieren sollte ....... was ich dann auch getan habe. Danach liefs dann durch. Die neuere Version von ruby ließ sich dann installieren.
Versuchs mal, vielleicht gehts ja.

Thomas
 
Vielen Dank erstmal für die schnellen Antworten.

@thomasf: Das openssl-Problem kenne ich auch aus anderen Programminstallationen, das kommt häufiger vor, aber Openssl war bereits installiert und aktuell. Die ruby-Version ist, wenn ich das richtig gesehen habe, die aktuellste. Also daran wird es wohl nicht liegen.

@Maledictus: Das habe ich so gemacht, wie du beschrieben hast. Ergebnis:

Code:
home# portsdb -u
[Updating the portsdb <format:bdb1_btree> in /usr/ports ... - 11218 port entries found .........1000.........2000.........3000.........4000.../usr/local/lib/ruby/site_ruby/1.8/portsdb.rb:587: [BUG] Segmentation fault
ruby 1.8.1 (2004-05-02) [i386-freebsd5]

Abort (core dumped)
home#

Gibt es sonst noch Ideen?

Grüße
Styx
 
Hi ich hatte gestern genau das Problem auch, als ich cvsup ausführte und danach
mit "portindex" und "portversion -v" das Ganze abschließen wollte.
Danach ging bei mir weder pkgdb -F nocht portupgrade etc..

Um das zu beseitigen habe ich den alten Weg eingeschlagen:
cvsup und dann
portsdb -uU

Dauerte zwar lange, aber es half ;)
mfg
jo
 
Die ruby-Version ist, wenn ich das richtig gesehen habe, die aktuellste. Also daran wird es wohl nicht liegen.

AFAIK gibt es sin der neuesten Ruby Version doch einen Bug.
hier ein Auszug aus /usr/ports/sysutils/portindex/work/README.TXT
Possible problems with portsdb -u
=================================

If portsdb -u fails because of bug in Ruby, delete INDEX.db
and reorder lines in INDEX file. by script like this:

``
sort < INDEX-5 > INDEX-5.sorted
mv INDEX-5.sorted INDEX-5
``

Or you can use ports textproc/rl and misc/inplace.
``
inplace rl /usr/ports/INDEX-5

Sort method work better than rl for avoiding Ruby bug, use rl method only
if sort method failed.

This Ruby problem is reported
in PR http://www.freebsd.org/cgi/query-pr.cgi?pr=66222

mach das sort mal so wie da beschrieben, da du 5.x benutzt und nicht -stable.
 
Hi Leute, bin ins selbe Problem gelaufen, denke aber das ich es hinkriege mit dem was hier steht. Da wir aber grade dabei sind mal eine kleine Zwischenfrage:
Ich meine das man in irgendeiner Datei (make.conf?) seinen Cpu-Typ angeben kann so das optimiert kompiliert wird.
In meinem Fall tut ein AthlonXP sein Werk. Ich meine ich hätte auch schon mal sowas gesehen wie CPUTYPE=ATHLONXP aber bin mir da nicht sicher. Irgendwer eine Idee?
 
oh mann. scheint so als wäre ich jetzt in diesen ruby bug gefallen... was kann ich tun? sort hat nicht geholfen. portsupgrade -u spinnt immer noch.
 
Wie, mit sort... ist der bug aus ruby doch nicht raus, dann muß man also immer wieder beim portsupgrade das gleiche Spile machne?
 
edit:
oh du hast 5.1 les ich gerade ich hab 5.2.1 und da ich auch nicht der BSD-Crack nummer 1 bin kann ich dir nicht sagen ob folgendes auch bei dir funktioniert aber ich denke einen versuch ist es wert :)
edit off



HALLO :) endlich kann ich auch mal tips geben :D

ich hatte das selbe problem und habs folgender maßen gelöst (es war massig arbeit)

und zwar:

ruby 1.6.x muss wech... so

das geht in dem du folgendes machst

pkg_delete portupgrade-\*

cd /usr/ports/sysutils/portupgrade

make install clean
(möglicherweiße "shutdown -r now" notwendig damit der nächste schritt geht)

portupgrade -fr lang/ruby16

portupgrade -f lang/ruby18

pkg_deinstall -ri lang/ruby16

soooooooo gesagt getan damit sollte dann folgendes erscheinen wenn du
"pkg_info |grep ruby"
eingibst:

ruby-1.8.2.p2_1 An object-oriented interpreted scripting language
ruby18-bdb1-0.2.2 Ruby interface to Berkeley DB revision 1.8x with full featu


sollte das nicht der fall sein dann findest du eine etwas detailiertere beschreibung zu dem problem in der datei /usr/ports/UPGRADE

je nach dem was du vorhast kann es dannach zu weiteren fehlern kommen... ich hatte das problem das die befehle
"portsdb" und "pkgdb"
eine ruby fehlermeldung bringen... macht aber nix... ab in die büsche mit dem ganze scheiß und ab nach
/usr/ports/sysutils/portsindex

dann

make install clean
(möglicherweiße "shutdown -r now" nötig damit du weitermachen kannst)

nun gehst du ins verzeichnis
/usr/ports/

da machst du dann:

rm INDEX
rm INDEX-5
rm INDEX.db

so keine panik auf der titanik jetzt ist zwar kein index mehr da aber mit:
make fetchindex

bekommst du nen frischen (insofern der rechner am internet hängt!!!!)

dann machst du erst
portsindex

und dannach
portsindexdb


das geht erstens mal schneller als pkgdb und portsdb und zweitens funktionierts auch noch, was ein wunder :D

danach sollte auch dein
portupgrade -a

oder was auch immer du vorhast funktionieren :)

mfg

christoph
 
Zuletzt bearbeitet:
Yanxian schrieb:
Wie, mit sort... ist der bug aus ruby doch nicht raus, dann muß man also immer wieder beim portsupgrade das gleiche Spile machne?


öh dazu siehe meinen text eins weiter oben ich hab gelesen das bei dem befehl pkgdb und portsdb die INDEX datein in einem falschen format erstellt werden (was an ruby zu liegen scheint) aber mit portsindex gings dann problemlos :)
 
Nevalon schrieb:
öh dazu siehe meinen text eins weiter oben ich hab gelesen das bei dem befehl pkgdb und portsdb die INDEX datein in einem falschen format erstellt werden (was an ruby zu liegen scheint) aber mit portsindex gings dann problemlos :)

Au fein, mich hat's jetzt auch erwischt. Was tun? Bislang geht es immer wieder mit dem Löschen der INDEX-Dateien und make fetchindex. Gibt es Hinweise, ob sich das Ganze wieder einrenkt? Nun ist ja portsindex aus den ports.
;'(
 
Hab hier auch das Problem:
Code:
% sudo portsdb -uU
Updating the ports index ... Generating INDEX.tmp - please wait..Warning: Duplicate INDEX entry: freeciv-gtk2-1.14.1
 Done.
done
[Updating the portsdb <format:bdb1_btree> in /usr/ports ... - 11734 port entries found .........1000.........2000.........3000.........4000.........5000.........6000.........7000.........8000..../usr/local/lib/ruby/site_ruby/1.8/portsdb.rb:587: [BUG] Segmentation fault
ruby 1.8.2 (2004-07-29) [i386-freebsd5]

zsh: 46469 abort (core dumped)  sudo portsdb -uU
FreeBSD 5.2.1-RELEASE-p8
Hat sich das Problem in der 5.3er erledigt? Ich hör hier immer nur von Problemen mit 5.2.x und 4.10.
(Ich trau mich irgendwie nicht auf die 5.3 BETA zu gehen) :-)
 
Hat nichts mit der Systemversion zu tun, wie ich meine, sondern eben mit ruby und den verhunzten Datenbanken, die es bei portsdb erstellt. Ich habe 5.3 Beta 3.
 
tja das portindex eingestellt ist ist echt schade... ich wüßte nicht wie das problem sonst zu beheben ist... vielleicht kommt ja mal eine neue ruby version in der das behoben ist... wäre jedenfalls angebracht... es gibt glaub auch eine möglichkeit den ruby bug zu beheben in dem man in den INDEX datein bestimmte zeilen löscht... ich glaube zumindest sowas gelesen zu haben als ich mich im internet nach der problemlösung umgeschaut habe... bin aber nicht 100% sicher
 
Zwischenlösung ruby18 bug

Kleine Zwischenlösung:

csh shell:
setenv PORTS_DBDRIVER bdb1_hash
sh shell:
export PORTSDBDRIVER=bdb_btree
portsdb -u
portsdb -Uu

Hat bei mir funktioniert soweit.

Quelle: bsdforums.org

Greetings Durandal :)
 
Zurück
Oben