Archive for the ‘Linux’ category

Agente JON/Jopr não sobre no boot

January 26th, 2010

JON 2.3.0.GA

O jeito mais comun de se adicionar o JON/Jopr para subir no boot (Red Hat Enterprise Linux)

  1. criar um link simbólico:
    ln -sf $RHQ_AGENT_HOME/bin/rhq-agent-wrapper.sh /etc/init.d/rhq-agent
  2. adicionar à lista de serviços:
    chkconfig --add rhq-agent

Agora basta rebootar e… Não funciona. Agora tente executar /etc/init.d/rhq-agent start. Funciona!!

A razão é que o bash script rhq-agent-wrapper.sh tenta achar o $RHQ_AGENT_HOME automaticamente através do path do script. Dá para ver isso na linha:

_DOLLARZERO=`readlink "$0" || echo "$0"`

Para quem não conhece bash script o $0 é o argumento 0, que corresponde ao caminho do arquivo sendo executado. O que acontece nessa linha é que a variável recebe o caminho do link derreferenciado, caso o arquivo seja um link, ou o caminho do arquivo, caso seja um arquivo mesmo (aliás é por isso que usamos um link no passo 1, senão o script acharia que /etc/init.d é o $RHQ_AGENT_HOME).

O chkconfig é a ferramenta usada no RHEL para registrar serviços. Nela registramos que serviços queremos subir em que níveis de inicialização. Esses níveis são (direto do inittab):

#   0 - halt (Do NOT set initdefault to this)
#   1 - Single user mode
#   2 - Multiuser, without NFS (The same as 3, if you do not have networking)
#   3 - Full multiuser mode
#   4 - unused
#   5 - X11
#   6 - reboot (Do NOT set initdefault to this)

O problema é que o chkconfig usa, para registrar os serviços, links simbólicos nas pastas /etc/rcX.d (onde X é o nível de inicialização). O que acontece então é o que é executado é um link simbólico em /etc/rc3.d apontando para o link simbólico /etc/init.d apontando para $RHQ_AGENT_HOME/bin. Algo do tipo:

/etc/rc3.d/S93rhq-agent -> /etc/init.d/rhq-agent -> $RHQ_AGENT_HOME/bin/rhq-agent-wrapper.sh

E o comando readlink não é recursivo por padrão, ou seja, se o link derreferenciado apontar para outro link, o readlink não o derreferencia.. A solução está no readlink –help: adicionar a flag -e.

Ou seja, basta mudar a linha 102 para:

_DOLLARZERO=`readlink -e "$0" || echo "$0"`

Fonte: JIRA

Contribuam com o projeto Fedora Brasil!

August 4th, 2008

Foi aberta a campanha para comprarmos uma Impressora/Duplicadora de CDs/DVDS, fazendo parte do projeto de embaixadores e representando Brasília vim convocar no blog toda comunidade Fedora, e Open Source em geral, a contribuir. O Rodrigo Padula, Fedora LATAM Ambassadors Administrator, está tomando conta da campanha e o equipamento será usado para distribuição de mídias no Brasil pelo projeto Free Media.

São distribuidos prêmios dependendo da contribuição dada, inclusive para empresas, que também podem contribuir. Contribui com R$ 60,00 (e ganhei uma camiseta Fedora). Contribuam também!

Semana de Extensão na UnB

July 6th, 2008

A Universidade de Brasília anualmente promove um evento chamado Semana de Extensão, que em sua oitava edição esse ano, será realizada de 30 de setembro à 3 de outubro na própria UnB. É basicamente um monte de eventos – palestras, mini cursos, oficinas – em todas as áreas do conhecimento. Para se ter idéia do tamanho, a edição passada teve 272 atividades e um público de 35.893 pessoas. O tema desse ano é Universidade de Democracia. As inscrições para eventos estão abertas até dia 11 de julho.

Todo ano participo como público e já fazia tempo, queria participar como colaborador. Nesse ano me inscrevi para o programa de embaixadores do projeto Fedora e aproveitando o embalo cadastrei o evento Introdução ao SELinux, que pretendo dar usando Fedora.

Enviei ainda outra proposta de palestra com o título Entendendo SOA. Por enquanto enviei apenas as propostas, elas ainda devem ser avaliadas. Assim que tiver a confimação faço um post com mais informações e depois com o material da apresentação. Mas já fica o aviso, todo ano tem coisa interessante na área de TI, quem puder compareça!

LPI 101

June 13th, 2008

Passei hoje na LPI 101 com 630 pontos, o mínimo era 500. Terminei a prova de 120 minutos em apenas 40. Como esperava foi pura decoreba, você sabia responder ou não. Como material utilizei muito as MAN pages, principalmente para gerência de usuários e pacotes e para conceitos em geral o livro LPIC-1: Linux Professional Institute Certification Study Guide. Fiz também alguns testes do TestKing que foram muito úteis, com algumas perguntas muito parecidas com as do exame.

Para obter o LPIC1 falta ainda passar no exame LPI 102, que cobre as partes kernel, rede e seguraça. Não sei ao certo quando farei, mas não pretendo demorar muito já que minha LPI 101 seria inútil.

