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.
LoL - Linux on Limbo
Programação e Linux.
sábado, 24 de julho de 2010
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
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
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
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
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)
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
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 davNo ubuntu instale via:
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:~#
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/pythonColoque as permissões corretas
# -*- 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)
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]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):
Database connection string [sqlite:db/trac.db]> [ENTER]
Repository type [svn]> [ENTER]
Path to repository [/path/to/repos]> /var/lib/svn/wolla/ [ENTER]
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/shAplique as permissões corretas:
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"
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
Marcadores:
apache,
subversion,
svn,
trac,
ubuntu
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
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
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
sábado, 26 de junho de 2010
VMWare Workstation e VMWare Player no Ubuntu 9.10
Toda vez que atualizo o Ubuntu a mesma coisa, o VMWare para de funcionar...
Bem, primeiro a instalação, simplesmente ele trava na instalação porque não consegue compilar os módulos no kernel 2.6.32. Para resolver é só pedir para instalar sem os módulos, assim:
export VMWARE_SKIP_MODULES=true
sh ./VMware-Workstation-6.5.4-246459.x86_64.bundle --console
O mesmo vale para o VMWare player, apenas troque o executável.
Resolvida esta etapa agora vamos para a segunda, alterar os fontes para poder compilar, entre no diretório do módulos:
cd /usr/lib/vmware/modules/source/
Crie BACKUPS
mkdir BACKUP
cp vmnet.tar vmci.tar BACKUP/
Agora alteremos o vmnet, descompacte o vmnet.tar
tar xf vmnet.tar
Abra o arquivo vmnet-only/vnetUserListener.c e adicione:
#include "compat_sched.h"
Ficará assim:
tar cf vmnet.tar vmnet-only/
Apague o diretório vmnet-only:
rm -Rf vmnet-only/
Depois o vmci, descompacte o vmci.tar
tar xf vmci.tar
Abra o arquivo vmci-only/include/pgtbl.h e adicione:
#include "compat_sched.h"
Ficará assim:
tar cf vmci.tar vmci-only/
Apague o diretório vmci-only:
rm -Rf vmci-only/
Finalmente vamos compilar os módulos:
vmware-modconfig --console --install-all
Outro problema que pode ocorrer é mouse (ponteiro) ficar maluco no VMWare, perder foco, aparecer dois ponteiros, etc... Para resolver crie ou edite o arquivo /etc/vmware/bootstrap para ter o seguinte conteúdo:
export VMWARE_USE_SHIPPED_GTK="force"
Bem, primeiro a instalação, simplesmente ele trava na instalação porque não consegue compilar os módulos no kernel 2.6.32. Para resolver é só pedir para instalar sem os módulos, assim:
export VMWARE_SKIP_MODULES=true
sh ./VMware-Workstation-6.5.4-246459.x86_64.bundle --console
O mesmo vale para o VMWare player, apenas troque o executável.
Resolvida esta etapa agora vamos para a segunda, alterar os fontes para poder compilar, entre no diretório do módulos:
cd /usr/lib/vmware/modules/source/
Crie BACKUPS
mkdir BACKUP
cp vmnet.tar vmci.tar BACKUP/
Agora alteremos o vmnet, descompacte o vmnet.tar
tar xf vmnet.tar
Abra o arquivo vmnet-only/vnetUserListener.c e adicione:
#include "compat_sched.h"
Ficará assim:
--- vnetUserListener.c.orig 2010-06-26 21:29:00.211616293 -0300Compacte-o novamente:
+++ vnetUserListener.c 2010-06-26 21:29:13.682020616 -0300
@@ -33,6 +33,7 @@
#include
#include "compat_skbuff.h"
#include "compat_wait.h"
+#include "compat_sched.h"
#include "vnetInt.h"
tar cf vmnet.tar vmnet-only/
Apague o diretório vmnet-only:
rm -Rf vmnet-only/
Depois o vmci, descompacte o vmci.tar
tar xf vmci.tar
Abra o arquivo vmci-only/include/pgtbl.h e adicione:
#include "compat_sched.h"
Ficará assim:
--- vmci-only/include/pgtbl.h.orig 2010-06-26 21:33:04.354440359 -0300Compacte-o novamente:
+++ vmci-only/include/pgtbl.h 2010-06-26 21:33:23.934592340 -0300
@@ -24,6 +24,7 @@
#include "compat_pgtable.h"
#include "compat_spinlock.h"
#include "compat_page.h"
+#include "compat_sched.h"
#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 3, 11)
# define compat_active_mm mm
tar cf vmci.tar vmci-only/
Apague o diretório vmci-only:
rm -Rf vmci-only/
Finalmente vamos compilar os módulos:
vmware-modconfig --console --install-all
Outro problema que pode ocorrer é mouse (ponteiro) ficar maluco no VMWare, perder foco, aparecer dois ponteiros, etc... Para resolver crie ou edite o arquivo /etc/vmware/bootstrap para ter o seguinte conteúdo:
export VMWARE_USE_SHIPPED_GTK="force"
Marcadores:
lucid,
ubuntu 9.10,
vmware
sexta-feira, 19 de junho de 2009
Ubuntu 9.04: Alinhando o Sistema de Arquivos com o Tamanho do erase block do SSD
Lendo sobre outras idéias na internet, eu estava otimizando o meu netbook e sem querer removi alguns arquivos importantes, então resolvi jogar tudo fora e instalar o Ubuntu 9.04 Netbook Remix, otimizando-o desde o início. Diferente do post anterior, não farei um howto completo, postarei aos poucos o que eu achar relevante.
A primeira otimização que pode ser feita antes de instalar o sistema é alinhar sistema de arquivos com o tamanho do erase block do SSD.
Na verdade eu não sei qual o tamanho do erase block do Eee PC 701 4G, mas em geral é um entre 16/32/64/128/256/512KB, usa-se tamanhos maiores para discos maiores, acredito que seja entre 16 e 32, mas sendo pessimista, vou usar 128KB para meu eee pc o que vai fazer com que eu perca alguns megabytes de espaço.
Antes de iniciar o instalador, abra um terminal e faça:
fdisk -H 224 -S 56 /dev/sda
Se preferir, use o cfdisk:
cfdisk -h 224 -s 56 /dev/sda

