Nl:Gramps draaien vanaf een draagbaar opslagmedium

From Gramps
Revision as of 23:17, 25 January 2013 by Patsyblefebre (Talk | contribs) (Gramps)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search


Sommige gebruikers willen hun Gramps-gegevens opslaan op een verwijderbare schijf of opslagmedium.

Dit kan zijn omdat ze de gegevens op meerdere computers ter beschikking willen hebben of voor veiligheidsredenen.

Deze pagina beschrijft hoe u dit kunt doen en zou moeten werken met een floppy, een flash-drive of een externe harde schijf.

Er zijn spijtig genoeg geen eenvoudige instructies om Gramps en zijn afhankelijkheden te installeren op een verwijderbaar opslagmedium. Daarom wordt vereist en aangenomen dat Gramps geïnstalleerd is om elke computer waar u het verwijderbaar opslagmedium op aansluit.

Gnome-important.png
Maak geregeld een reservekopie

Verwijderbare opslagmedia kunnen kwetsbaarder zijn en kunnen ook sneller verloren gaan dan de harde schijf van uw computer. Maak daarom geregeld een reservekopie van uw gegevens als u deze techniek gebruikt. Maar eigenlijk is het beter om altijd een reservekopie te maken van uw belangrijke gegevens, want uw harde schijf kan het ook begeven. Wees dubbel voorzichtig indien u uw gegevens op floppies of op flash-drives stockeert.

Hoe werkt het

De magie zit in scripts waarmee Gramps opgestart wordt. In deze scripts wordt bepaald vanuit welke map op het verwisselbaar medium er opgestart wordt en de scripts dwingen dan Gramps om die map als de Gramps thuismap te gebruiken. De scripts doen dit met de GRAMPSHOME omgevingsvariabele. Deze variabele gebruikt Gramps om te kijken of de Gramps-thuismap zich ergens anders bevindt dan in de thuismap van de gebruiker. Gramps zal dan zijn gegevens en configuratie lezen en schrijven naar een submap van de map waar zich de scripts in bevinden, gramps genaamd

Installatie

Sla de onderstaande scripts op in de map op de verwisselbare schijf, die u als uw Gramps-thuismap wilt gebruiken.

Wanneer de scripts worden gelopen, wordt Gramps naar de mappen geleid waarin de scripts zich bevinden.

Pas het deel INSTELLINGEN aan van de opstartscripts die u wilt gebruiken , zodat de waarden juist zijn voor uw computer

Maak steeds gebruik van relatieve paden indien u uw mediabestanden ook op de verwisselbare schijf bewaard, samen met uw Gramps-gegevens (wat normaal het geval zal zijn want welk nut hebben ze anders?). Op die manier zullen de paden nog werken wanneer u van computer wisselt (met de nodige aanpassingen aan de mediabasismap). Werkt u echter met absolute paden dan is de kans zeer klein dat er iets werkt.

Telkens u Gramps draait op een andere computer, zult u het mediabasispad moeten aanpassen. Het kan ook zijn dat u sommige instellingen in de scripts moet aanpassen voor verschillende computers. Gebruik u telkens dezelfde computers, dan is het wel handig om aparte scripts te maken specifiek voor die computer. Zo vermijdt u dat u de scripts telkens opnieuw moet aanpassen.


Windows

gramps.bat

@echo off

REM Pas de omgevingsvariabelen aan 
setlocal

REM START VAN INSTELLINGEN

set PYTHON_COMMAND=C:\Python25\pythonw.exe
set GRAMPS_DIR=C:\Program Files\gramps

REM EINDE VAN INSTELLINGEN

REM Stel GRAMPSHOME in voor de schijf en het pad van het script
set GRAMPSHOME=%~dp0
REM Ga dan naar dit script
%~d0
cd "%~p0"
REM Start Gramps
"%PYTHON_COMMAND" "%GRAMPS_DIR\gramps.py"

