Gestão de projetos utilizando o Redmine 2.4 no Debian Wheezy

A gestão de projetos pode ser descrita como o processo de planejamento, execução e controle de um projeto, desde o seu início até à sua conclusão, com prazo determinado e várias tarefas que devem ser realizadas para se atingir o objetivo final, com um determinado custo e qualidade, através de atividades realizadas utilizando recursos técnicos e humanos.

No processo de gestão, o principal objetivo é um produto final, de acordo com as especificações, com o melhor desempenho possível, sob uma perspectiva dinâmica. Assim, a gestão do projeto forma um ciclo dinâmico, onde tudo gira em torno do planejamento, da execução e do controle.

Atualmente, os projetos, principalmente na área de desenvolvimento de software, estão cada vez mais complexos–extrapolam prazos, aumentam custos, comprometem a qualidade do produto final–por isso, um projeto deve ser bem gerenciado para minimizar ao máximo esses impactos. Para auxiliar o processo de gestão utilizamos ferramentas de software para gestão de projetos, que utilizam amplos conjuntos de funcionalidades, aderentes aos principais métodos e guias de boas práticas de gerenciamento de projetos utilizados no mercado.

O Redmine é uma poderosa e flexível aplicação web para gerenciamento de projetos. Desenvolvido usando o framework Ruby on Rails, é uma aplicação multi-plataforma e multi-banco de dados, que suporta os principais aspectos do processo de desenvolvimento de software. Além disso, possui código fonte aberto e sua licença está de acordo com os termos da GNU General Public License v2 (GPL).

Para esta instalação, utilizamos o Redmine 2.4 (versão estável no momento da escrita deste manual) e o sistema operacional Debian 7.3 (chamado de Wheezy, versão estável no momento desta escrita). Para a execução dos passos aqui descritos, é importante que você tenha conhecimentos básicos sobre o uso do Debian, shell, MySQL, Apache e Linux em geral. Para mantermos o foco, não explicamos todos os passos em detalhes. Os nomes de arquivos e caminhos neste documento estão sujeitos a mudanças, de acordo com a sua instalação.

Após aplicar todas as etapas de instalação descritas neste manual, você terá uma instância funcional do Redmine, de acordo com as especificações citadas abaixo. Se alguma etapa falhar, observe as versões dos softwares e das bibliotecas utilizadas, além da localização dos diretórios (estrutura dos diretórios) da instalação do sistema operacional em uso.

Convenções usadas neste documento:

  • Fonte monospace: é usada para indicar entradas do utilizador ou saídas do sistema, bem como configurações de arquivos.

Etapas de instalação

Instalação do Ruby, Rails, Gems and Passenger

  1. Preparando o sistema
    apt-get install gcc build-essential zlib1g zlib1g-dev zlibc libzlib-ruby libssl-dev libyaml-dev libcurl4-openssl-dev apache2-mpm-prefork apache2-prefork-dev libapr1-dev libxslt-dev checkinstall
  2. Baixando, construindo e instalando o Ruby
    cd ~
    wget http://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p448.tar.gz
    tar xvfz ruby-1.9.3-p448.tar.gz
    cd ruby-1.9.3-p448
    ./configure --enable-pthread --prefix=/usr/local
    make && checkinstall --type=debian --install=yes --fstrans=no --pakdir='~'
    
  3. Verificando se o Ruby está instalado e funcionando
    ruby -v

    Esperamos uma saída como esta:

    ruby 1.9.3p448 (2013-06-27 revision 41675) [x86_64-linux]
  4. Fazendo com que o Ruby suporte o OpenSSL
    cd ext/openssl/ 
    ruby extconf.rb 
    make && checkinstall --type=debian --install=yes --fstrans=no --pakdir='~' 
    
  5. O comando gem está instalado? O Ruby 1.9 vem com o RubyGems por padrão, então o comando gem já deve estar instalado. Se estiver corretamente instalado, o comando abaixo deverá apresentar uma saída com o número da versão como 1.8.2.x:
    gem -v 

    Agora, nós podemos instalar o rdoc:

    gem install rdoc 
  6. Instalando o Rails
    gem install rails --no-ri --no-rdoc 

    Nota: Você pode estar recebendo a mensagem de erro não existe arquivo para carregar- -- -zlib (LoadError). Neste caso, você deve instalar zlib primeiro:

    cd ruby-1.9.3-p448/ext/zlib/ 
    ruby extconf.rb 
    make 
    make install 
  7. Instalando o Passenger (servidor de aplicação)
    gem install passenger 
    passenger-install-apache2-module 
  8. Configurando o Apache
    Abra o arquivo /etc/apache2/mods-available/passenger.load com o seu editor de texto preferido e digite o conteúdo abaixo numa única linha (lembre-se de fazer os ajustes dos caminhos, se necessário). Salve as modificações no arquivo:
    LoadModule passenger_module /usr/local/lib/ruby/gems/1.9.1/gems/passenger-4.0.37/buildout/apache2/mod_passenger.so

    Abra o arquivo /etc/apache2/mods-available/passenger.conf e digite o conteúdo abaixo (lembre-se de fazer os ajustes dos caminhos, se necessário). Salve as modificações no arquivo:

    PassengerRoot /usr/local/lib/ruby/gems/1.9.1/gems/passenger-4.0.37
    PassengerRuby /usr/local/bin/ruby
    PassengerDefaultUser www-data
    
  9. Ativando o módulo Passenger
    a2enmod passenger