Fedora 9

June 8th, 2008

O Fedora 9 saiu já faz algum tempo, fiquei de fazer um review mas outras coisas sempre iam aparecendo. Aproveitei esse finalzinho de tarde de domingo para finalmente escrever minhas impressões.

Primeiro a instalação. Instalei o F9 no meu notebook, um HP Pavillion dv2000. Tive problemas na parte final da instalação, quando chegava nos últimos pacotes o Anaconda travava e era sempre no mesmo pacote. Instalações travando já aconteceram comigo antes, já tive isso instalando o Windows XP também. Fato é que um teste no meu desktop logo pôs a culpa no meu note. Tive então que remover alguns pacotes e a instalação foi concluida.

Senti o boot com o novo Upstart mais rápido e mais novidades tela de login: ferramentas de acessibilidade, gerenciador de energia e seletor de língua. Ao tentar logar, um problema estranho: na tela de login, quando eu entrava com o login a tela de login parecia apenas dar um refresh. Bootei com init=/bin/bash e vi que era um erro de permissão quando ia-se iniciar o gdm. Desconfiado do SELinux, desabilitei-o e dei reboot para então consegui logar.

Depois disso só alegria. É só habilitar o som que vem mute por padrão, instalar o xorg-x11-drv-nvidia do repositório do livna e deixar o gnome mais com a sua cara.

As novidades que mais notei foram:

  • OpenJDK 6! – vem sem algumas ferramentas com que estava acostumado no JDK da Sun, mas apoio incondicionalmente esse projeto;
  • PackageKit – uma idéia interessante de fazer uma GUI unificada para todos os gerenciadores de pacotes;
  • Keyring integrado – usando PAM;
  • Firefox 3 – tá muito bom =) só me deixou na mão uma ou duas vezes, fechando do nada, mas é beta ainda.

Fora essas novidade o F9 possibilita ainda a criação de um Live USB persistente, algo muito interessante. Bom, um ponto fraco: não vi conector Xen para o Virtual Machine Manager.

Quick one

May 26th, 2008

This one is for all of you who (like me) keeps wasting time using commands such as find, jar and grep each time you get a classpath error:

#!/bin/bash
if [ "$1" = "" ]; then
	echo "Usage: jarfind REGEXP";
	exit;
fi

for d in `find . -name '*.jar'` ; do
	FILES=`unzip -l $d | cut -c 29- | egrep ''$1''`;

	if [ "$FILES" != "" ]; then
		echo "$d";

		for f in $FILES ; do
			echo " - $f"
		done
	fi
done

I’ve chose to use unzip instead of jar since it’s far more commonly seem. Move it to /usr/local/bin/jarfind (well, that’s a little personal) and chmod it to +x.

I works searching all jars under the current directory for a regular expression, most commonly a simple class name. It returns the jar’s names and all corresponding class matches.

I’m not a bash programmer, so it may not look that pretty to experienced bash programmers, but it looks beautiful to me, as it saves me a lot of time =). Feel free to make any comments.

EDIT:

first known bug: doesn’t escape special characters in paths =/

Java portável?

February 11th, 2008

Há pouco tempo enviei um email com recomendações para o pessoal de desenvolvimento da minha empresa, transcrevi muito do email aqui e alterei algumas coisa:

Tenho visto muito problema para fazer deploy de aplicações no que diz respeito à portabilidade das aplicações. Em minha empresa desenvolvemos em Windows mas no cliente usamos servidores Linux. Aqui vão algumas recomendações para evitar esses problemas:

  • Evitem sempre que possível classes do pacote com.sun.*, nem sempre o cliente usa a JVM da sun (no meu caso era mais simples copiar o rt.jar da JVM da Sun para o lib/ext, mas é um tanto gambiarra.. além do mais esse jar tem mais de 40mb);
  • Quando chamarem comandos externos no Ant chamem pelo nome em minúsculo, há diferenças de case senssitiveness entre OS’s, e os comandos em geral são em minúsculo em OS’s Unix-like. E antes de fazer qualquer dessas chamadas, procurem se já não existe uma task para isso, o script fica muito mais limpo e utiliza-se a portabilidade do Java corretamente;
  • Tomem cuidado também com o nome que vocês dão às pastas e arquivos. Estabeleçam um nome e sigam ele, não misturem “InfraEstrutura.txt” com “infraestrutura.txt”;
  • Quando forem compilar qualquer coisa para distribuição usem o parâmetro encoding do javac, iso-8859-1 no caso de se usar Windows e os arquivos estarem salvos no encoding padrão. Na verdade, creio que o mais correto seria desenvolver em utf-8, mas…
  • Evitem caminhos absolutos! Nem todo OS tem c:\!

Mais alguns toques para scripts Ant de distribuição: habilitem o nowarn, os warnings dão impressão de má qualidade e sujam o log; tentem fazer um script que possa ser robotizado (sem nenhum input), muitas vezes é interessante criar cron jobs para ele.