REM Einde van het blok omgeving
endlocal

Gebruik

  1. Bent u zeker dat Gramps geïnstalleerd is en werkt op de doelcomputer.
  2. Sluit het verwisselbare medium aan, aan de doelcomputer.
  3. Indien nodig , verander de instellingen in het script zodat ze overeen komen met de doelcomputer.
  4. Pas gramps/keys.ini aan en verwijder het gegevensbestandpad van de [behavior] sectie indien deze aanwezig is.
  5. Dubbelklikken op het batch-bestand om Gramps te starten.
  6. Indien nodig pas het media basispad in Gramps aan zodat dit verwijst naar het verwisselbare medium.

Hoe werkt het

De opdracht setlocal zegt Windows dat u een tijdelijke kopie van de omgeving, die later zal verwijderd worden, wilt gebruiken. De opdracht endlocal zegt Windows verder te gaan en de tijdelijk omgeving te verwijderen. Dat wilt zeggen dat alle veranderingen in het script aan de omgeving (specifiek GRAMPSHOME) niet behouden blijven wanneer het scripteinde wordt bereikt.

Batch-bestanden gebruiken %0 om te verwijzen naar de schijf, het pad en de batch-bestandsnaam zelf. U kunt ook bepaalde codes toevoegen om naar specifieke locaties te verwijzen.

Met %~d0 verwijst u enkel naar de schijf en met %~p0 wordt enkel naar een pad verwezen. Deze codes zijn combineerbaar. Dus %~dp0 verwijst naar schijf en pad waar het batch-bestand is gelaatst. Het script gebruikt dit om de waarde van GRAMPSHOME aan te passen aan de juiste schijf en map.

Wanneer dit aangepast is, wordt Gramps gestart.

Linux

gramps.sh

#!/bin/sh

# START VAN DE INSTELLINGEN

GRAMPS_COMMAND="/usr/bin/gramps"

# EINDE VAN DE INSTELLINGEN

# Laat GRAMPSHOME verwijzen naar het pad van dit script
# Start GRAMPS
GRAMPSHOME="${0%/*}" "$GRAMPS_COMMAND" $*

Gebruik

  1. Bent u zeker dat Gramps geïnstalleerd is en werkt op de doelcomputer.
  2. Sluit het verwisselbare medium aan, aan de doelcomputer en koppel dit medium aan het bestandssysteem.
  3. Indien nodig , verander de instellingen in het script zodat ze overeen komen met de doelcomputer.
  4. Pas gramps/keys.ini aan en verwijder het gegevensbestandpad van de [behavior] sectie indien deze aanwezig is.
  5. Draai het script om Gramps te starten.
  6. Indien nodig pas het media basispad in Gramps aan zodat dit verwijst naar het koppelpunt van het verwisselbare medium.

Hoe werkt het

Shell scripts gebruiken $0 (of nog ${0}) om te verwijzen nnar het pad en de naam van het script zelf. Er zijn ook operatoren die toelaten om deze waarde te veranderen.


