Transmission come client torrent CLI e webinterface


Update: vedi il più recente articolo Transmission con le Qt per ulteriori approfondimenti

Ma che bel titolo astruso! Iniziamo a spegarlo.

CLI significa Command Line Interface, che significa Interfaccia a linea di comando. Un programma ha una CLI significa che può essere avviato e usato dal terminale. Qualche esempio? La bash, la shell con cui tutti i bravi linuxiani fanno subito amicizia. Oppure gdb, il debugger con cui molti programmatori debuggano i loro programmi. Oppure tramsmission. Già, perché a volte non server un’interfaccia grafica, specialmente se non c’è neanche uno schermo, come spesso accade nei server. Si accede con ssh, si fanno lavori da remoto e lo si lascia lavorare, magari nascosto in uno sgabuzzino. E per fare lavori come scaricare torrent, in cui un computer deve lavorare a lungo, un server è perfetto: non sovraccarica un computer desktop, in modo che questo possa anche essere spento o riavviato e tiene i files sempre a disposizione. Bene, se abbiamo un computer fisso, magari anzianotto, che è attaccato alla nostra LAN, da oggi sapremo come utilizzarlo per scaricare i nostri torrent senza occupare il nostro computer nuovo e splendente.

Bene, abbiamo scelto transmission. Perché? Perché è un client altamente configurabile ma che rimane, nella sua interfaccia, limpido, pulito e semplice. Perché ha raggiunto un grado di stabilità e di completezza da non invidiare a nessun altro client. Perché è talmente configurabile che si può scegliere a compile-time tra quattro diversi tipi di interfacce, senza che una escluda l’altra. I quattro tipi di interfaccia disponibili sono: GTK (il principale), Qt (e sì, sono stato triste di non usare questo, ma per una volta avevo altri scopi), CLI (già spiegato) e webinterface (sul quel torneremo dopo e che sarà l’interfaccia principale che useremo. Abbiamo Ubuntu? Bene, sarà più facile installare le dipendenze. Non lo abbiamo? Non fa niente, si tratta di poca roba; visto che andremo a compilare da sorgente, in fondo nessuna distribuzione sarà svantaggiata su un’altra.

Compilazione e installazione

Nel mio caso ho il mio computer desktop all’indirizzo IP 192.168.2.103 e il server (nel mio caso una macchina virtuale di VirtualBox, ma va benissimo un server qualunque, anche senza schermo o tastiera, purché abbia un server ssh attivo) all’indirizzo 192.168.2.102. Naturalmente se abbiamo pieno accesso al server che utilizzeremo possiamo svolgere tutti i nostri compiti direttamente da lì.

Le dipendenze sono: build-essential (necessario per compilare qualunque programma), libssl-dev, pkg-config, libcurl4-openssl-dev, initltool. Quindi se abbiamo Ubuntu (nel mio caso ho usato una Ubuntu Karmic, ancora alpha, ma mi risulta che Jaunty vada più che bene), basta digitare:

sudo apt-get install -y build-essential libssl-dev pkg-config libcurl4-openssl-dev intltool

Se siete utenti di un’altra distribuzione, ricordate che i pacchetti *-dev possono avere il suffisso o non averlo; normalmente quelli con il suffisso -dev servono per compilare programmi che usano quella libreria; nel nostro caso, quindi, servono quelli con il suffisso -dev.

Installate le dipendenze, possiamo ottenere i sorgenti. Andiamo sul sito di Transmission, alla pagina dei downloads. Scegliamo di scaricare i sorgenti. Ora abbiamo due possibilità (se stiamo lavorando con due computer come me): scaricare i sorgenti sul desktop e poi trasferirli sul server con scp, ftp, chiave usb, … Oppure di copiare l’indirizzo del pacchetto tar.bz2 e scaricarlo direttamente sul server. Per fare ciò, apriamo la nostra connessione ssh sul server e digitiamo:

cd /tmp
wget http://mirrors.m0k.org/transmission/files/transmission-1.73.tar.bz2

Questo scaricherà la versione 1.73 (al momento l’ultima) nella directory /tmp del nostro sistema. Che il download l’abbiamo fatto in questo modo o in un altro modo, ora assumerò che nella directory /tmp del server sia presente l’archivio transmission-1.73.tar.bz2 (o equivalente).

Scompattiamolo con

tar xvjf transmission*.tar.bz2

ed entriamo nella cartella appena creata con cd transmission-1.73. Ora creiamo la configurazione:

./configure --disable-gtk --enable-cli --enable-daemon --quiet

Questo imposterà l’ambiente per la compilazione. A questo punto, compiliamo e installiamo con

make && sudo make install

Avvio del demone

Per avviare il demone è sufficiente aprire il programma transmission-daemon. Questo demone si avvia di default sulla porta 9091. L’unico problema è che per questioni di sicurezza permette l’accesso soltanto al localhost, quindi a sé stesso. Se vogliamo permettere anche ai computer della nostra rete domestica di accedere, dobbiamo aggiungere un parametro che vedremo qui sotto. Alrimenti si può anche permettere a un computer singolo di accedere, per esempio in una rete aziendale vasta. Oltre a ciò si può anche impostare un accesso con username e password per rendere ancora più sicuro l’utilizzo della webinterface. Ricordo che la distribuzione di tipo torrent non serve solo al file sharing di distribuzioni linux o di tutti quei bei file che si trovano su Thepiratebay o Mininova: un gruppo di aziende può mettere a disposizione vicendevolmente un torrent contenente file anche di grandi dimensioni e distribuirlo tramite questo protocollo. In quest’ottica si vede chiaramente quanto può essere utile avere un client così configurabile.

Ad ogni modo, per avviare il demone permettendo a tutta la rete locale di accedere alla webinterface il comando è il seguente:

transmission-daemon -a 192.168.*

Avviato il demone, andiamo con il nostro browser (del desktop) all’indirizzo del nostro server, porta 9091. Nel mio caso, l’indirizzo è http://192.168.2.102:9091. Vedremo una finestra bella pulita, molto simile all’interfaccia classica di Transmission.

L'interfaccia web di transmissionL”interfaccia web di transmission

Da qui potremo iniziare nuovi scaricamenti, interrompere quelli presenti, visualizzare informazioni dettagliate su ognuno di essi e impostare molte opzioni. Il pulsante in basso a sinistra permette di accedere alle opzioni. Per inserire un nuovo scaricamente bisogna mettere a disposizione di transmission il file .torrent, che si può trovare sia sul computer su cui sta girando il browser, sia su Internet a un indirizzo qualunque. L’interfaccia grafica è particolarmente chiara ad auto-esplicativa.

6 Responses to Transmission come client torrent CLI e webinterface

  1. Eio says:

    Ciao! leggo spesso il tuo blog, veramente interessantissimo!

    una precisazione (con domanda annessa):
    sarebbe utile, secondo me, poter limitare la banda durante certe ore del giorno, di modo da permette ad altri utenti di navigare senza problemi. questo è possibile tramite interfaccia grafica (modifica > preferenze > banda). Nel manuale di transmission c’è un rimando al file .config/transmission-daemon/settings.json , dove ci son le varie opzioni (inclusa quella di limitare globalmente la banda), ma manca la limitazione ad orario!
    Speriamo venga implementata!

  2. Ale says:

    ciao,
    io ho installato il client nel mio nas, ho modificato/salvato il file settings.json le indicare la cartella di destinazione dei file….
    il problema è che nel caso dovessi riavviare il nas, le modifiche apportate al settings.json vengono perse e il file quindi torna in stato di default…
    come posso ovviare a questo problema

    grazie

    • andyspiros says:

      Mi dispiace, qui il problema non è di Transmission, ma, da quanto ho capito, del modo in cui il tuo dispositivo salva i file. Se il tuo dispositivo ripristina una versione precedente di ogni file che è stato salvato nella sessione precedente perché lavora con memoria volatile, credo che sia necessario far sì che il file venga salvato nella memoria non volatile, ma come farlo purtroppo io non lo so.

      • Ale says:

        ho risolto il problema…
        è stato sufficiente spostare la cartella config (dove veniva salvato in modo volatile il file setting del client) in un’altra locazione che viene salvata nell’hd in maniera stabile

  3. cataldo says:

    la guida è perfetta, tanto da non aver incontrato alcun problema a installare transmission, ma ho un problema che non so da cosa possa dipendere: no such file or directory appare in calce ai torrent.
    Quindi nessun avanzamento nello scarico! non so cosa fare aiutatemi!

Leave a reply to andyspiros Cancel reply