Faça no mínimo 2 partições, pois a primeira partição não pode ser alinhada, então usaremos uma partição que não sofre muitas alterações como /boot. Eu fiz 3 partições, /boot, / e /home.
Depois edite o /etc/mk2fs.conf e deixe a sessão default como esta:
Note: 32 * 4096 = 128k
Agora inicie a instalação normalmente, quando aparecer o particionador de discos, escolha o particionamento manual.

Diferente do feito com o ubuntu 8.10, desta vez vou usar o ext4 sem journal (ext4 sem journal é mais rápido que o ext2), mas por conta do kernel do Ubuntu 9.04 ser menor que o 2.6.29, não é possível montar um ext4 sem journal, então vamos remover o journal após a instalação.
Para cada partição (sda1, sda2 e sda3) clique em editar, escolha como sistema de arquivos o ext4, selecione a opção formatar e defina o ponto de montagem corretamente para cada uma.

Após a instalação, instale um kernel igual ou maior que o 2.6.29, eles podem ser obtidos aqui: http://kernel.ubuntu.com/~kernel-ppa/mainline/, até o presente momento deste artigo, o último disponível é o 2.6.30.
Reinicie seu netbook para saber se está tudo ok.
Agora vamos remover o journal, mas antes, devido a um bug no blkid (não reconhece partições ext4 sem journal), precisamos deixar de usar os UUID para identificar as partições e usar o dispositivos reais (/dev/sdXn). Abra o arquivo /etc/fstab e altere cada UUID=something para /dev/sdXn.

A mesma coisa com o /boot/grub/menu.lst, procure pela linha
# kopt=root=UUID=5632f35f-792c-4997-b22a-7fe6a7050dfe ro
Troque UUID=something pela sua partição /, e adicione rootfstype=ext4, vai ficar mais ou menos assim:
# kopt=root=/dev/sda2 ro rootfstype=ext4
Agora entre em modo single, abra um terminal e faça:
sudo init 1

No menu de recuperação, escolha a opção root - drop to shell prompt. Agora faça:
Para cada partição remova o journal, no meu caso (sda1, sda2 e sda3) fica assim:
Pronto, pode reiniciar o sistema e usurfruir de um sistema de arquivos rápido e que não diminui a vida útil do seu SSD.
A primeira otimização que pode ser feita antes de instalar o sistema é alinhar sistema de arquivos com o tamanho do erase block do SSD.
Na verdade eu não sei qual o tamanho do erase block do Eee PC 701 4G, mas em geral é um entre 16/32/64/128/256/512KB, usa-se tamanhos maiores para discos maiores, acredito que seja entre 16 e 32, mas sendo pessimista, vou usar 128KB para meu eee pc o que vai fazer com que eu perca alguns megabytes de espaço.
Antes de iniciar o instalador, abra um terminal e faça:
fdisk -H 224 -S 56 /dev/sda
Se preferir, use o cfdisk:
cfdisk -h 224 -s 56 /dev/sda

Faça no mínimo 2 partições, pois a primeira partição não pode ser alinhada, então usaremos uma partição que não sofre muitas alterações como /boot. Eu fiz 3 partições, /boot, / e /home.
Depois edite o /etc/mk2fs.conf e deixe a sessão default como esta:
[defaults]
base_features = sparse_super,filetype,resize_inode,dir_index,ext_attr
blocksize = 4096
inode_size = 256
inode_ratio = 16384
stripe-width=32
Note: 32 * 4096 = 128k
Agora inicie a instalação normalmente, quando aparecer o particionador de discos, escolha o particionamento manual.

