Domino effect

(Begonnen op 07/01/2013 - 01:10)

Eigenlijk wou ik alleen maar eens serieus met Python 3 aan de gang...

Omdat veel dingen die ik gemaakt heb GUI applicaties zijn en wxPython gebruiken, bedacht ik om ze om te schrijven naar PyQt. Alleen, om dat onder Py 3 te kunnen doen moest ik dat ook onder 3 installeren en ondanks een heldere instructie lukte dat niet. Dus ging ik maar kijken of ik mijn OS kon upgraden want onder een nieuwe release van Linux Mint zou toch vast wel een package hiervoor zijn.

Dus ik op weg naar Linux Mint 14. In de upgrade instructies werd aangeraden een backup van in elk geval de home directory en de software selectie te maken en dan de nieuwe release te installeren als een "fresh install" en dan de backups terug te zetten. Er zou weining onherstelbaar fout kunnen gaan omdat je precies weet wat je aan het doen bent schreven ze. Nou dat klopt wel maar dat het nou vlekkeloos ging... in elk geval kwam alles ook nog eens op een andere lokatie (externe harde schijf) terecht dus van de belangrijke dingen ging niks verloren.

De databackup ging niet helemaal goed omdat een van de dingen die ik gebruik een oneindig recursief lijkende directorystructuur aanmaakt en het backup tool daar over struikelde, maar verder bleek alles er wel in. Dat betekende alleen dat het backup tool de gegevens niet terug kon zetten - wat deze na een paar uur uitrekenen wat er allemaal gedaan moest worden eindelijk kwam melden, dus dat was een boel tijd voor niks gewacht . De software selectie kon ook niet worden teruggezet, want er hingen repositories in die niet meer bestonden of in elk geval niet meer bereikt konden worden, en ook dat duurde een hele tijd voordat het tool er achter was. Gelukkig had ik alles en was het leesbaar (niet gezipt of zo), dan maar met de hand terugzetten besloot ik. Achteraf misschien zelfs maar beter zo, ik kon nu ook zelf bepalen wat ik niet terugzette -  alleen jammer dat alle permissies verloren gaan bij het kopieren naar een ntfs volume. Volgende keer misschien toch maar wel laten comprimeren denk ik, dan blijft dat tenminste ook vastgelegd.

Over de upgrade zelf ben ik niet ontevreden. Ik zelfs het backlight probleem enigszins kunnen oplossen, zodat ik nu al weer beeld heb voordat ik moet gaan aanloggen in plaats van dat ik blindelings mijn wachtwoord intyp en dan na een tijdje met de helderheidsregeling eindelijk wat kan gaan zien. En ik heb voor de Cinnamon versie gekozen, het ziet er allemaal goed uit; ik kan mijn systeemmenu weer bovenin het beeldscherm configureren. Wat wel jammer is is dat het scrollen via het trackpad niet lekker werkt, en dat ik wel sneltoetscombinaties met de windows key kan maken maar dat ze niet werken. waar het aan ligt daar moet ik nog eens naar kijken maar dat is hoewel flink storend niet onoverkomelijk.

Maar toen moest ik alles natuurlijk weer aan de praat krijgen: webserver, lokale sites, veelgebruikte applicaties... ik ben nog lang niet toe aan waar ik het eigenlijk voor ben gaan doen. Gelukkig heb ik de meeste configuraties een poos geleden lokaal gezet en het zo gemaakt dat ik ze met behulp van  fabric gemakkelijk kan aanpassen. Ik had een paar scripts om applicaties mee op te starten en de enige daarvan die niet werkte deed het niet omdat deze Mint werkt met een Trac versie (niet de meest recente) waarin een klein regressie bugje zit dat toen ik er over gelezen had eenvoudig te herstellen was. En mijn Django sites geven nog wat foutjes waar ik nog naar moet kijken.

Na het terugzetten van de mysql data en opnieuw bekendmaken van de database users werkten mijn drupal en joomla sites ook weer, dat ging redelijk snel (ook het doorkrijgen wat er precies aan de hand was en wat ik er aan moest doen).

De meeste problemen werden veroorzaakt door wat ik al eerder had geconstateerd: het verloren gaan van bestandspermissies. Ik had daarvoor al eens een scriptje geschreven dat in een directory structuur alle bestanden eronder "leesbaar voor iedereen" maakte - want hetzelfde issue had zich bij het installeren van Mint 12 voorgedaan - maar dat kon ik niet meer vinden. Gelukkig was het eenvoudig overnieuw te maken, en omdat ik merkte dat dat ook nuttig was heb ik eraan toegevoegd dat alle directories in het pad op "schrijfbaar door iedereen" gezet worden; en daarna heb ik het opgeslagen op de centrale plaats die ik ervoor heb en die ik ook version-controlled heb gemaakt. Blijft het beter bewaard voor de volgende keer.

De meeste lokale sites die het nog niet deden kreeg ik hiermee aan de praat. Er was er nog een waarvan bleek dat ik waarschijnlijk bij een vorige aanpassing een fout had laten zitten, en een paar oudere Django sites deden het nog niet. Die had ik over twee Django upgrades heen (bij Mint 12 zat een nieuwe release en bij Mint 14 weer een) nauwelijks aangepast - de vorige keer alleen de bescherming tegen cross-site forgery omdat die niet meer werkte. Toentertijd bleek het aan de hand van de tutorial opzetten van een nieuwe site heel leerzaam om te zien wat er veranderd was dus dat deed ik nu weer, maar daarmee had ik kennelijk nog niet alle wijzigingen te pakken. Het doorlezen van de release notes op de Django site was wel heel verhelderend - ook een leerpuntje voor de volgende keer.

Zo, nu alles weer werkt kan ik eindelijk toekomen aan waar het em om begonnen was - niet helemaal waar, ik heb tussendoor al eens een keer een applicatie uitgeprobeerd die met PyQt geschreven is en daarom onder Python 3 zou moeten kunnen werken uitgeprobeerd en ik kreeg hem in elk geval aan de praat. Vanuit die optiek is dit alles dus niet voor niks geweest, in de zin van dat ik niet nog meer hoef te doen om het voor elkaar te krijgen. Opkalefatertijd...

P.S. De dag dat ik deze post afmaak is 17 januari en ik was hem pas gaan schrijven nadat ik al begonnen was: dit alles heeft me wel wat meer (kleine drie weken) gekost dan het weekendje dat ik er oorspronkelijk voor uitgetrokken had maar ik kan nou eenmaal niet full time bezig zijn met dit soort dingen - en dat hoeft ook niet zolang ik niet het idee heb dat het nooit af komt.

Trefwoorden: website, Linux, Python, upgraden