[[Vorlage(archiviert)]] {{{#!vorlage Hinweis Das Webinterface benötigt einen installierten und eingerichteten [:Apache:] oder [:lighttpd:] Webserver mit [:PHP:] Unterstützung. }}} {{{#!vorlage Wissen [:Packprogramme: Archive entpacken] [:Pakete_installieren: Installation von Programmen] [:Paketquellen_freischalten: Bearbeiten von Paketquellen] [:Programme_kompilieren: Pakete aus dem Quellcode erstellen] [:Editor: Einen Editor öffnen] [:Terminal: Ein Terminalfenster öffnen] [:Autostart: Automatischer Start von Programmen] }}} [[Inhaltsverzeichnis(3)]] [http://btg.berlios.de/ BTG] {en} stand ehemals für BitTorrent GUI, ist aber mittlerweile ein [:BitTorrent:] Client Daemon (Systemdienst), der im Hintergrund läuft und zu dem sich grafische Oberflächen verbinden können. Das Prinzip ist mit dem [:MPD:Music Player Daemon] vergleichbar. Zur Auswahl stehen zwei textbasierte, eine grafische GTK-Oberfläche und eine Weboberfläche. = Installation = == Herunterladen == Unter [http://btg.berlios.de Builds and Releases] {en} wählt man eine gewünschte '''BTG''' Dateiversion und die zugehörige '''Rasterbar libtorrent''' Bibliothek, lädt sie herunter und entpackt [1] sie. == Abhängigkeiten == Die [:Archiv/libtorrent:Rasterbar libtorrent] Bibliothek hat zahlreiche eigene Abhängigkeiten und wird auch noch von anderen Programmen benutzt, daher ist deren Installation auf einer eigenen Wiki Seite beschrieben. Wichtig ist, dass diese vor BTG kompiliert und installiert wird! Folgende Pakete müssen zum Kompilieren von BTG installiert [2] werden: * '''libboost-thread-dev''' (''universe'', [3]) * '''libboost-filesystem-dev''' (''universe'') * '''libboost-date-time-dev''' (''universe'') * '''libboost-iostreams-dev''' (''universe'') * '''libboost-program-options-dev''' (''universe'') * '''dialog''' (''universe'') * '''autoconf''' * '''automake''' * '''libtool''' * '''pkg-config''' * '''libgnutls-dev''' * '''libgtkmm-dev''' (''universe'') * '''libgtkmm-2.4-dev''' (''universe'') * '''libncurses5-dev''' [[Vorlage(Pakete, libboost-thread-dev, libboost-filesystem-dev, libboost-date-time-dev, libboost-iostreams-dev, libboost-program-options-dev, dialog, autoconf, automake, libtool, pkg-config, libgnutls-dev, libgtkmm-dev, libgtkmm-2.4-dev, libncurses5-dev)]] == Kompilieren == Eine Besonderheit ist die Möglichkeit die Installation vor dem Kompilieren [4] mit Parametern nach den eigenen Bedürfnissen anzupassen. * Beispiel: {{{#!vorlage Befehl ./configure --enable-gui --enable-cli --enable-www --enable-session-saving --enable-event-callback --enable-command-list }}} ||'''Option'''||'''Beschreibung'''|| || ``--enable-gui`` || den GTK Clients einbauen || || ``--enable-cli`` || die Textoberfläche einbauen || || ``--enable-www`` || den webbasierten Client einbauen || || ``--enable-debug`` || Debug-Informationen einkompilieren (hilfreich bei Fehlermeldungen) || || ``--enable-unittest`` || Unittests erstellen (für Entwickler) || || ``--enable-session-saving`` || Speichern der letzten Sitzung (daemon). || || ``--enable-event-callback`` || Ausführen von Skripten bei bestimmten Ereignissen (daemon) || || ``--enable-upnp`` || [wikipedia:Universal_Plug_and_Play:UPnP]-Unterstützung (daemon) benötigt [http://sourceforge.net/projects/clinkcc/ CyberLink] {en} UPnP Bibliothek. || || ``--enable-command-list`` || Kommandoliste generien (interne Option). || Das eigentliche Kompilieren [4] und Installieren läuft ansonsten nicht weiter ungewöhnlich ab. = Konfiguration = == Benutzer == BTG ist mehrbenutzerfähig, daher müssen zunächst Benutzer eingerichtet und eine entsprechende Ordnerstruktur erstellt werden: {{{#!vorlage Hinweis Die Ordner müssen vor der Benutzereinrichtung erstellt werden, ansonsten erhält man eine Fehlermeldung. }}} {{{#!vorlage Befehl btgpasswd --create -a -t "~/.btg/users/max/torrents" -w "~/.btg/users/max/work" -d "~/.btg/users/max/finished" -s "~/.btg/users/max/seeding" -p -u max }}} ||'''Parameter'''||'''Beispiel'''||'''Beschreibung'''|| || ``~`` || /home/mustermann || ``~`` ist das UNIX-Symbol für das Homeverzeichnis || || ``-a`` || max || ein neuer BTG-Benutzer wird hinzugefügt (engl. ''add'') || || ``-t`` || ~/.btg/users/max/torrents || hier werden die .torrent Dateien temporär gespeichert || || ``-w`` || ~/.btg/users/max/work || das Arbeitsverzeichnis ''work'' für laufende Downloads || || ``-d`` || ~/.btg/users/max/finished || für "destination", also beendete Downloads, die nicht mehr hochgeladen werden || || ``-s`` || ~/.btg/users/max/seeding || für "seeding", sprich abgeschlossene Downloads, die noch hochgeladen werden um eine ausgewogene Ratio (Verhältnis Up-/Download) zu erreichen || == Client == Die folgende Datei konfiguriert die Clientprogramme. Es wird empfohlen sie weiter unten herunterzuladen, anzupassen [5] und dann nach '''~/.btg/client.ini''' zu kopieren. {{{[transport] default=xml-rpc [network] daemon-address=127.0.0.1:16000 [logging] type=file filename=~/.btg/client.log }}} [attachment:BTG/client.ini:inline:client.ini] * Benutzt das XML-RPC Protokoll. * Die Clients verbinden sich an den lokalen Rechner über Port 16000 * Eine Protokolldatei wird angelegt und geführt. == Daemon == Die folgende Datei konfiguriert den Daemon. Es wird empfohlen sie weiter unten herunterzuladen, anzupassen [5] und dann nach '''~/.btg/daemon.ini''' zu kopieren. {{{[auth] passwd-file=~/.btg/passwd [transport] default=xml-rpc [network] listen-to=0.0.0.0:16000 torrent-range=10024:10025 [logging] type=file filename=~/.btg/daemon.log [misc] banfile=~/.btg/bans [savesessions] enable=true filename=~/.btg/daemon.saved timeout=60 [limit] upload_rate_limit = 61440 download_rate_limit= -1 max_uploads = -1 max_connections = -1 }}} [attachment:BTG/daemon.ini:inline:daemon.ini] * Pfad für die auth Datei, in der die Benutzerdaten stehen, wird angegeben. * Benutzt unverschlüsselten XML-RPC für die Verbindung von Backend und Frontends. * Eine Protokolldatei wird angelegt und geführt. * Über den Port 16000 kommuniziert der Daemon mit seinen Oberflächen. * Port 10024-10025 werden für libtorrent verwendet. Mit DHT werden zwei Ports verwendet, sonst einer. Es müssen entsprechende Regeln in einer Firewall oder einem Proxy-Server definiert werden, die Kommunikation mit anderen Teilnehmern erlauben. * Geschwindigkeitslimits für Hochladen, Runterladen (in Bytes / Sekunde), maximale Verbindungen / Uploadslots. = Benutzung = == Sitzungen == Die Benutzung unterscheidet sich nicht groß von anderen BitTorrent Clients. Eine kleine Besonderheit ist die Sitzungsverwaltung. Informationen über Torrents innerhalb einer Sitzung bleiben auch bei einem Neustart des Rechners erhalten. Man wählt also zunächst, ob man eine neue Sitzung erstellen möchte oder sich einer bereits existierenden Sitzung anschließen möchte. Sitzungen gruppieren die Downloads und werden durchnummeriert. == Daemon == Der Start des Daemons lässt sich mit folgendem Befehl im Terminal [6] testen: {{{#!vorlage Befehl btgdaemon -n -v }}} Der Parameter ``-n`` verhindert, dass der Daemon in den Hintergrund tritt und ``-v`` (Verbose) zeigt weitere Statusinformationen. Läuft die Verbindung mit dem den Oberflächen und den übrigen Torrents zufriedenstellend, so kann man '''btgdaemon''' ohne Parameter beim Hochfahren des Systems automatisch starten [7] lassen. == Clients == === Webinterface === Zunächst sollte man einen symbolischen Link erstellen um wwwBTG über den Webserver zu erreichen: {{{#!vorlage Befehl ln -s /usr/local/share/wwwbtg/htdocs /var/www/btg }}} Danach einfach das Webinterface über '''[http://localhost/btg http://localhost/btg]''' aufrufen oder für Fernzugriff localhost gegen die jeweilige IP-Addresse ersetzen. === Textoberfläche === {{{#!vorlage Befehl btgncli }}} Startet einen Client mit Textoberfläche und Menüführung per Tastatur in einem Terminalfenster [6]. {{{#!vorlage Warnung In der Textoberfläche bedeutet '''quit''' = Sitzung beenden (alle Torrents werden abgebrochen). Stattdessen zum Abmelden den Befehl '''detach''' = Oberfläche von Sitzung ablösen (Torrents laufen in der Sitzung weiter) verwenden. }}} === Kommandozeile === {{{#!vorlage Befehl btgcli -A }}} Dies startet einen simplen Kommandozeilen Client. Der Parameter ``-A`` (für attach) sorgt dafür, dass zur ersten verfügbaren Sitzung verbunden wird. Ohne Parameter wird eine neue Sitzung erstellt. = Links = * [http://btg.berlios.de Internetseite] {en} , [http://btg.berlios.de/faq.html häufig gestellte Fragen] {en} und [http://btg.berlios.de/howto.html Anleitung] {en} * [http://developer.berlios.de/projects/btg/ Projektseite] {en} mit [http://developer.berlios.de/bugs/?group_id=3293 Fehlermanagement] {en} und [http://developer.berlios.de/blog/categories/32-BTG Entwicklerblog] {en} ---- # tag: Internet, Netzwerk, Filesharing