[[Vorlage(Ausbaufähig, "Installation nach '''/opt''' und Skripte sind noch nicht ausgereift.")]]

[[Vorlage(Getestet, bionic)]]

{{{#!vorlage Wissen
[:Pakete installieren: Installation von Programmen]
[:Packprogramme: Eine Archivdatei entpacken]
[:opt: Programme systemweit unter /opt installieren]
[:Terminal: Ein Terminal öffnen]
[:mit Root-Rechten arbeiten:]
[:Rechte: Rechte für Dateien und Ordner ändern] 
}}}
[[Inhaltsverzeichnis()]]

[[Bild(Logo.png, 64, left)]]
[http://cachewolf.aldos.de/ CacheWolf] {de} ist ein Hilfsprogramm für das sog. [wikipedia:Geocaching:]. Es ermöglicht komfortabel das Verwalten von Caches der Seiten [https://www.geocaching.com/ geocaching.com] {en} und [https://www.opencaching.de/ opencaching.de] {de}. Um das Programm zu nutzen, ist es notwendig, auf mindestens einer dieser Seiten ein Benutzerkonto zu haben.

CacheWolf verfügt u.a. über folgende Merkmale:

 * Import von GPX Dateien
 * Download von Karten
 * Konfigurierbare und sortierbare Listenansicht
 * Radaranzeige
 * Verschiedene Filter
Eine vollständige Liste der Funktionen findet sich auf der Homepage.

{{{#!vorlage Tabelle
<:>[[Bild(Liste.png, x220)]]
<:>[[Bild(Radar.png, x220)]]
+++
<:>Liste
<:>Radar
}}}

= Voraussetzungen =
Das Programm basiert auf [:Java:]. Die Installation einer [:Java/Installation:Laufzeit-Umgebung] (JRE) in der Version 6 oder höher ist daher zwingend Voraussetzung zur Nutzung des Programms.

Möchte man komfortabel mit dem Programm arbeiten und auch Daten mit einem GPS-Gerät austauschen, so ist die Installation von [:GPSBabel:] notwendig.
{{{#!vorlage Paketinstallation
gpsbabel, universe, siehe [:GPSBabel:]
}}}

= Installation =
[http://cachewolf.aldos.de CacheWolf] {de} ist nicht in den Paketquellen vorhanden. Man muss das Programm daher manuell installieren. 
Das jeweils aktuelle Release kann von [http://cachewolf.aldos.de/nb/ cachewolf.aldos.de/nb/] {de} {dl} als Archivdatei heruntergeladen werden. Der Dateiname lautet '''CacheWolf-Java.zip'''. Im Downloadverzeichnis immer die Version mit der höchsten '''r'''Nummer wählen.

[[Vorlage(Fremd, Software)]]

== Manuelle Installation ins Homeverzeichnis == 

Die heruntergeladene Datei '''CacheWolf-Java.zip''' vom Downloadverzeichnis ins Homeverzeichnis verschieben und dort entpacken [2] (Rechtsklick "Hier entpacken" wählen). Nun wechselt man in das Verzeichnis '''CacheWolf-Java''' und macht dort das Skript '''CacheWolf.sh''' ausführbar [6]. 

{{{#!vorlage Befehl
chmod +x ./CacheWolf-Java/CacheWolf.sh
}}}
Jetzt kann das Programm mit

{{{#!vorlage Befehl
./CacheWolf-Java/CacheWolf.sh
}}}
gestartet werden.  

== Manuelle Installation nach /opt ==

{{{#!vorlage Hinweis
Die Installation nach '''/opt''' auf Mehrbenutzersystemen ist derzeit nicht optimal. Das Programm legt im Installationsverzeichnis Daten ab. Insbesondere im Mehrbenutzer-Betrieb kann es je nach Nutzung zu Rechteproblemen kommen. Die Übertragung zum GPS hängt, falls die Daten des Vornutzers nicht überschrieben werden können.
}}}

Eine Installation nach '''/opt''' [3] hat den Vorteil, dass Programm und Daten sauber getrennt sind und auch mehrere User das Programm nutzen können. CacheWolf erfährt sehr häufig Updates, daher wird die manuelle Installation - auch wenn sie sehr einfach ist - schnell lästig, weil man selbst auf die Programm/Datentrennung achten muss. 

=== Programmverzeichnis anlegen ===

folgende Befehle sind als root bzw. mit vorangestelltem `sudo` ausführen. Die Datei '''CacheWolf-Java.zip''' sollte sich dazu bereits im Downloadverzeichnis befinden.

{{{#!vorlage Befehl
unzip -o -d /opt/CacheWolf-Java ./CacheWolf-Java.zip  # CacheWolf ins Verzeichnis /opt/CacheWolf-Java entpacken
ln -s /tmp/CacheWolf.log /opt/CacheWolf-Java/log.txt  # Logdatei per Symlink nach /tmp verlegen
chmod 666 /opt/CacheWolf-Java/log.txt                 # Logdatei beschreibbar machen
ln -s /tmp/CacheWolf.loc /opt/CacheWolf-Java/temp.loc # Loc-Datei per Symlink nach /tmp verlegen (wird erst verwendet bei Datenaustausch zum GPS) 
chmod 666 /opt/CacheWolf-Java/temp.loc                # Loc-Datei beschreibbar machen
}}}

=== Datenverzeichnis anlegen (ohne sudo) ===
{{{#!vorlage Befehl
mkdir -p ~/.CacheWolf/Profile
}}}

=== Startskript /usr/local/bin/cachewolf anlegen ===
Mit root-Rechten legt man die Datei '''/usr/local/bin/cachewolf''' mit folgenden Inhalt an:

{{{#!code bash
#!/bin/sh

cd /opt/CacheWolf-Java
java -Xms512M -Xmx1024M -cp CacheWolf.jar ewe.applet.Applet CacheWolf.CacheWolf -c ~/.CacheWolf/pref.xml &
}}}

=== Minimale Einstellungsdatei ~/.CacheWolf/pref.xml erstellen ===
nun erzeugt man noch die Einstellungsdatei unter '''~/.CacheWolf/pref.xml''' mit diesem Inhalt:
{{{#!code xml
<?xml version="1.0" encoding="UTF-8"?>
<preferences>
    <basedir dir="/home/$USERNAME/.CacheWolf/Profile/" />
</preferences>
}}}

== Automatisierte Installation nach /opt per Skript ==

Das folgende Skript fast die oben aufgeführten Schritte der Installation nach '''/opt''' zusammen. Es kann nach jedem CacheWolf-Update erneut angewendet werden.

{{{#!code bash
#!/bin/sh
#
# CacheWolf nach /opt/CacheWolf-Java installieren.
#

TMPDIR=/tmp/CacheWolf-Java                # Temp-Verzeichnis
ZIPDIR=~/Downloads                        # Downloadverzeichnis
PRGDIR=/opt/CacheWolf-Java	          # Programmverzeichnis
DATADIR=.CacheWolf			  # Datenverzeichnis
ZIPNAME=CacheWolf-Java.zip	          # Name der heruntergeladenen Datei
STARTSKRIPT=cachewolf


#
# Auspacken und Anlegen der nötigen Symlinks nach /tmp
#
unzip -o -d $TMPDIR $ZIPDIR/$ZIPNAME       # CacheWolf nach /tmp entpacken

echo > /tmp/CacheWolf.log		   # Dummydateien für Symlinks erzeugen
echo > /tmp/CacheWolf.loc                  #

ln -sf /tmp/CacheWolf.log $TMPDIR/log.txt  # Logdatei per Symlink nach /tmp verlegen
chmod 666 $TMPDIR/log.txt                  # Logdatei beschreibbar machen

ln -sf /tmp/CacheWolf.loc $TMPDIR/temp.loc # Loc-Datei per Symlink nach /tmp verlegen 
                                           # (wird erst verwendet bei Datenaustausch zum GPS) 
chmod 666 $TMPDIR/temp.loc                 # Loc-Datei beschreibbar machen 

#
# Datenverzeichnis
#
mkdir -p ~/$DATADIR/Profile/default        # Datenverzeichnis anlegen

#
# Minimale Einstellungsdatei ~/.CacheWolf/pref.xml anlegen falls noch nicht vorhanden
#
test -e ~/$DATADIR/pref.xml
if [ "$?" = "0" ] 
then
        echo 
	echo Hinweis: ~/$DATADIR/pref.xml bereits vorhanden
        echo
else

(
cat <<EOP
<?xml version="1.0" encoding="UTF-8"?>
<preferences>
    <basedir dir="/home/$USERNAME/$DATADIR/Profile/" />
    <lastprofile autoreload="true">default</ lastprofile>
</preferences>
EOP
) > ~/$DATADIR/pref.xml

fi ; 

#
# einfaches Startskript cachewolf erzeugen
#
# Das Startskript entspricht dem Original CachWolf.sh mit folgenden Änderungen:
# $PRGDIR                                 # festgelegtes Programmverzeichnis
# -c ~/.CacheWolf/pref.xml                # CacheWolf eine Einstellungsdatei fest vorgegeben
(
cat <<EOM
#!/bin/sh

cd $PRGDIR
java -Xms512M -Xmx1024M -cp CacheWolf.jar ewe.applet.Applet CacheWolf.CacheWolf -c ~/.CacheWolf/pref.xml &
EOM
) > /tmp/$STARTSKRIPT
chmod 755 /tmp/$STARTSKRIPT               # Startskript ausführbar machen

#
# Programm nach /opt und Startskript nach /usr/local/bin/ verschieben.
#
echo
echo ===================================================================
echo ' Das Programmverzeichnis wird nun nach /opt und das Startskript,'
echo ' sofern nicht vorhanden, nach /usr/lokal/bin verschoben. Dazu sind'
echo ' Adminrechte erforderlich:'
echo ===================================================================

sudo cp -a --no-preserve=owner $TMPDIR $PRGDIR 

test -e /usr/local/bin/$STARTSKRIPT
if [ "$?" = "0" ] 
then
        echo
	echo Hinweis: /usr/local/bin/$STARTSKRIPT bereits vorhanden
        echo
else
	sudo cp -a --no-preserve=owner /tmp/$STARTSKRIPT /usr/local/bin/
fi ;

# Aufräumen?
# rm -R /tmp/CacheWolf-Java
# rm /tmp/$STARTSKRIPT
}}}
Das Skript entpackt die die Datei '''CacheWolf-Java.zip''' nach '''/opt/CacheWolf-Java''', erzeugt ein Datenverzeichnis '''~/.CacheWolf''' im Homeverzeichnis mit einer minimalen Einstellungsdatei '''prefs.xml''' und legt ein Startskript '''cachewolf''' in '''/usr/local/bin/''' an. 
= Bedienung =
{{{#!vorlage Befehl
./cachewolf.sh
}}}

{{{#!vorlage Tabelle
<-2 tablestyle="width: 97%;" rowclass="titel"> Startparameter
+++
<rowclass="kopf"> Verfügbare Optionen
Bedeutung
+++
`-c preferences.xml`
lädt die angegebene Einstellungsdatei, z.B. `-c ~/pref.xml`
}}}

= Problembehandlung =
Benutzt man das Original-Startskript im CacheWolf Verzeichnis wird das Programm mit 
{{{#!code bash
java -Xms64M -Xmx1024M -cp CacheWolf.jar ewe.applet.Applet CacheWolf.CacheWolf &
}}}
gestartet. Hier kann es nach einige Zeit vorkommen, dass das Programm sehr träge wird und kaum noch zu bedienen ist. 
In so einem Fall hilft es den ersten Parameter '''-Xms''' auf '''512M''' zu erhöhen (siehe Diskussion [post:4630157:hier]).
{{{#!code bash
java -Xms512M -Xmx1024M -cp CacheWolf.jar ewe.applet.Applet CacheWolf.CacheWolf &
}}}
In den Skript-Beispielen dieses Artikels wurde der Wert bereits angepasst.

= Links =
 * [http://cachewolf.aldos.de/ Homepage] {de}
 * [https://www.geoclub.de/viewforum.php?f=40 Forum] {de}
 * [:Gebabbel:] - grafische Bedienungsoberfläche für [:GPSBabel:]

#tag: Geocaching, GPS, Java, Internet,