Subversion no Qnap TS-109

Após comprar meu NAS Qnap TS-109 e fuçar suas configurações, dar uma olhada no sistema de arquivos, ligar o MySQL, o FTP e o Apache, percebi que seria uma boa configurar um servidor Subversion nele.

Após consultar o Oráculo encontrei dois sites muito úteis: o Wiki e o Fórum da Qnap.Visitando o fórum percebi que existe uma maneira bem prática de se instalar um aplicativo qualquer no NAS. É só usar o IPKG.

O ipkg é um gerenciador de pacotes no estilo apt-get e yum, mas voltado para dispositivos móveis. Como a arquitetura do meu NAS é ARM, similar aos handhelds que comumente rodam o ipkg, a própria Qnap adicionou suporte à este gerenciador de pacotes, denominando o pacote QPKG.

Para adicionar suporte ao ipkg foi bem simples, foi só atualizar o firmware do NAS, e depois seguir as instruções que o próprio site da Qnap oferece.

Instalado o QPKG, ficou bem simples instalar o Subversion:

ipkg update #ipkg install svn

E está instalado!

Repos

Instalado o Subversion, criei um diretória para conter o repositório que guardará meus dados. Para isto basta criar um Network Share,  que chamei de  Repos. Para criar basta entrar na página web do seu NAS e ir em Administration → Network Share Management. Por que não direto no shell? É por que os diretórios criados pela interface do NAS ficam disponíveis para o FTP, backup, Web File Manager, ACLs, sem dores de cabeça. Os diretórios criados assim ficam disponíveis como links simbólicos em /share.

Criado o diretório, foi só transformá-lo em um repositório SVN:

svnadmin create /share/Repos

Daemon

Falta apenas ligar um daemon para que o SVN fique ativo a cada reboot. Para que isto funcione, criei um script autorun.sh no diretório de configuração do NAS. Este diretório reside na memória flash do danado, então é necessário montá-lo, criar o script, tornar o script executável, desmontá-lo. E foi o que fiz:

mount -t ext2 /dev/mtdblock5 /tmp/config # vi /tmp/config/autorun.sh

Editei o arquivo com o Vi, inserindo o seguinte conteúdo:

!/bin/sh #sym-link /opt to /opt rm -rf /opt ln -sf /share/MD0_DATA/.qpkg/Optware /opt #export PATH export PATH='/bin:/sbin:/usr/bin:/usr/sbin:/usr/bin/X11:/usr/local/sbin/opt/bin:/opt/sbin' #run Optware packages start scripts for optscript in ls /opt/etc/init.d/S* | grep -v '~' | sort ${optscript} done

chmod +x /tmp/config/autorun.sh # umount /tmp/config

Isto faz com que quaisquer scripts que residam em /opt/etc/init.d/, e cujo nome comece com S, sejam rodados em ordem alfanumérica.

Só faltou criar o script que inicia o daemon do SVN:

mkdir /opt/etc/init.d #vi /opt/etc/init.d/S01svnserve

Com o seguinte conteúdo:

/opt/bin/svnserve -d -r /share/Repos

Testei em meu laptop com um:

svn list svn://IPdoNAS/

E tudo ok!

Fechando

O Qnap TS-109 me surpreendeu por sua flexibilidade. Muitos dispositivos por aí rodam com Linux embarcado, mas poucos se preocupam em oferecer ao usuário a possibilidade de extrair mais deste excelente SO, não se diferenciando de produtos que rodam com SO proprietário.

Mas o TS-109 é uma exceção. Só o fato de disponibilizar os pacotes Optware através do ipkg já se abrem as portas para inúmeros aplicativos, dentre eles o Subversion.