Archivo

Archivo para la categoría ‘Software’

Instalar rtorrent + rutorrent en Debian

viernes, 8 de agosto de 2014 Sin comentarios

Rtorrent es un cliente bittorrent por terminal disponible en los repositorios de varias distribuciones de linux, mientras que rutorrent es una aplicación web que se conecta a rtorrent para que se puedan manejar vía navegador los torrents.

image

La versión de los repositorios no cuenta con soporte para ser controlado remotamente, por lo que es necesario descargar el código fuente de rtorrent, libtorrent y xmlrpc-c para compilarlos manualmente y luego instalarlos.

Antes de comenzar debes instalar los programas requeridos para compilar

apt-get install gcc pkg-config libssl-dev g++ make libncurses5-dev libsigc++-2.0-dev libcurl4-openssl-dev subversion screen nano

Primero debes compilar XMLRPC-C

svn co http://svn.code.sf.net/p/xmlrpc-c/code/advanced xmlrpc-c
cd xmlrpc-c
./configure
make
make install

Luego libtorrent

wget http://libtorrent.rakshasa.no/downloads/libtorrent-0.13.3.tar.gz
tar zxvf libtorrent-0.13.3.tar.gz
cd libtorrent-0.13.3
./configure
make
make install

Posteriormente rtorrent, el que se instalará con soporte de xmlrpc-c compilado anteriormente

wget http://libtorrent.rakshasa.no/downloads/rtorrent-0.9.3.tar.gz
tar zxvf rtorrent-0.9.3.tar.gz
cd rtorrent-0.9.3
./configure –with-xmlrpc-c
make
make install
ldconfig

Ahora se debe configurar rtorrent, crearemos un usuario y las carpetas requeridas

useradd torrent
mkdir –p /home/torrent/rtorrent/{.session,download}
cp rtorrent-0.9.3/doc/rtorrent.rc /home/torrent/.rtorrent.rc
chown –R torrent:torrent /home/torrent/rtorrent

Luego debes editar la configuración

nano /home/torrent/.rtorrent.rc

Y cambiar

directory = /home/torrent/rtorrent/download
session = /home/torrent/rtorrent/.session
scgi_port = localhost:5000

Como servidor web usaré nginx en lugar de apache, por ocupar menos recursos, lo que es más apropiado para el Raspberry PI.

apt-get install nginx php5-fpm apache2-utils

(apache2-utils es para el comando htpasswd mencionado más adelante, no incluye el servidor web)

mkdir /var/www
cd
wget http://dl.bintray.com/novik65/generic/rutorrent-3.6.tar.gz
wget http://dl.bintray.com/novik65/generic/plugins-3.6.tar.gz
tar xvf rutorrent-3.6.tar.gz -C /var/www
tar xvf plugins-3.6.tar.gz -C /var/www/rutorrent
chown www-data:www-data -R /var/www/rutorrent
tar xvf rutorrent-3.6.tar.gz -C /var/www
tar xvf plugins-3.6.tar.gz -C /var/www/rutorrent
htpasswd -c /var/www/rutorrent/.htpasswd (nombreusuario)
chown www-data:www-data -R /var/www
nano /etc/nginx/sites-available/default

Donde dice nombreusuario reemplaza por el nombre de usuario deseado para ingresar a rutorrent, luego introduce dos veces una contraseña.

En el archivo default edita lo siguiente

root /var/www;
index index.php index.html index.htm;

Descomenta las líneas para activar PHP

location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        # NOTE: You should have «cgi.fix_pathinfo = 0;» in php.ini

        # With php5-cgi alone:
#       fastcgi_pass 127.0.0.1:9000;
#       # With php5-fpm:
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
}

Luego de estas líneas agregar

location /RPC2 {
        include scgi_params;
        scgi_pass 127.0.0.1:5000;
}

location /rutorrent {
        auth_basic «Restricted»;
        auth_basic_user_file /var/www/rutorrent/.htpasswd;
}

