quinta-feira, 21 de janeiro de 2010

Linux Mint

Eu n sei vocês mas eu gosto do Linux Mint (http://www.linuxmint.com/), um linux com uma proposta muito boa

"The purpose of Linux Mint is to provide a desktop operating system that home users and
companies can use at no cost and which is as efficient, easy to use, and elegant as
possible.
One of the ambitions of the Linux Mint project is to become the best operating system
available by making it easy for people to get to use advanced technologies, rather than by
simplifying them (and thereby reducing their capabilities), or by copying the approaches
taken by other developers.
The goal is to develop our own idea of the ideal desktop. We think that it is best to make
the most out of the modern technologies that exist under Linux and make it easy for
everybody to use its most advanced features."

Um bom conjunto de software instalados por padrão.

depois de um "sudo aptitude dist-upgrade" a próxima coisa a se fazer e que eu sempre esqueço, por isso que eu to escrevendo aki é: sudo aptitude install build-essential, ai vai instalar um monte coisa necessária para você compilar varias outras ( digamos: Pacote com as ferramentas de desenvolvimento de software básico de Sistemas Linux) !!!!!

quinta-feira, 7 de janeiro de 2010

Criação de um servidor de SVN

Esse procedimento tem o objetivo demonstrar a criação de um servidor de SVN e a sua configuração para ser utilizado como um espelho do servidor Cairo.

Pacotes nessesarios:

  • Subversion
  • Apache2
  • libapache2-svn

Foi utilizado a versão 8.04 do ubuntu.

Obs. Foi utilizado o procedimento a seguir para a configuraçã do servidor Link

Os pacotes foram instalados com o comando “Aptitude”

  # aptitude install subversion apache2 lipapache2-svn

Para subir um servidor de SVN é necessário editar o seguinte arquivo: ”/etc/apache2/mods-available/dav_svn.conf”

Exemplo de configuração:

    
DAV svn
SVNParentPath /home/desenv/repositorio/

Após a configuração é necessario restart o Apache2:

 # "/etc/init.d/apache2 restart" 

e iniciar o serviço de svn com o comando:

 # "svnserve -d". 

Ao iniciar o serviço de SVN vocẽ pode verificar que a porta 3690 esta aberta.

 # netstat -putan
# tcp 0 0 0.0.0.0:3690 0.0.0.0:* LISTEN 10097/svnserve

O caminho para acesso do SVN é o ip da maquina mais SVNParentPath mais a pasta referente ao repositório:

 svn://172.20.30.16/home/desenv/repositorio/nfe/

Administração do SVN

Introdução

Esse procedimento tem o objetivo instruir a administração básica do SVN no processo de sincronizar repositórios em diferentes localidades.

  • Servidor Cairo - 172.20.30.230 = Repositório de todos os projetos, exceto NFe no qual ele é apenas um espelho.
  • Servidor SJC - 172.20.40.190 = Repositório apenas do NFe, espelhado no Cairo.

  • Comando utilizado “svnsync”

O sincronismo entre repositórios ocorre entre um repositório de origem e um repositório de destino. No caso de Finnet o repositório de origem é o repositório utilizado para comitar e subir as alterações e o repositório de destino, é uma copia da origem, e é utilizado para se fazer o checkout. Para realizar o sincronismo, primeiramente, devemos criar o arquivo “pre-revprop-change” e acrescentar o seguinte conteúdo, tanto no destino como na origem.

# cd /repo_dir/hooks/
# vi pre-revprop-change
#!/bin/bash
echo 0

Após a criação do arquivo setar a permissão abaixo na origem e no destino

$ chmod a+x hooks/pre-revprop-change

Depois editar o “conf/svnserve.conf conforme a indicação abaixo:

No repositório de Origem onde os dados são comitados a configuração será, leitura para acesso anônimo e leitura/escrita para acesso autenticado, conforme mostrado abaixo

$ cd /repo_dir/conf/
$ vi svnserve.conf
  anon-access = read
auth-access = write

No repositório de Destino, utilizado para fazer o checkout a configuração será, leitura/escrita para acesso anônimo e deverá ser comentada a linha de acesso autorizado.

$ cd /repo_dir/conf/
$ vi svnserve.conf
 anon-access = write
# auth-access = write

Após os procedimentos acima, o ambiente esta preparado e já podemos iniciar o sincronismo. o SVN trabalha fechando um túnel entre o Destino e a Origem. Abaixo um exemplo do comando a ser utilizado.

$ svnsync init svn://172.20.30.16/media/Canada/repos/nfe2/ svn://172.20.40.190/home/desenv/repositorio/nfe
(Repositório de Destino) (Repositório de Origem)

Ao fechar o túnel o sincronismo pode ser iniciar com o comando abaixo. Requisitando apenas o sincronismo para o destino.

$ svnsync sync svn://172.20.30.16/media/Canada/repos/nfe2/

No início do sincronismo o repositório de destino estra no estado de lock para previnir alterações e checkouts. Caso ocorra algum problema no sincronismo e ele seja interrompido antes do termino normal seu estado continua como lock. Os futuros sincronismos retornaram um erro com a informação “held by”. Será preciso “destravar” o repositório com o comando abaixo:

$ svn pdel --revprop -r 0 svn:sync-lock file://`pwd`/dest 

Outra necessidada pode ser a mudança do endereço de Origem gravado no repositório de Destino. para isso devemos utilizar o comando abaixo:

$ svn propset svn:sync-from-url --revprop -r 0 svn://nova_origem svn://destino_a_ser_alterado
$ svn propset svn:sync-from-url --revprop -r 0 svn://172.20.30.230/home/desenv/repositorio/nfe/ svn://172.20.30.168/home/desenv/repositorio/nfe/