Diferente do feito com o ubuntu 8.10, desta vez vou usar o ext4 sem journal (ext4 sem journal é mais rápido que o ext2), mas por conta do kernel do Ubuntu 9.04 ser menor que o 2.6.29, não é possível montar um ext4 sem journal, então vamos remover o journal após a instalação.
Para cada partição (sda1, sda2 e sda3) clique em editar, escolha como sistema de arquivos o ext4, selecione a opção formatar e defina o ponto de montagem corretamente para cada uma.

Após a instalação, instale um kernel igual ou maior que o 2.6.29, eles podem ser obtidos aqui: http://kernel.ubuntu.com/~kernel-ppa/mainline/, até o presente momento deste artigo, o último disponível é o 2.6.30.
wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v2.6.30/linux-headers-2.6.30-020630-generic_2.6.30-020630_i386.deb
wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v2.6.30/linux-image-2.6.30-020630-generic_2.6.30-020630_i386.deb
wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v2.6.30/linux-headers-2.6.30-020630_2.6.30-020630_all.deb
sudo dpkg -i linux-image-2.6.30-020630-generic_2.6.30-020630_i386.deb linux-headers-2.6.30-020630-generic_2.6.30-020630_i386.deb linux-headers-2.6.30-020630_2.6.30-020630_all.deb
Reinicie seu netbook para saber se está tudo ok.
Agora vamos remover o journal, mas antes, devido a um bug no blkid (não reconhece partições ext4 sem journal), precisamos deixar de usar os UUID para identificar as partições e usar o dispositivos reais (/dev/sdXn). Abra o arquivo /etc/fstab e altere cada UUID=something para /dev/sdXn.

A mesma coisa com o /boot/grub/menu.lst, procure pela linha
# kopt=root=UUID=5632f35f-792c-4997-b22a-7fe6a7050dfe ro
Troque UUID=something pela sua partição /, e adicione rootfstype=ext4, vai ficar mais ou menos assim:
# kopt=root=/dev/sda2 ro rootfstype=ext4
Agora entre em modo single, abra um terminal e faça:
sudo init 1

No menu de recuperação, escolha a opção root - drop to shell prompt. Agora faça:
umount -a
mount / -o remount,ro
Para cada partição remova o journal, no meu caso (sda1, sda2 e sda3) fica assim:
tune2fs -O ^has_journal /dev/sda1
tune2fs -O ^has_journal /dev/sda2
tune2fs -O ^has_journal /dev/sda3
Pronto, pode reiniciar o sistema e usurfruir de um sistema de arquivos rápido e que não diminui a vida útil do seu SSD.
sexta-feira, 22 de maio de 2009
Teclado ABNT2 e VMWare
Este post é para dizer que estou de volta a ativa, comprei um notebook e não dependo mais do computador dos outros :D
Eu já enfrentei problemas por meu teclado ABNT2 não funcionar muito bem nas máquinas guests tanto no vmware player quanto no vmware workstation. A solução que achei foi criar um arquivo $HOME/.vmware/config com o seguinte conteúdo:
Eu já enfrentei problemas por meu teclado ABNT2 não funcionar muito bem nas máquinas guests tanto no vmware player quanto no vmware workstation. A solução que achei foi criar um arquivo $HOME/.vmware/config com o seguinte conteúdo:
xkeymap.keycode.108 = 0x138 # Alt_R
xkeymap.keycode.106 = 0x135 # KP_Divide
xkeymap.keycode.104 = 0x11c # KP_Enter
xkeymap.keycode.111 = 0x148 # Up
xkeymap.keycode.116 = 0x150 # Down
xkeymap.keycode.113 = 0x14b # Left
xkeymap.keycode.114 = 0x14d # Right
xkeymap.keycode.105 = 0x11d # Control_R
xkeymap.keycode.118 = 0x152 # Insert
xkeymap.keycode.119 = 0x153 # Delete
xkeymap.keycode.110 = 0x147 # Home
xkeymap.keycode.115 = 0x14f # End
xkeymap.keycode.112 = 0x149 # Prior
xkeymap.keycode.117 = 0x151 # Next
xkeymap.keycode.78 = 0x46 # Scroll_Lock
xkeymap.keycode.127 = 0x100 # Pause
xkeymap.keycode.133 = 0x15b # Meta_L
xkeymap.keycode.134 = 0x15c # Meta_R
xkeymap.keycode.135 = 0x15d # Menu
xkeymap.keycode.97 = 0x073 # Slash
quinta-feira, 19 de fevereiro de 2009
Computador quebrado - Estou offline
Devido a um acidente (meu notebook pifou o HD), estou sem computador com linux para mexer e poder atualizar o blog. Sem computador virei um offline, ou seja, não esperem respostas de email, msn online, google talk online, etc...
Assinar:
Postagens (Atom)