Si deseas activar HTTPS repite los pasos anteriores en la sección “server { listen 443; …”

Reinicia los servicios

service nginx restart
service php5-fpm restart

Finalmente debes ajustar unos parámetros de la configuración de rutorrent

nano /var/www/rutorrent/conf/config.php

Edita las siguientes líneas para especificar las rutas de curl y stat

«curl» ==> ‘/usr/bin/curl’, // Something like /usr/bin/curl. If empty, will be found in PATH.
«stat» ==> ‘/usr/bin/stat’, // Something like /usr/bin/stat. If empty, will be found in PATH.

Si ingresas a rutorrent aparecerá que no se pudo conectar a rtorrent, porque aún no se ha iniciado. Para iniciarlo inicia sesión como torrent, corre el comando screen y luego rtorrent. El comando screen permitirá cerrar la terminal y dejar rtorrent ejecutándose en segundo plano.

Fuentes:

rtorrent + rutorrent con nginx: http://vassie.me/rtorrent-and-rutorrent-on-ubuntu-server-with-nginx/

rtorrent + rutorrent con apache: http://www.adminsehow.com/2013/11/installing-rtorrentrutorrent-on-debian-7-wheezy/

Permission Denied al montar cifs en Linux Raspberry PI

viernes, 8 de agosto de 2014 1 comentario

Al montar una unidad cifs en el Raspberry PI me salía el error “mount error(13): Permission denied”, siendo que la carpeta compartida no requería autenticación y al ingresar desde un computador lo hacía directamente sin solicitar identificación. La unidad compartida era el puerto USB de un router Dlink DIR-626L (alias rollo de papel confort).

root@mastodon:~# mount.cifs //IP/usb_A1 /mnt -o guest
mount error(13): Permission denied

Al consultar el registro dmesg aparecía esto referente al error de montaje:

[47912.021716] CIFS VFS: cifs_mount failed w/return code = –13

Luego de una búsqueda por internet hallé que era un bug en el proceso de autenticación, el que se resuelve especificando que realice la autenticación por NTLM con el siguiente comando:

mount.cifs //IP/usb_A1 /mnt -o guest,sec=ntlm

Con esto el montaje se realizó correctamente, se puede comprobar al consultar con el comando mount

root@mastodon:~# mount
/dev/root on / type ext4 (rw,noatime,data=ordered)
(…)
/dev/mmcblk0p1 on /boot type vfat (rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,errors=remount-ro)
//IP/usb_A1 on /mnt type cifs (rw,relatime,vers=1.0,sec=ntlm,cache=strict,uid=0,noforceuid,gid=0,noforcegid,addr=IP,unix,posixpaths,…)

Para que se monte automáticamente al inicio del sistema agregué esta línea al archivo /etc/fstab

//IP/usb_A1   /mnt    cifs    guest,sec=ntlm,file_mode=0777,dir_mode=0777     0 0

Además del parámetro sec=ntlm agregué los parámetros file_mode y dir_mode para que todos los archivos y carpetas tengan permisos 777.

No more data to read from socket 17410 Oracle

lunes, 7 de julio de 2014 Sin comentarios

Intentando crear unos triggers en Oracle 11g XE usando el Oracle SQL Developer salía como error “17410 No more data to read from socket”, reinicié SQL Developer y persistía el error hasta que buscándolo por Internet el error correspondía a un error a nivel del servidor.

Esto estaba en los logs de Oracle

image

Windows thread id: 3508, image: ORACLE.EXE (SHAD)

*** 2014-07-07 16:20:11.144
*** SESSION ID:(49.5239) 2014-07-07 16:20:11.144
*** CLIENT ID:() 2014-07-07 16:20:11.144
*** SERVICE NAME:(SYS$USERS) 2014-07-07 16:20:11.144
*** MODULE NAME:(SQL Developer) 2014-07-07 16:20:11.144
*** ACTION NAME:() 2014-07-07 16:20:11.144
Dump continued from file: C:\ORACLEXE\APP\ORACLE\diag\rdbms\xe\xe\trace\xe_ora_3508.trc
ORA-00603: ORACLE server session terminated by fatal error
ORA-00600: internal error code, arguments: [kqlidchg1], [], [], [], [], [], [], [], [], [], [], []
ORA-00604: error occurred at recursive SQL level 1
ORA-00001: unique constraint (SYS.I_PLSCOPE_SIG
========= Dump for incident 1834 (ORA 603) ========

*** 2014-07-07 16:20:11.144
dbkedDefDump(): Starting incident default dumps (flags=0x2, level=3, mask=0x0)
—– Current SQL Statement for this session (sql_id=7f8r0bfacx7cc) —–

Posteriormente busqué este error en la Web por el código del mismo (kqlidchg1) encontrando la solución que consiste en desactivar la generación de identificadores en la sesión agregando esta sentencia al principio del script

ALTER SESSION SET PLSCOPE_SETTINGS = ‘IDENTIFIERS:NONE’;

Y al final del mismo

ALTER SESSION SET PLSCOPE_SETTINGS = ‘IDENTIFIERS:ALL’;

Con esto se solucionó el problema y se pudieron crear los triggers correctamente.

Fuente: http://logbuffer.wordpress.com/2011/10/19/oracle-ora-0600-on-creating-trigger-on-11-2/

Solucionar error exportacion Android Negative Time

domingo, 6 de julio de 2014 Sin comentarios

Otro error que puede suceder al exportar o ejecutar una aplicación Android en Eclipse, es que salga un error como este:

“errors occurred during the build errors running builder java builder on project negative time”

Este problema ocurre porque el atributo de fecha de alguno de los archivos es inválida. Para solucionar este problema se puede abrir y guardar el archivo para que se actualice la fecha de modificación.

Si usas Linux o Cygwin puedes actualizar las fechas de todos los archivos con estos comandos:

cd <carpeta proyecto>
find . | xargs touch

Categories: Android, Linux, Software, Windows Tags: ,