Programação e Linux.

sábado, 24 de julho de 2010

Acessar menu do grub 2 no Ubuntu 10.04 (lucid)

Desde a versão 9.10 (karmic), o Ubuntu deixou de usar o Grub 0.92 (Legacy), passou a usar o Grub 2 e não mais apresenta o menu inicial para escolher qual kernel iniciar (se você tem dual boot, não há problema), como então acessar o menu?

Simples, basta pressionar o SHIFT esquerdo durante a inicialização.

quinta-feira, 22 de julho de 2010

Trac + Subversion + Apache

Aqui vou tentar explicar como instalar o subversion mais o trac rodando em cima do apache no Ubuntu 10.04 (Lucid),

Se o apache, o trac ou subversion não estiverem instalados, faça:
apt-get install subversion #Version: 1.6.6dfsg-2ubuntu1
apt-get install apache2 #Version: 2.2.14-5ubuntu8
apt-get install trac #Version: 0.11.7-1

Preparação inicial
Verifique se tem os módulos necessários no apache
root@mesh-server:~# apache2ctl -M | grep dav
Syntax OK
dav_module (shared)
dav_svn_module (shared)
root@mesh-server:~#
root@mesh-server:~# apache2ctl -M | grep wsgi
Syntax OK
wsgi_module (shared)
root@mesh-server:~#
No ubuntu instale via:
apt-get install libapache2-svn #necessário para o svn
apt-get install libapache2-mod-wsgi #necessário para o trac

Crie um local para os repositórios:
mkdir /var/lib/svn
chown www-data:www-data /var/lib/svn/

Crie um local para os trac's:
mkdir /var/lib/trac
chown www-data:www-data /var/lib/trac/

Crie um local para guardar o script wsgi do trac:
mkdir /var/lib/cgi-bin
chown www-data:www-data /var/lib/cgi-bin

Configurando o Apache
Configure o apache /etc/apache2/sites-available/svn com o seguinte conteúdo
<virtualhost *:80>

ServerAdmin webmaster@localhost
ServerName svn-server.local

DocumentRoot /var/www

<directory />
Options FollowSymLinks
AllowOverride None
</directory>

<directory /var/www>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
deny from all
</directory>

WSGIScriptAlias /trac /var/lib/cgi-bin/trac.wsgi
<directory /var/lib/cgi-bin/trac.wsgi>
WSGIApplicationGroup %{GLOBAL}
Order deny,allow
Allow from all
</directory>

<Location "/trac/[^/]+/login">
AuthType Basic
AuthName "Trac"
AuthUserFile /var/lib/svn/svn-auth-file
Require valid-user
</Location>

ErrorLog /var/log/apache2/svn-server-error.log
LogLevel warn
CustomLog /var/log/apache2/svn-server-access.log combined

<location /svn>
DAV svn
SVNParentPath /var/lib/svn
SVNListParentPath on

Order deny,allow
Allow from all

AuthType Basic
AuthName "Subversion"
AuthUserFile /var/lib/svn/svn-auth-file
Require valid-user
</location>

</virtualhost>

Crie o link para o arquivo de configuração
ln -s /etc/apache2/sites-available/svn /etc/apache2/sites-enabled/001-svn

Veja se tudo está ok:
apache2ctl configtest

Reinicie o apache
apache2ctl restart

Criando o script WSGI para acessar o trac pelo Apache
crie o arquivo /var/lib/cgi-bin/trac.wsgi com o seguinte conteúdo
#!/usr/bin/python
# -*- coding: utf-8 -*-
import trac.web.main
def application(environ, start_response):
environ['trac.env_parent_dir'] = '/var/lib/trac'
return trac.web.main.dispatch_request(environ, start_response)
Coloque as permissões corretas
chown www-data:www-data /var/lib/cgi-bin/trac.wsgi

Administrando os usuários


Adicione o primeiro usuário (ex: iuri) com:
sudo -H -u www-data htpasswd -cm /var/lib/svn/svn-auth-file iuri

Nos próximos (ex: diniz) use::
sudo -H -u www-data htpasswd -m /var/lib/svn/svn-auth-file diniz

Criando os repositórios
Para criar um repositório (ex: wolla), faça:
sudo -H -u www-data svnadmin create /var/lib/svn/wolla

Criado os Trac's
Crie um Trac após criar um repositório subversion (veja acima como).

Para criar o trac (ex: wolla) para o repositório criado no passo anterior (ex: wolla), faça, mas fique atento as perguntas:
sudo -H -u www-data trac-admin /var/lib/trac/wolla/ initenv

Project Name [My Project]> wolla [ENTER]
Database connection string [sqlite:db/trac.db]> [ENTER]
Repository type [svn]> [ENTER]
Path to repository [/path/to/repos]> /var/lib/svn/wolla/ [ENTER]
Agora é preciso configurar pelo menos um usuário ADMIN no trac para poder usar a interface web do trac-admin, para isso faça (ex: usuário iuri em wolla):
trac-admin /var/lib/trac/wolla/ permission add iuri TRAC_ADMIN

Integrando os commits do subversion com o tickets do Trac
Crie (ou modifique) o arquivo post-commit para o repositório subversion (ex: wolla) que deseja integrar ao respectivo Trac (ex: wolla) na pasta hooks do repositório (ex: /var/lib/svn/wolla/hooks/post-commit)
#!/bin/sh
REPOS="$1"
REV="$2"
TRAC_ENV="/var/lib/trac/wolla/"
python /usr/share/doc/trac/contrib/trac-post-commit-hook -p "$TRAC_ENV" -r "$REV"
Aplique as permissões corretas:
chown www-data:www-data /var/lib/svn/wolla/hooks/post-commit
chmod +x /var/lib/svn/wolla/hooks/post-commit

Corrigindo um BUG do syntax
highlighting do Trac

O suporte pygments do trac possui um bug no pacote que vem no Ubuntu 9.10, o link para o jquery.js não foi setado corretamente, para habilitar este suporte basta fazer:
ln -s /usr/share/javascript/jquery/jquery.js /usr/lib/python2.6/dist-packages/trac/htdocs/js

segunda-feira, 12 de julho de 2010

Desabilitar IPv6

A maioria das distribuições Linux vem com IPv6 habilitado e, na maioria das vezes, é desnecessário.

Para desabilitar e aumentar a performance do DNS faça (usando sudo):
echo 'net.ipv6.conf.default.disable_ipv6=1' | sudo tee /etc/sysctl.d/60-disable-ipv6.conf
Reinicie as interfaces de rede (ou reinicie o computador)

O quê? reiniciar o computador é coisa para windows? tá bem, faça então assim:
echo 1 | sudo tee /proc/sys/net/ipv6/conf/`route -n | grep ^0.0.0.0 | awk '{print $8}'`/disable_ipv6