Het % karakter wordt gebruikt om het achterste deel van een tekenreeks te verwijderen en wat volgt op dit karakter geeft aan wat er verwijderd moet worden, met het bekende * karakter dat voor elk teken kan gebruikt worden. Dus ${0%/*} betekent, verwijder het laatste / en alles wat daar achter komt, uit het pad en de naam van het script. Zo blijft enkel de map over waar het script zich bevindt.

Het script gebruikt deze methode om de waarde van GRAMPSHOME te veranderen en dan om Gramps te starten. Door de GRAMPSHOME variabele op dezelfde opdrachtregel te plaatsen, maakt deze variabele voor Gramps toegankelijk. Er is nog een methode om deze variabele beschikbaar te stellen. Door de opdracht export te gebruiken wordt de variabele overgedragen naar de nieuwe shell-omgeving. Maar dit kan probblemen geven indien we later Gramps op de normale manier willen opstarten. Daarom wordt de eerste methode geprefereerd.

Software Versies

Deze instructies laten u toe om uw Gramps-gegevens op verscheidene computers te kunnen gebruiken. Belangrijk is echter dat er geen testen werden verricht om de uitwisselbaarheid van gegevens tussen twee verschillende programmaversies te garanderen. Het is dan ook aangewezen om uw gegevens enkel te gebruiken op computers die hetzelfde O.S. gebruiken en waar ook dezelfde versies van Gramps, Python en BSDDB zijn geïnstalleerd. Hoe meer de versies verschillen hoe groter de kans op gegevensbeschadiging of gegevensverlies. Bent u niet zeker of de verschillende computers gelijke versies hebben, exporteer dan uw gegevensbestand eerst naar het GRAMPS-XML-formaat. Doe dit op uw gekende veilige computer, voor u op een andere onbekende computer werkt. Bent u klaar met Gramps, doe dan opnieuw deze conversie, voor u terugkeert naar uw eigen vertrouwde machine.

Gramps

Gramps 2.x en 3.x zijn NIET compatibel. Deze instructies en script zijn bedoeld voor versie 3.0. Het is uiterst wenselijk dat een zelfde' Gramps-versie op alle computers wordt geïnstalleerd. Een gelijkaardige methode kan gebruikt worden voor Gramps 2.2 maar dit wordt afgeraden omdat er een kans bestaat op corruptie van het gegevensbestand.

Python en gegevensbestanden

Gramps slaat zijn gegevens op met de BSDDB-machine die standaard bij Python wordt meegeleverd.

De Python en BSDDB ontwikkelaars doen al het mogelijke om de nieuwere programmaversies goed met de gegevens aangemaakt met oudere versies te laten werken, maar de kans dat dit niet werkt neemt toch toe naarmate de versies verder uit mekaar liggen. Om te bepalen welke versies op een computer aanwezig zijn, geeft u de volgende opdracht in een terminal-vensterwindow (de ingave-prompts zijn > en >>>):

> erik@luna:$ python
Python 2.5.2 (r252:60911, May  7 2008, 15:21:12)
[GCC 4.2.3 (Ubuntu 4.2.3-2ubuntu7)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import bsddb
>>> bsddb.__version__
'4.4.5.3'
>>> exit()

Operating System

Het lijkt mogelijk om uw Gramps-gegevens uit te wisselen tussen computer die een verschillend O.S draaien, maar dit wordt NIET ondersteund. Doe dit op eigen risico!

Gnome-important.png
Maak een reservekopie!

Indien u dit toch wil proberen, exporteer dan STEEDS uw gegevens naar een GRAMPS-XML-bestand. Doet u dit niet eerst, dan kan u dat zuur opbreken.

U kunt volgend experiment uitvoeren door zowel de bovenstaande gramps.bat en gramps.sh scripts in dezelfde map te plaatsen op uw verwisselbare schijf. Draai nu gramps.bat in Windows en gramps.sh voor Linux en Gramps zal dezelfde configuratie en gegevensbestanden gebruiken voor beide systemen.

Deze methode wordt echter niet aangemoedigd en is ook niet voldoende getest. Er zijn een aantal problemen te verwachten, zoals:

  • Wanneer van O.S. wordt veranderd en een gegevensbestand wordt initieel geopend, kan er de foutmelding "Low level database corruption detected"

optreden. Dan wordt verwacht op een herstelknop te gebruiken om dit probleem op te lossen. Dit lijkt te werken maar het is niet duidelijk of er geen gegevensverlies kan optreden in deze stap.

  • U moet telkens de mediabasismap in Voorkeuren aanpassen telkens u veranderd van O.S.
  • Indien naar uw mediabestanden gerefereerd worden door absolute of relatieve paden met submappen, werken deze paden enkel voor het O.S. waar deze paden werden ingevoerd.