Ha cygwin-ed néha furcsa dll hiba üzeneteket dob mindenféle regiszter tartalmakkal és stack állapot kiírással, akkor jó helyen jársz! Ilyenkor kell(het) a rebase. Ez beletúr a dll-ek belépési címeibe. Nem tudom, hogy miért szokott előfordulni, de nekem a perl szokott ilyeneket dobni. Arra gyanakszom, hogy néha a cygwin update nem tud teljesen lefutni, mert esetleg pár rxvt még nyitva van (ha pl. az update-et cygwin-en belülről indítjuk el). Ilyenkor nehány dll-t nem tud bemásolni, így nem fut le az automatikus rebase. De ez csak egy teória.
Rebase nem megy cygwin-en belül, hiszen esetleg használt dll-eket kellene meg viviszekciózni. Ezért le kell csukni mindent és ash shell-t kell indítani. Tegyük hát fel, hogy a \cygwin könyvtár alá tettük fel a cygwin-t. Ekkor ezeket kell tenni.
- Install rebase csomag (pl. "cygsetup --add" script-tel)
- Minden cygwin ablak lezár
- Start cmd
- cd \cygwin\bin
- ash
- ./rebaseall - ha sír, hogy
rebaseall: only ash or dash processes are allowed during rebasing
Ne pánikoljunk! TaskManager-rel löjjük ki a felesleges cygwin-es processzeket (pl. cygserver) és próbáljuk újra.
Exit all Cygwin processes and stop all Cygwin services.
Execute ash (or dash) from Start/Run... or a cmd or command window.
Execute '/bin/rebaseall' from ash (or dash). - Pár tucat másodperc alatt lefut és készen is vagyunk...
Javuljunk minden nap!
+jegyzések