Instalando o Redmine

  1. Baixando o Redmine
    Para a nossa instalação, baixámos a última versão estável (Redmine 2.4). Você pode encontrar essa versão no website do Redmine (http://www.redmine.org/projects/redmine/wiki/Download). Descompacte o arquivo em /opt/redmine utilizando os comandos de descompactação o unzip, gunzip ou similar.
  2. Mais preparos no sistema
    Nota: A instalação do pacote libmagickwand-dev acompanha muitas outras instalações de outros pacotes (dependências/recomendações). Se você encontrar um erro no pacote de instalação, você pode tentar limpar (executar o purge), em seguida, instalar os pacotes *-dev ou instalar os pacotes separadamente. Utilizando o comando gem install.
    gem install bundler mysql2 
    apt-get install libmagick9-dev libmysqlclient-dev 
    cd /opt/redmine 
    bundle install --without postgresql 
    
  3. Criando o banco de dados
    Antes de efetuarmos esta etapa, instalamos o MySQL versão 5.5:
    apt-get install mysql-server mysql-client 

    Os comandos abaixo foram executados no cliente MySQL para a criação do banco de dados, do usuário redmine e definição de privilégios, respectivamente.

    create database redmine character set utf8;
    create user 'redmine'@'localhost' identified by 'XXX';
    grant all privileges on redmine.* to 'redmine'@'localhost';
  4. Configurando a conexão com o banco de dados
    Abra o arquivo /opt/redmine/config/database.yml com o seu editor de texto preferido e digite o conteúdo abaixo. Salve as modificações no arquivo:
    production:
            adapter: mysql2
            database: redmine
            host: localhost
            username: redmine
            password: XXX
  5. Gerando uma sessão secreta de armazenamento
    rake generate_secret_token 
  6. Preparando o banco de dados / Criando tabelas
    RAILS_ENV=production rake db:migrate 
  7. Definindo as permissões para o sistema de arquivos
    cd /opt/redmine 
    mkdir tmp tmp/pdf public/plugin_assets 
    chown -R www-data:www-data files log tmp public/plugin_assets 
    chmod -R 755 files log tmp public/plugin_assets 
  8. Testando a sua instalação do Redmine
    ruby script/rails server webrick -e production 

    Agora acessamos http://localhost:3000 e observamos o Redmine em ação.

Configurando o Apache e o Passenger

ln -s /opt/redmine/public /var/www/redmine2 

Abrimos o arquivo /etc/apache2/sites-available/redmine com o seu editor de texto preferido e digite o conteúdo abaixo. Salve as modificações no arquivo:

   RailsEnv production
   RackBaseURI /redmine2
   Options -MultiViews

Agora ativamos o novo site:

a2ensite redmine 

Reiniciamos o Apache e testamos a nossa nova URL: http://localhost/redmine2

Referências

    1. NIGGEMANN, Jan. Redmine Installation Instructions. 2014. Disponível em: http://hz6.de/installing-redmine-on-debian.html. Actualizado à pedido do autor do site em: 25 de Março de 2015.
    2. ROLDÃO, Victor Sequeira. Gestão de projetos: uma perspectiva integrada. São Carlos: EdUFSCar, 2004.

Publicado na edição 46 (PDF) da Revista PROGRAMAR.