Ispconfig 2: how to create a park domain – como deixar um domínio acessar o conteúdo do outro como park no ispconfig

Standard

Uma das coisas mais interessantes no IspConfig é sua capacidade de permitir customizações em tudo que você possa imaginar. Aproveitando esta “boquinha” vamos fazer algo diferente.
Parkear domínios no Parallels Plesk e no Whm/CPanel é coisa fácil, pois tudo é automatizado, mas isto não quer dizer que o bom e velho vim (ou qualquer OUTRO EDITOR) não entre em ação.

Para isto, precisamos logar-nos como root no servidor aonde iremos parkear domínios, e devemos (antes de mais nada) fazer backup do arquivo de configuração do apache, sendo assim use o comando:

cp -rp /etc/httpd/conf/httpd.conf /root/httpd.conf.OLD


Temos então um arquivo garantido para que, em qualquer eventualidade sirva para consulta ou possivelmente correção do arquivo mais recente.

Entremos no arquivo de configuração:

vim /etc/httpd/conf/httpd.conf

Vá para o final do arquivo e localize exatamente este trecho:


Options ExecCGI -Indexes
AllowOverride None
AllowOverride Indexes AuthConfig Limit FileInfo
Order allow,deny
Allow from all

Deny from all

Feito isto, o que devemos fazer é simples.
Sabendo-se que o ISPConfig lê um outro arquivo com os vhosts dos usuários web, devemos antecipar nossa configuração de maneira que a linha do ispconfig fique abaixo do nosso vhost.

Acima da linha com a informação:

Include /etc/httpd/conf/vhosts/Vhosts_ispconfig.conf

Devemos fazer algo assim:

ServerName www.nomedodominioparkeado.com:80
ServerAdmin webmaster@dominiodestino.com.br
DocumentRoot /var/www/web100/web
ServerAlias dominiodestino.com.br
DirectoryIndex index.html index.htm index.php index.php5 index.php4 index.php3 index.shtml index.cgi index.pl index.jsp Default.htm default.htm
Alias /cgi-bin/ /var/www/web100/cgi-bin/
AddHandler cgi-script .cgi
AddHandler cgi-script .pl
ErrorLog /var/www/web100/log/error.log
AddType application/x-httpd-php .php .php3 .php4 .php5
php_admin_flag safe_mode On
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml
Alias /stats “/var/www/web100/web/webalizer”
Alias /error/ “/var/www/web100/web/error/”
ErrorDocument 400 /error/invalidSyntax.html
ErrorDocument 401 /error/authorizationRequired.html
ErrorDocument 403 /error/forbidden.html
ErrorDocument 404 /error/fileNotFound.html
ErrorDocument 405 /error/methodNotAllowed.html
ErrorDocument 500 /error/internalServerError.html
ErrorDocument 503 /error/overloaded.html
AliasMatch ^/~([^/]+)(/(.*))? /var/www/web100/user/$1/web/$3
AliasMatch ^/users/([^/]+)(/(.*))? /var/www/web100/user/$1/web/$3

RewriteEngine on
RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)
RewriteRule .* – [F]

Perceba que no começo falei XXX.XXX.XXX.XXX, isto refere-se ao ip do seu dedicado (shared ip dos domínios :P)

Por este vhost pegue a coisa em cheio.

A charada está nas linhas:

ServerName www.nomedodominioparkeado.com:80
ServerAdmin webmaster@dominiodestino.com.br
DocumentRoot /var/www/web100/web
ServerAlias dominiodestino.com.br

1 – indica o parkeamento
2 – email do main domain
3 – arquivos web de onde o parkeamento vai ler assim que o internauta acessar a página www.nomedodominioparkeado.com
4 – indica o destino do parkeamento, ou seja, ao acessar www.nomedodominioparkeado.com a pessoa na realidade acessa dominiodestino.com.br, porém tendo no cabeçalho o nome www.nomedodominioparkeado.com (url de entrada no navegador)


OBS: CASO O ARTIGO NÃO EXIBA AS TAGS DO APACHE, POR FAVOR VERIFIQUEM JUNTO AO ARQUIVO /ETC/HTTPD/CONF/HTTPD.CONF.

Abraços e espero ter contribuído com um dia feliz para nós… lol.
bye!

create user output file. Command output: procmail: Error while writing to /var/mail…

Standard

create user output file. Command output: procmail: Error while writing to /var/mail…

Se esta é a mensagem de erro que vem no outlook que de quem está enviando um email para um destinatário que usa postfix seus problemas “SE ACABARAM-SE”.

Entre no console e como root e digite:

postconf -e 'mailbox_size_limit = 0'

Provavelmente é a quota ferrada e este comando te tira da forca :D.

Sistemas afetados: Debian, Ubuntu (lucid lynx, karmic…), Centos 5.5, Centos 5.4…

Smtp Error: The Following Recipients Failed: SMTP Error: The following recipients failed

Standard

Bem, se você usa o GOOGLE APPS e está tentando enviar um email de dentro de um servidor com POSTFIX e o mesmo não envia nada e ainda apresenta o erro do título, nada de pânico, o que ocorre:

1 – Email vai sair do servidor mas antes lê a lista de hosts locais dentro do arquivo /etc/postfix/main.cf na linha:
mydestination
2 – Quando o domínio tenta enviar para o outro domínio que provavelmente está citado ali, pimba! Fala que o destinatário falhou por não existir.

Como corrigir?

Remova o domínio do destinatário dali e seja feliz!

Como modificar o IP principal para envio de emails do POSTFIX

Standard


Independente de usar Debian, Ubuntu, Fedora, Red Hat, Slackware e etc você pode modificar o main ip do postfix de maneira muito simples.

Na grande parte das distribuições o arquivo de configuração fica “escondido” no seguinte caminho:

/etc/postfix/main.cf

Abra-o com o editor que desejar (pode ser nano, vi, vim…) e informe a seguinte linha:

smtp_bind_address = IP.DE.ENVIO.DO.SERVIDOR

Este ip de envio do servidor pode ser seu ip principal ou qualquer outro pertencente ao seu server.

Lembre-se de deixar o SPF com entrada para o ip principal.

Abraços.

Gnu/Linux e suas dificuldades na usabilidade (diversidade que pode matar)

Standard

Gnu/Linux sem dúvidas é a prática mais comum no mundo do Software Livre, em outras palavras, é o meio mais fácil e mais comum do mundo Open Source estar declarado em nosso dia-a-dia. Temos ferramentas de uso diário, que são open source e não percebemos, mas quando nos deparamos com o Gnu/Linux nós podemos afirmar – este realmente é free software (ainda que não tenhamos um conceito muito forte do que realmente é software livre, que muitos infelizmente interpretam como software gratuito). Isto, sem sombra de variação é muito fabuloso, pois este excelente sistema que já mostrou do que é capaz, e o melhor, deixou claro que tem seu código aberto para customizações e forks, estando disponível para qualquer pessoa, aonde quer que esteja.
Ao longo de 12 anos de convívio com o Gnu/Linux (tendo somente 5 anos como profissional neste ramo, prestando serviços, e outros 7 “ouvindo falar bem”) pude perceber algumas “metamorfoses” que não vieram e fixaram um conceito amigável de usabilidade.
Vou detalhar isto de maneira abrangente para que fique claro o que realmente desejo expor, a dificuldade na curva de aprendizado, devido a variações muito pesadas nas distribuições Gnu/Linux.
Em 1997 possuía um computador Pentium 133 mhz mmx 100% off-board e tenho um irmão que na época estava fazendo cursos da Conectiva (uma distribuição Gnu/Linux que tinha um corpo técnico que prestava consultoria e cursos), tendo assim um impulso forte para instalação desta distribuição, o que me fez “saber que existia um sistema operacional diferente do Windows 95”, sem contar que no ano seguinte o Macintosh havia se tornado “mais uma daquelas descobertas milenares”. Naquela “descoberta” ouvi falar que ele era Free Software, mas confesso que não fez diferença para mim.
Os anos se passaram, para ser mais preciso 7 anos, e depois de tantas tentativas de me familiarizar com “aquela tela preta, parecia de mais com o MS-DOS”, consegui instalar uma distribuição chamada Slackware. Levei a sério, e fui tomando gosto.
Na época o melhor guia, ou documentação brasileira disponível (ainda está disponível) é o perfeito e completo GuiaFoca, um manual do Gnu/Linux, baseado no Debian, mas operando de maneira simples e direta em outras distribuições.
Passei um ano estudando sem cessar este sistema operacional maravilhoso, o que me fez implementar algumas soluções baseadas em Software Livre no SENAC-PB, empresa que trabalhei durante 3 anos. Adquiri um conhecimento sólido nesta plataforma, mas com o passar do tempo necessitei partir para outras como Red Hat Enterprise, por exemplo, sem contar as distribuições desktop que estavam bombando nesta fase. Com a saída da antiga empresa para outra que prestava consultoria não obtive dificuldades em implementações para clientes, principalmente pelo fato do Slackware ser muito flexível e “bastante Unix”, não senti nada difícil nos primeiros meses.
Nesta etapa eu entendi quais os problemas que as distribuições Gnu/Linux sentiam, isto aos olhos do usuário final, por que o nível de curva de aprendizado torna-se alto quando entramos em uma distribuição comercial. Para que se tenha uma idéia, o CentOS (remasterização do Red Hat Enterprise, respeitando direitos autorais e imagens da instituição), caso seja instalado como servidor, com poucos pacotes default você não terá a ferramenta ifconfig disponível, mas espere, ifconfig é um utilitário disponível em todas as distribuições, isto é padrão, e nem todas usam o system-config. Quantas usam dpkg, apt ou aptitude? Quantas tem o RPM como gestor de pacotes? O Yum? O Yast, Yast2?
Sabemos que são particularidades em cada distribuição, e que tais particularidades visam a automatização de determinadas tarefas que comumente estão vinculadas com o sistema operacional que as implementam.
Neste momento entram as divergências em geral, pois entendemos que comandos básicos sempre serão respeitados, e que seus manuais são preservados de uma distribuição para outra, mas que nem sempre estão no mesmo lugar.
Localidades na árvore de estrutura de dados, nomes de arquivos de configuração, modalidade de configuração de rede a nível de arquivo e forma com que containers web trabalham é muito diversificada em cada distribuição. Isto dificulta no momento de colocar na cabeça de algum xiita de códigos fonte proprietários que o Gnu/Linux é bom!
Observem o estouro e magnitude de distribuições como Ubuntu e Fedora, a nível desktop, vejam o quão abrangentes e aceitáveis elas são, e o mais importante, o quão bem documentadas elas são, mas em uma suave visão diferenciada, tente usar os conceitos aprendidos em cada uma delas em um Gentoo, CentOs ou OpenSuse, talvez você não queira mais usar Gnu/Linux, ou melhor, fará distinção por conhecer todas as ferramentas/utilitários de uma e de outra não.
Deixo claro que o Gnu/Linux é a escolha certa para quem não quer dores de cabeça futuras, quer estabilidade e o melhor, segurança de suas informações garantidas por sistemas que têm geeks de milhares de lugares dedicando-se na provisão de códigos de altíssimo nível e de escalabilidade monstruosa.
Minhas recomendações para marinheiros de primeira viagem:

• Use Ubuntu/Fedora para desktop, principalmente o Ubuntu que permite upgrades de versão do Sistema Operacional de maneira mais segura,
• Use CentOs/Ubuntu/Slackware ou Debian em seus servidores, principalmente Ubuntu/Debian que permitem upgrades de versões sem maiores dores de cabeça,
• Use Ubuntu/Fedora em escritórios, principalmente por sua quantidade enorme de drivers (módulos) para impressoras e etc.

Existem outras distribuições Gnu/Linux que têm tido muito prestígio, como por exemplo cito o Mandrake, empresa que assumiu a Conectiva e que tem se destacado pela ampla gama de produtos e suporte de qualidade, sendo hoje conhecida como Mandriva. OpenSuse, outra distribuição muito respeitada, versão Grátis e de código fonte aberto, 100% baseada no Suse Enterprise, mantido pela comunidade open source do mundo inteiro, esta é bastante amigável também.
Lembre-se que uma distribuição deve primar por conceitos de segurança, estabilidade e alto desempenho, principalmente, deverá ser bem documentada, e trivialmente falando, documentada maciçamente sobre suas ferramentas em particular.
Gestores de pacotes também são algo que tornam a problemática maior, por que os pacotes .DEB e .RPM imperam, seguidos de seus gestores deb/apt/aptitude e RPM/up2date/yum. Sabemos que é simples compilar algo (em alguns casos, devido requerimento de paths para libs a situação poderá complicar-se) e ajustar paths de destino, mas nem tudo isto brilha aos olhos dos mantenedores de software, tanto pelo nível de dificuldade avaliado para compilações e geração de source pré-compilado na plataforma como pela simplicidade de gestão (upgrade, downgrade e patching em geral).
Quanto ao GuiaFoca, este ainda é a melhor alternativa em documentação Gnu/Linux (falando de maneira geral), mas não atenha-se ao mesmo pois as distribuições estão mudando e agora parecem que estão tomando “independência” ou pensam em seguir assim, longe de padrões LSB.
Aprender sempre é bom, mas não atenha-se a distribuições muito individualistas, isto poderá complicar sua vida em um futuro muito próximo, principalmente no que tange ciclo de vida da versão do sistema ou até descontinuidade do projeto adotado por você ou por sua empresa (vide distribuições como Kurumin que tinham excelente iniciativa, mas que estão agonizado neste momento, Conectiva – adquirida pela Mandrake e outras).

As particularidades excessivas das distribuições estão levando as distribuições que adotam esta modalidade de negócio/serviço para uma ilha de destaque e talvez solidão.

Muito cuidado com sua escolha!

Abraços a todos e bom trabalho/estudo.

Plesk 8 e Plesk 9 Como modificar páginas de erros personalizadas how to change customized error pages on plesk

Standard

No meu blog littleoak eu fiz um how para isto:

http://littleoak.wordpress.com/2009/03/24/plesk-8-e-plesk-9-como-modificar-paginas-de-erros-personalizadas-how-to-change-customized-error-pages-on-plesk/

Gnu/Linux e suas dificuldades na usabilidade (diversidade que pode matar)

Standard

Gnu/Linux e suas dificuldades na usabilidade (diversidade que pode matar)

Gnu/Linux sem dúvidas é a prática mais comum no mundo do Software Livre, em outras palavras, é o meio mais fácil e mais comum do mundo Open Source estar declarado em nosso dia-a-dia. Temos ferramentas de uso diário, que são open source e não percebemos, mas quando nos deparamos com o Gnu/Linux nós podemos afirmar – este realmente é free software (ainda que não tenhamos um conceito muito forte do que realmente é software livre, que muitos infelizmente interpretam como software gratuito). Isto, sem sombra de variação é muito fabuloso, pois este excelente sistema que já mostrou do que é capaz, e o melhor, deixou claro que tem seu código aberto para customizações e forks, estando disponível para qualquer pessoa, aonde quer que esteja.
Ao longo de 12 anos de convívio com o Gnu/Linux (tendo somente 5 anos como profissional neste ramo, prestando serviços, e outros 7 “ouvindo falar bem”) pude perceber algumas “metamorfoses” que não vieram e fixaram um conceito amigável de usabilidade.
Vou detalhar isto de maneira abrangente para que fique claro o que realmente desejo expor, a dificuldade na curva de aprendizado, devido a variações muito pesadas nas distribuições Gnu/Linux.
Em 1997 possuía um computador Pentium 133 mhz mmx 100% off-board e tenho um irmão que na época estava fazendo cursos da Conectiva (uma distribuição Gnu/Linux que tinha um corpo técnico que prestava consultoria e cursos), tendo assim um impulso forte para instalação desta distribuição, o que me fez “saber que existia um sistema operacional diferente do Windows 95”, sem contar que no ano seguinte o Macintosh havia se tornado “mais uma daquelas descobertas milenares”. Naquela “descoberta” ouvi falar que ele era Free Software, mas confesso que não fez diferença para mim.
Os anos se passaram, para ser mais preciso 7 anos, e depois de tantas tentativas de me familiarizar com “aquela tela preta, parecia de mais com o MS-DOS”, consegui instalar uma distribuição chamada Slackware. Levei a sério, e fui tomando gosto.
Na época o melhor guia, ou documentação brasileira disponível (ainda está disponível) é o perfeito e completo GuiaFoca, um manual do Gnu/Linux, baseado no Debian, mas operando de maneira simples e direta em outras distribuições.
Passei um ano estudando sem cessar este sistema operacional maravilhoso, o que me fez implementar algumas soluções baseadas em Software Livre no SENAC-PB, empresa que trabalhei durante 3 anos. Adquiri um conhecimento sólido nesta plataforma, mas com o passar do tempo necessitei partir para outras como Red Hat Enterprise, por exemplo, sem contar as distribuições desktop que estavam bombando nesta fase. Com a saída da antiga empresa para outra que prestava consultoria não obtive dificuldades em implementações para clientes, principalmente pelo fato do Slackware ser muito flexível e “bastante Unix”, não senti nada difícil nos primeiros meses.
Nesta etapa eu entendi quais os problemas que as distribuições Gnu/Linux sentiam, isto aos olhos do usuário final, por que o nível de curva de aprendizado torna-se alto quando entramos em uma distribuição comercial. Para que se tenha uma idéia, o CentOS (remasterização do Red Hat Enterprise, respeitando direitos autorais e imagens da instituição), caso seja instalado como servidor, com poucos pacotes default você não terá a ferramenta ifconfig disponível, mas espere, ifconfig é um utilitário disponível em todas as distribuições, isto é padrão, e nem todas usam o system-config. Quantas usam dpkg, apt ou aptitude? Quantas tem o RPM como gestor de pacotes? O Yum? O Yast, Yast2?
Sabemos que são particularidades em cada distribuição, e que tais particularidades visam a automatização de determinadas tarefas que comumente estão vinculadas com o sistema operacional que as implementam.
Neste momento entram as divergências em geral, pois entendemos que comandos básicos sempre serão respeitados, e que seus manuais são preservados de uma distribuição para outra, mas que nem sempre estão no mesmo lugar.
Localidades na árvore de estrutura de dados, nomes de arquivos de configuração, modalidade de configuração de rede a nível de arquivo e forma com que containers web trabalham é muito diversificada em cada distribuição. Isto dificulta no momento de colocar na cabeça de algum xiita de códigos fonte proprietários que o Gnu/Linux é bom!
Observem o estouro e magnitude de distribuições como Ubuntu e Fedora, a nível desktop, vejam o quão abrangentes e aceitáveis elas são, e o mais importante, o quão bem documentadas elas são, mas em uma suave visão diferenciada, tente usar os conceitos aprendidos em cada uma delas em um Gentoo, CentOs ou OpenSuse, talvez você não queira mais usar Gnu/Linux, ou melhor, fará distinção por conhecer todas as ferramentas/utilitários de uma e de outra não.
Deixo claro que o Gnu/Linux é a escolha certa para quem não quer dores de cabeça futuras, quer estabilidade e o melhor, segurança de suas informações garantidas por sistemas que têm geeks de milhares de lugares dedicando-se na provisão de códigos de altíssimo nível e de escalabilidade monstruosa.
Minhas recomendações para marinheiros de primeira viagem:

• Use Ubuntu/Fedora para desktop, principalmente o Ubuntu que permite upgrades de versão do Sistema Operacional de maneira mais segura,
• Use CentOs/Ubuntu/Slackware ou Debian em seus servidores, principalmente Ubuntu/Debian que permitem upgrades de versões sem maiores dores de cabeça,
• Use Ubuntu/Fedora em escritórios, principalmente por sua quantidade enorme de drivers (módulos) para impressoras e etc.

Existem outras distribuições Gnu/Linux que têm tido muito prestígio, como por exemplo cito o Mandrake, empresa que assumiu a Conectiva e que tem se destacado pela ampla gama de produtos e suporte de qualidade, sendo hoje conhecida como Mandriva. OpenSuse, outra distribuição muito respeitada, versão Grátis e de código fonte aberto, 100% baseada no Suse Enterprise, mantido pela comunidade open source do mundo inteiro, esta é bastante amigável também.
Lembre-se que uma distribuição deve primar por conceitos de segurança, estabilidade e alto desempenho, principalmente, deverá ser bem documentada, e trivialmente falando, documentada maciçamente sobre suas ferramentas em particular.
Gestores de pacotes também são algo que tornam a problemática maior, por que os pacotes .DEB e .RPM imperam, seguidos de seus gestores deb/apt/aptitude e RPM/up2date/yum. Sabemos que é simples compilar algo (em alguns casos, devido requerimento de paths para libs a situação poderá complicar-se) e ajustar paths de destino, mas nem tudo isto brilha aos olhos dos mantenedores de software, tanto pelo nível de dificuldade avaliado para compilações e geração de source pré-compilado na plataforma como pela simplicidade de gestão (upgrade, downgrade e patching em geral).
Quanto ao GuiaFoca, este ainda é a melhor alternativa em documentação Gnu/Linux (falando de maneira geral), mas não atenha-se ao mesmo pois as distribuições estão mudando e agora parecem que estão tomando “independência” ou pensam em seguir assim, longe de padrões LSB.
Aprender sempre é bom, mas não atenha-se a distribuições muito individualistas, isto poderá complicar sua vida em um futuro muito próximo, principalmente no que tange ciclo de vida da versão do sistema ou até descontinuidade do projeto adotado por você ou por sua empresa (vide distribuições como Kurumin que tinham excelente iniciativa, mas que estão agonizado neste momento, Conectiva – adquirida pela Mandrake e outras).

As particularidades excessivas das distribuições estão levando as distribuições que adotam esta modalidade de negócio/serviço para uma ilha de destaque e talvez solidão.

Muito cuidado com sua escolha!

Abraços a todos e bom trabalho/estudo.

Um guia rápido do Debian Lenny

Standard

Embora o Debian “puro” seja mais usado em servidores, ele também pode perfeitamente ser usado em desktops. Se você se sente confortável em usar o apt-get/aptitude e gosta da estrutura geral do sistema, mas está em busca de um sistema mais leve e personalizável, o Debian pode ser a melhor opção.

O Debian é a base para o Ubuntu e inúmeras outras distribuições. O próprio repositório “universe” do Ubuntu nada mais é do que um snapshot do repositório instável do Debian, com alguns patches e personalizações adicionais. Se somarmos o Ubuntu, Kubuntu e todos os descendentes diretos e indiretos, as distribuições da família Debian são usadas em mais de 70% dos desktops Linux.

O maior problema em utilizar o Debian diretamente, em vez de usar o Ubuntu ou outro derivado é que o sistema é bastante espartano, carecendo de muitas ferramentas de configuração automática. Em compensação, ele é bem mais leve que o Ubuntu, pois muitos pacotes são compilados com menos componentes e opções mais otimizadas, o que resulta em um desempenho geral sensivelmente superior, sobretudo nas máquinas mais modestas. Ao instalar e remover pacotes, você vai notar também que o sistema é menos “engessado” em relação às dependências de pacotes, permitindo que você tenha um desktop funcional com um volume muito menor de pacotes.

O Debian Lenny é composto por nada menos do que 5 DVDs (ou 31 CDs!), que totalizam 23.2 GB de download. Entretanto, como pode imaginar, estes DVDs todos incluem uma cópia completa dos repositórios oficiais, que é necessária apenas para quem realmente quer fazer uma instalação completa do sistema e não quer correr de precisar baixar pacotes adicionais.

Para situações normais, você pode escolher entre baixar apenas o primeiro CD ou o primeiro DVD. Em ambos os casos, a primeira mídia inclui quase todos os pacotes necessários para fazer uma instalação básica do sistema e o instalador se encarrega de baixar outros pacotes que sejam usados (como os pacotes de tradução para o Português do Brasil) durante a própria instalação, usando qualquer conexão disponível.

Se você tem uma conexão de banda larga, outra opção é baixar o NetInstall, uma imagem de 180 MB que inclui apenas os pacotes básicos do sistema e baixa o restante dos pacotes selecionados durante a instalação.

Faça o download no: http://ftp.br.debian.org/debian-cd/

ou no: http://www.debian.org/CD/http-ftp/

Ao dar boot pelo CD ou DVD, a primeira escolha é entre utilizar o tradicional instalador em modo texto (que é muito similar ao utilizado pelo alternate CD do Ubuntu) ou o novo instalador gráfico, que é uma novidade do Lenny. Na verdade, o instalador gráfico nada mais é do que uma interface em GTK para o instalador em modo texto, o que faz com que as opões em ambos os casos sejam basicamente as mesmas.

Na época em que surgiu a idéia de criar o instalador gráfico, muitos desenvolvedores defenderam o uso do Anaconda (o instalador usado no Fedora), mas a idéia acabou sendo abandonada em favor do instalador próprio devido a uma questão muito simples: em vez de se limitar aos PCs, o Debian suporta várias plataformas, uma característica da qual os desenvolvedores se orgulham bastante. Para usar o Anaconda, precisariam portá-lo para cada uma das plataformas suportadas, o que levou à conclusão de que desenvolver uma interface gráfica para o instalador tradicional seria a melhor saída.

Como de praxe, você pode também especificar opções de boot para solução de problemas, como em “installgui acpi=off” ou “installgui noapic. Para isso, pressione a tecla TAB para ter acesso à linha com as opções de boot.

Está disponível também uma instalação em modo expert, que oferece um controle muito maior sobre a instalação (você pode escolher se quer utilizar o Debian Stable, Testing ou Sid, por exemplo), mas em troca a torna muito mais complicada e demorada. Para simplificar as coisas, vamos usar a opção de instalação tradicional em modo gráfico (Graphical Install).

O Lenny é uma das poucas distribuições lançadas em 2009 que ainda utiliza o KDE 3.5. Esse é, na verdade, um ponto positivo, pois oferece uma opção para quem não gostou do KDE 4 e prefere a estabilidade e a leveza da versão antiga. A próxima versão estável do Debian não deve ser lançada antes do final de 2010 e, mesmo após isso, o Lenny ainda continuará sendo suportado por um bom tempo, permitindo que você continue usando o KDE 3.5 até se sentir confortável em migrar.

Por default, o Debian instala o Gnome como desktop e não existe opção dentro do instalador para alterar isso. Para usar o KDE, é necessário usar a opção “desktop=kde”. Similarmente, você pode instalar com o XFCE usando a “desktop=xfce”. Para usá-las

Ambas as opções devem ser especificadas como um parâmetro na tela de boot. Para isso, selecione a opção “Graphical Install” no menu, pressione a tecla TAB para ter acesso à linha de boot e adicione a opção no final da lista:

Como de praxe, a primeira pergunta é sobre a linguagem; basta digitar “p” e selecionar o Português do Brasil. A pergunta seguinte é sobre a localização (que define a moeda, o padrão de medidas e outras opções regionais), seguida pela confirmação do layout de teclado.

A menos que você esteja com a coleção completa das mídias de instalação em mãos, é importante possuir uma conexão de rede disponível durante a instalação, para que o instalador possa baixar os pacotes necessários. O ideal é sempre usar uma conexão de rede local compartilhada, já que o instalador não oferece suporte a modems 3G e outras modalidades mais exóticas de conexão, se limitando a suportar placas cabeadas e placas wireless que possuem drivers open-source.

Por default, ele tenta configurar a rede via DHCP e, caso nenhum servidor esteja disponível, oferece a opção de configurar os endereços manualmente. É possível também desativar a configuração via DHCP especificando a opção de boot “netcfg/disable_dhcp=true” na tela de boot.

Depois de ajustado o fuso-horário, chegamos ao particionamento, que é composto de opções similares às usadas no instalador do Ubuntu Alternate CD, com as tradicionais opções de instalação assistida ou particionamento manual, que é sempre a opção recomendada para ter um melhor controle sobre o tamanho das partições e evitar acidentes.

Dentro do particionador, basta dar um duplo clique sobre uma partição ou um trecho de espaço livre para abrir o menu de opções, que permite criar, remover ou indicar o diretório onde a partição será montada. Como de praxe, você precisa de pelo menos uma partição raiz (/) e uma partição swap, sendo recomendada também uma partição separada para o diretório /home.

Como de praxe, você pode compartilhar a partição home entre várias distribuições, mas é recomendável utilizar usuários diferentes para cada um para evitar misturar as configurações. É importante prestar atenção ao configurar a partição, usando sempre a opção “não, manter os dados existentes” para preservar os arquivos existentes:

Ao terminar, basta usar o “Finalizar o particionamento e escrever as mudanças no disco”, ou voltar atrás nas modificações escolhendo o “Desfazer as mudanças nas partições”:

Depois de aplicadas as mudanças nos discos, o instalador prossegue para a instalação do sistema base (o mesmo incluído no CD do NetInstall), que inclui apenas o Kernel e os utilitários básicos do sistema, incluindo o apt.

Em seguida, o instalador solicita a senha de root e cria uma conta de usuário para o uso regular do sistema. Diferente do Ubuntu, o Debian não utiliza o sudo por padrão, por isso a administração do sistema é feita da maneira tradicional, usando o “su -” ou “sux” para se logar como root.

Chegamos então à etapa principal da instalação, que é instalação dos pacotes adicionais, que começa com a configuração do gerenciador de pacotes, onde as mídias que serão usadas durante a instalação precisam ser “catalogadas”, para que o instalador gere uma lista dos pacotes disponíveis em cada uma. Como deve estar imaginando, se você gravou os 5 DVDs, ou os 21 CDs, vai precisar catalogar cada um deles antes de prosseguir com a instalação. Se, por outro lado, você seguiu o meu conselho e está usando apenas a primeira mídia, basta responder “não” e continuar. 🙂

A etapa seguinte é a escolha do mirror de onde serão baixados os pacotes adicionais que forem necessários durante a instalação. Responda “sim” no “Utilizar um espelho de rede” e em seguida escolha qual será usado.

O mirror do Brasil (br.debian.org) é hospedado na Universidade Federal do Paraná, que tem uma boa conectividade com todos os principais backbones usados pelos provedores do Brasil. Na grande maioria dos casos ele é o mais rápido, mas sempre existem casos isolados em que o mirror dos Estados Unidos pode ser mais rápido, de acordo com o estado onde mora e o provedor que utiliza. Você pode fazer um teste rápido a partir de outro PC da rede, acessando o http://packages.debian.org/ e tentando baixar um pacote qualquer a partir dos dois para comparar a velocidade.

O instalador baixa então as listas de pacotes do mirror (similar a um “apt-get update”) e em seguida você tem acesso à tela de seleção de pacotes. O ideal é sempre manter selecionado apenas o “Ambiente Desktop” e o “Sistema Básico” (junto com o “Laptop”, caso esteja instalando em um notebook). As demais categorias são destinadas à instalação de servidores que, de qualquer forma, podem ser instalados posteriormente, usando o aptitude ou o apt-get.

Em seguida, temos a “etapa do cafezinho”, onde o instalador vai obter todos os pacotes necessários, parte deles a partir da mídia de instalação e outros via download, para só então iniciar a instalação propriamente dita. Os download dos pacotes para uma instalação padrão usando apenas o primeiro CD demora cerca de uma hora em uma conexão de 1 megabit. Instalando a partir do primeiro DVD (ou usando uma conexão mais rápida), o download demora bem menos.

Finalizando, temos a configuração do grub (o instalador é capaz de detectar outros sistemas instalados automaticamente, assim como no Ubuntu) e a configuração do relógio (com a velha opção de usar ou não o UTC).

Além do instalador tradicional, outra opção é baixar um dos CDs do “Debian-Live”, uma série de live-CDs, contendo instalações com o KDE, Gnome, XFCE ou LXDE, que podem ser baixados no:
http://ftp.br.debian.org/debian-cd/5.0.0-live/i386/iso-cd/

Configurando: Depois de instalar o Debian, o primeiro passo é ajustar os repositórios, para que você possa instalar todos os demais pacotes necessários para obter um desktop funcional. O Debian tem por objetivo oferecer apenas pacotes distribuídos sob licenças livres, por isso pacotes com componentes proprietários são segregados, dando origem ao repositório “non-free”. Similarmente ao que temos no caso do Medibuntu, temos também o debian-multimedia, um repositório adicional, dedicado a distribuir pacotes como o libdvdcss2 e o w32codecs.

Por default, o arquivo “/etc/apt/sources.list” do Debian Lenny inclui apenas três repositórios: main (o repositório principal), updates (atualizações de segurança) e volatile (um novo repositório, destinado a oferecer atualizações para pacotes que mudam com frequência):

deb http://ftp.br.debian.org/debian/ lenny main
deb-src http://ftp.br.debian.org/debian/ lenny main

deb http://security.debian.org/ lenny/updates main
deb-src http://security.debian.org/ lenny/updates main

deb http://volatile.debian.org/debian-volatile lenny/volatile main
deb-src http://volatile.debian.org/debian-volatile lenny/volatile main

Assim como no caso do Ubuntu, as linhas “deb-src” incluem os repositórios com código fonte, que são necessárias apenas se você pretender compilar pacotes manualmente. Você encontrará também uma linha apontando para o CD/DVD de instalação, que também pode ser removida.

Para ativar os repositórios adicionais, adicione um “contrib non-free” nos dois primeiros, complementando o “main”. Aproveite para adicionar também a linha do debian-multimídia, que conclui as modificações:

deb http://ftp.br.debian.org/debian/ lenny main contrib non-free
deb-src http://ftp.br.debian.org/debian/ lenny main contrib non-free

deb http://security.debian.org/ lenny/updates main contrib non-free
deb-src http://security.debian.org/ lenny/updates main contrib non-free

deb http://volatile.debian.org/debian-volatile lenny/volatile main
deb-src http://volatile.debian.org/debian-volatile lenny/volatile main

deb http://www.debian-multimedia.org lenny main

Você pode também substituir a linha do Debian Multimídia pela “deb http://ftp.br.debian.org/debian-multimedia/ lenny main”, que orienta o apt a utilizar o mirror nacional, em vez do servidor principal.

Como de praxe, ao rodar o “apt-get update”, você receberá um erro de chave pública não disponível relacionada ao repositório do debian-multimedia, que acabou de ser adicionado.

Você pode resolver o problema instalando o pacote “debian-multimedia-keyring”, usando o apt:

# apt-get install debian-multimedia-keyring

Outra opção é adicionar a chave manualmente usando os dois comandos que vimos no capítulo do Ubuntu:

# gpg –keyserver subkeys.pgp.net –recv-keys 07DC563D1F41B907
# gpg –export –armor 07DC563D1F41B907 | apt-key add –

A partir daí, você pode completar o time de suporte a multimídia instalando o VLC e o Mplayer, juntamente com o libdvdcss2 e o w32codecs. Diferente do que temos no Ubuntu, a instalação do VLC e do Mplayer dispara a instalação de diversos codecs, que completam o time. Se você estiver usando o KDE, é interessante instalar também o Kaffeine, que é o player oficial:

# apt-get install vlc mplayer kaffeine libdvdcss2 w32codecs

Por algum motivo, o instalador do Lenny instala apenas o suporte à descompactação de arquivos gzip, sem suporte a arquivos .tar.bz2, .zip, .7z ou .rar, que precisam ser instalados manualmente:

# apt-get install bzip2 zip rar p7zip

O Lenny utiliza por padrão fontes da série DejaVu (que é uma evolução do conjunto Bitstream-Vera), combinado com as fontes Liberation e Dustin. Entretanto, os repositórios incluem diversos outros conjuntos de fontes (os pacotes que começam com “xfonts” e “ttf”, que você pode usar para reforçar o conjunto pré-instalado, como em:

# apt-get install xfonts-terminus xfonts-terminus-oblique xfonts-mona ttf-georgewilliams ttf-nafees ttf-freefont ttf-bitstream-vera

Para instalar as fontes do Windows, instale o pacote “mscorefonts-installer”, que é o sucessor do “msttcorefonts”, usando nas versões anteriores:

# apt-get install ttf-mscorefonts-installer

Ele é na verdade um pacote vazio, contendo apenas um script de instalação que se encarrega de baixar os arquivos das fontes, extrair os arquivos, copiá-los para a pasta de fontes do sistema e atualizar a configuração de fontes do sistema para que elas sejam usadas.

Por default, o Debian vem com o bash_completion desativado para o root, o que faz com que você não consiga completar os comandos usando a tecla TAB. Para resolver isso, abra o arquivo “/etc/bash.bashrc” e, próximo ao final, descomente as linhas:

if [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi

Para que o terminal fique colorido (pastas aparecem em azul, arquivos compactados em vermelho e assim por diante, o que torna mais fácil identificar os arquivos) adicione a linha:

alias ls=”ls –color=auto”

… no final do arquivo “/etc/profile”.

Em ambos os casos, para que a alteração entre em vigor, você deve fazer logout no terminal (usando o comando “exit”, ou pressionando Ctrl+D) e logando-se novamente.

Devido a escaramuças relacionadas à licença, o Debian não inclui o Firefox, mas sim o Iceweasel, que é uma versão alternativa do navegador, mantida pela equipe do Debian, que exclui todas as artes e marcas de propriedade da fundação Mozilla. Na verdade, o Iceweasel não é nem melhor nem mais seguro que o Firefox, é apenas uma derivação originada de discussões filosóficas.

Apesar disso, nada impede que você instale o Firefox manualmente, baixando o pacote disponível no: http://www.mozilla.com/pt-BR/firefox/all.html

Para substituir o Iceweasel por ele, é necessário remover o pacote, descompactar o arquivo na pasta /opt, criar o link “/usr/bin/firefox”, apontando para o executável dentro da pasta e substituir a pasta “/opt/firefox/plugins” por um link para a pasta “/usr/lib/mozilla/plugins”, que é o diretório onde os plugins são instalados por padrão no Debian.

Você pode baixar o arquivo no seu diretório home e fazer o restante usando o root, como em:

# apt-get remove iceweasel
# mv firefox-3.0.6.tar.bz2 /opt
# cd /opt
# tar -jxvf firefox-3.0.6.tar.bz2
# ln -s /opt/firefox/firefox /usr/bin/firefox
# rm -rf /opt/firefox/plugins
# ln -sf /usr/lib/mozilla/plugins /opt/firefox/plugins

Com tudo pronto, fica faltando apenas recriar o ícone no iniciar, apontando para o “/usr/bin/firefox”, que você pode criar usando o editor de menus.

Como ao fazer a instalação manual você não poderá contar com as atualizações de segurança via “apt-get upgrade”, é importante ativar as atualizações automáticas do Firefox. Para isso, transfira a posse da pasta “/opt/firefox” para o seu usuário, como em:

# chown -R gdh /opt/firefox

Isso permitirá que o próprio Firefox modifique o conteúdo da pasta, instalando as atualizações conforme elas forem disponibilizadas (verifique se as atualizações automáticas estão ativadas no “Editar > Preferências > Avançado > Atualizações”).

Concluindo, o tema default do Firefox é um pouco feio, mas você pode baixar outros no https://addons.mozilla.org/pt-BR/firefox/browse/type:2. Uma boa opção é o Nemesis.

Se você preferir ficar com o Iceweasel (a principal vantagem em utilizá-lo é ter acesso às atualizações diretamente pelo “apt-get upgrade”), é importante modificar a identificação do navegador dentro do “about:config”.

Pesquise pela opção “general.useragent.extra.firefox”. Originalmente ela contém o valor “Iceweasel/3.0.6”, o que faz com que muitos sites não reconheçam o navegador e bloqueiem o acesso ou exibam a versão simplificada para dispositivos móveis. Para resolver o problema, mude o texto para “Firefox/3.0.6”.

Com relação aos plugins, o Lenny usa por padrão o swfdec, que é um plug-in flash open-source. Ele funciona bem para exibir animações básicas, mas possui várias limitações com relação à exibição de vídeos e execução de jogos e mini-aplicativos. Você pode substituí-lo pelo plugin da Adobe (disponível no repositório non-free) via apt:

# apt-get remove swfdec-mozilla swfdec-gnome
# apt-get install flashplayer-mozilla

Você pode também instalar o suporte a Java através dos pacotes “sun-java6-jre” (o JRE propriamente dito) e “sun-java6-plugin” (o plugin para o Firefox/Iceweasel), que também fazem parte do repositório non-free:

# apt-get install sun-java6-jre sun-java6-plugin

Estas são apenas algumas dicas rápidas para uso do Lenny em desktops. Você pode também ler mais sobre o uso em servidores no Servidores Linux, Guia Prático.

fonte: http://www.gdhpress.com.br/blog/guia-debian-lenny/

Como fazer Upgrade do Debian Etch para o Debian Lenny – How to upgrade Debian Etch to Debian Lenny

Standard

A perfeição com que o Debian e o Ubuntu operam no momento de upgrades de suas versões é impressionante (coisa que sistemas como o poderoso Rhel não recomendam), causando o mínimo de falhas possíveis/imaginárias no sistema que recebeu a atualização.

Neste artigo iremos mostrar como fazer upgrade do Debian Etch para o Debian Lenny. Vamos seguir os passos abaixo:

1 – Atualizar as listas do APT

Primeira coisa que iremos fazer é o backup das listas de repositórios, depois iremos modificar de etch para lenny os valores descritos da versão na lista de Repositórios, veja a versão antes da modificação:

deb http://ftp.us.debian.org/debian/ etch main contrib non-free
deb-src http://ftp.us.debian.org/debian/ etch main contrib non-free
deb http://security.debian.org/ etch/updates main contrib non-free

Agora veja a versão depois modificação:

deb http://ftp.us.debian.org/debian/ lenny main contrib non-free
deb-src http://ftp.us.debian.org/debian/ lenny main contrib non-free
deb http://security.debian.org/ lenny/updates main contrib non-free

2 – Fazendo update dos pacotes

aptitude update
depois
aptitude install apt dpkg aptitude

Se for desktop use isto como adicional
dpkg -l libfam0c102 | grep ^ii
aptitude install libfam0
por fim
aptitude full-upgrade
isto pode também ser usado via apt-get com o comando:
apt-get dist-upgrade

Depois disto reinicie seu servidor/desktop e prepare-se para rodar o Debian em sua versão mais amigável, estável e flexível possível.

Abraços a todos.

fonte original: http://www.debianadmin.com/howto-upgrade-from-debian-etch-40-to-lenny-50.html

Análise do Debian 5 (lenny)

Standard

Quase dois anos após o lançamento da versão 4.0 (codinome “Etch”) — e pouco depois do lançamento de sua sétima revisão —, a equipe de desenvolvimento do projeto Debian lançou finalmente a versão 5.0 (codinome “Lenny”) de uma das distribuições GNU/Linux mais conceituadas entre os profissionais habituados a trabalhar com o sistema do pinguim. Base para uma quantidade imensa de outras distribuições — entre elas o popular Ubuntu Linux, o Xandros, que equipa todos os modelos do EeePC, da ASUS, além das brasileiras DreamLinux, Insigne (pré-instalada em mais de 1.5 milhões de PCs para todos, comercializados no Brasil) e do (finado?) Kurumin Linux, uma das distribuições mais populares no Brasil no passado — o Debian GNU/Linux chega aos 16 anos emancipado: poucas distribuições Linux atingiram esse grau de maturidade com o nível de qualidade do projeto fundado em 1993 por Ian Murdock.

Em nosso teste usamos o CD de instalação via rede (ou netinst), um único CD que permite instalar todo o sistema operacional, mas contém apenas a quantidade mínima de software para começar a instalação e obter os outros pacotes pela Internet. Como os servidores do projeto Debian estão atualmente bastante sobrecarregados, a melhor maneira de obter a imagem do CD é recorrer ao bom e velho BitTottent, cujo arquivo .torrent pode ser obtido aqui. Com uma conexão banda larga comum, a imagem do CD (que tem apenas 150 MB) pode ser baixada em alguns minutos.
Instalação

A instalação não reserva muitas dificuldades ou surpresas: basta colocar o CD no respectivo leitor de mídia e escolher uma das alternativas que aparecem na tela, sendo que as opções Install e Graphical Install fazem exatamente aquilo que se supõe: instalam o sistema em modo texto ou gráfico. É digno de nota o fato de que é a primeira vez que um instalador gráfico é parte integrante de uma versão estável da distribuição Debian GNU/Linux.

A partir daí, sendo a instalação em modo texto ou gráfico, escolhe-se o idioma de instalação, o país e a disposição do teclado, dá-se um nome à máquina que está sendo instalada, configura-se o sistema para usar um servidor de horário (NTP) e particiona-se o(s) disco(s) para onde o sistema deverá ser instalado. Aqui uma recomendação de cautela: se for necessário criar diversas partições, é importante certificar-se de que há espaço suficiente no diretório raiz (/), em /var e em /usr. Em nossos testes, foi utilizado um esquema de se colocar a partição /home, na qual residem os dados dos usuários, separada do resto do sistema. Isso gerou problemas mais tarde, pois a etapa de seleção de software, apesar de levar em consideração a quantidade de espaço disponível no restante do sistema (que havia ficado simplesmente em /) — espaço esse sugerido pelo instalador quando do particionamento —, permite que se escolha mais aplicativos do que o espaço comporta. Não há qualquer mensagem de aviso ao usuário, recomendando que ele refaça a sua seleção de software. O particionamento do(s) disco(s), diga-se de passagem, apesar de simples, reserva muito espaço para melhoras, conforme já mostrou ser possível a última versão do Ubuntu, um derivado do Debian, conforme escrevemos acima. Seria interessante que houvesse um nível maior de colaboração entre as duas comunidades, com um consequente aumento de “polinização cruzada” entre os aplicativos dos dois projetos.

Após a senha do administrador e um usuário comum serem definidos, o repositório de software ser configurado, a seleção de software especificada estar instalada e a configuração do gerenciador de boot ser finalizada, basta reiniciar o sistema para iniciar um Debian 5.0 pronto para uso.
Uso como desktop?

O sistema é equipado com um kernel 2.6.26, finalizado por Linus Torvalds em 13/07/2008 e, desta forma, sete meses antes do lançamento do Lenny e duas versões mais velho do que o kernel mais recente, a versão 2.6.28(.5). Isso pode significar algum transtorno, especialmente para usuários de placas de rede WiFi e 3G para as quais novos drivers para Linux tenham sido lançados nos últimos seis meses. Razão para o uso de uma versão do kernel tão “antiga”, quando as últimas versões tanto do Ubuntu quanto do Fedora, lançadas respectivamente no final de outubro e novembro de 2008 já usam a versão 2.6.27, é a política de qualidade do projeto Debian, que premia a estabilidade do software. Usuários do Sid, ramo de desenvolvimento do Debian cuja árvore de dependências entre aplicativos é considerada instável (daí seu nome, unstable), também estavam limitados até agora ao kernel 2.6.26.
Desktop padrão do Debian 5.0, com o Iceweasel e o BrOffice.org Writer abertos e um filme sendo reproduzido no Totem.

Do ponto de vista das versões dos aplicativos instalados, uma novidade é a instalação de um servidor de janelas isento de configuração (X-Server 7.3). Pacotes para os drivers proprietários da ATI e da NVIDIA não são instalados por padrão e não há qualquer mecanismo trivial para instalá-los, muito embora eles estejam disponíveis na seção non-free do repositório da distribuição. O usuário tem que instalá-los ativando essa seção do repositório via linha de comando com o apt-get/aptitude ou graficamente com o synaptic.

Algo muito peculiar ocorre com codecs para formatos proprietários de áudio (MP3, WMA) e vídeo (QuickTime, WMV, H264 em geral): o Totem instalado por padrão não é capaz de reproduzi-los automaticamente, requerendo a instalação de plug-ins proprietários, algo que é muito simples, pois o próprio sistema se encarrega de instalá-los automaticamente se o usuário concordar com um aviso exibido na tela. Já o plug-in do Totem para o navegador de Internet foi capaz de reproduzir em nosso teste todo o tipo de conteúdo, pois conta com suporte aos codecs proprietários por padrão.

Ponto para o projeto BrOffice.org: a instalação em português do sistema instala automaticamente a versão nacionalizada do conjunto de aplicativos para escritório, em vez do OpenOffice.org. Infelizmente, da mesma forma que ocorreu com a última versão do Ubuntu, a versão instalada no Debian 5.0 ainda é a 2.4.1. A versão 3.0.0 sequer foi disponibilizada na árvore instável do projeto. Usuários que quiserem usar as fontes TrueType básicas da Microsoft deverão também ativar a seção contrib do repositório do Debian e instalá-las por meio do pacote ttf-mscorefonts-installer (o pacote msttcorefonts, utilizado até então para essa finalidade, deve ser eliminado do sistema em uma das próximas revisões).

Irritante é o fato de que nenhum dos aplicativos básicos da Adobe — a saber, o Adobe Reader (e seu respectivo plug-in para navegadores de Internet) e a extensão Flash Player para os navegadores de Internet — estão disponíveis em qualquer das seções dos repositórios oficiais do sistema. A versão 0.6.0 do Swfdec é responsável pela reprodução de animações em Macromedia Flash (a última versão estável do Swfdec, lançada no dia 21/12/2008, era a 0.8.4) e o Evince é o visualizador de arquivos PDF. O motivo que os desenvolvedores do Debian alegam para não disponibilizar os dois aplicativos da Adobe na seção non-free do repositório da distribuição, seria um problema com a nomenclatura das versões dos programas, que levaria a uma dificuldade de sincronizar atualizações de segurança realizadas pela Adobe nos dois aplicativos e a criação de pacotes para o Debian.

Outra coisa que incomoda é ter o Epiphany como navegador de Internet padrão, mesmo com o Iceweasel — que é como o Debian batizou o Mozilla Firefox, por questões de discordância com os termos de uso da marca da Fundação Mozilla — instalado por padrão. Há que se perguntar qual a motivação por trás da decisão de oferecer dois navegadores de Internet pré-instalados no sistema, sendo que a escolha do navegador padrão tenha recaído pelo menos popular deles.

A tabela a seguir ilustra alguns dos principais aplicativos instalados por padrão no sistema, bem como suas respectivas versões:
Debian 5.0 “Lenny”: aplicativos e versões
Aplicativo

Versão

Função
Kernel 2.6.26 É o Linux propriamente dito
X.org 7.3 Gerenciador de janelas
GNOME 2.22.3 Ambiente de trabalho
BrOffice.org 2.4.1 Conjunto de aplicativos para escritório
Iceweasel (Firefox) 3.0.6-1 Navegador de Internet
Pidgin 2.4.3 Aplicativo para troca instantânea de mensagens
Evolution 2.22.3.1 Correio eletrônico, gerenciador de tarefas, calendário e gerenciador de contatos
Gimp 2.4.7 Editor de imagens
Inkscape 0.46 Editor de imagens vetoriais
Rhythmbox 0.11.6 Reprodutor e gerenciador de músicas
Totem 2.22.2 Reprodutor de filmes
Ekiga 2.0.12 Cliente VoIP

DNA de servidor

No que tange à operação em servidores, área em que o Debian faz cada vez mais adeptos, a preocupação com segurança é sempre uma constante: diversos dos pacotes de serviços do sistema foram compilados com opções de segurança do GCC ativadas ou alterados com patches de segurança — como é o caso do PHP, por exemplo —, no intuito de dificultar a vida dos onipresentes agressores. Versões atualizadas do MySQL 5.1 e do PostgreSQL 8.3 são outras das aplicações que passaram por esse processo de melhoria de segurança.

A equipe de desenvolvimento do sistema também trabalhou pesado no suporte à virtualização: o Xen foi atualizado para a versão 3.2.1 e há suporte também para o KVM. O VirtualBox, por outro lado, está disponível em sua variante de código aberto (OSE) apenas na versão 1.6.6 — no fechamento deste artigo, a versão atual era a 2.1.2, disponível no site do projeto, agora de propriedade da Sun Microsystems. Para instalá-la basta incluir a seguinte linha ao arquivo /etc/apt/sources.list:

deb http://download.virtualbox.org/virtualbox/debian lenny non-free

e usar um dos gerenciadores de pacotes disponíveis para realizar a instalação propriamente dita.
Conclusão

O Debian 5.0 é uma distribuição GNU/Linux que, como de costume, prima pela qualidade, mas não pela disponibilização de versões mais atuais dos programas instalados. Praticamente todos os recursos disponíveis por padrão procuram oferecer recursos utilizando software livre. Essa opção, muito louvável de um lado, dificulta a escolha de alternativas proprietárias, que, infelizmente, em alguns casos, são as únicas que funcionam efetivamente — o caso do Flash Player sendo um bom exemplo (pelo menos por enquanto).

Como sistema para o desktop, a nova versão do Debian pode ser utilizada por usuários iniciantes ou experientes. A instalação dos plug-ins proprietários pode ser um desafio para os primeiros e há que se perguntar por que razão um iniciante deixaria de usar versões um pouco mais amigáveis do Linux baseadas no próprio Debian, como é o caso do Ubuntu, que se concentrou em resolver essas idiossincrasias que fazem da vida do usuário comum um inferno. Já o usuário experiente, que busca estabilidade e consegue superar facilmente esse tipo de transtorno, vai ficar satisfeito em poder trabalhar com um sistema leve, enxuto e extremamente estável, que conta com quase 23.000 pacotes prontos para instalar.

Como servidor, o Lenny é uma atualização obrigatória. Provavelmente, o sistema deverá ser um competidor forte para outras distribuições Linux, para diversos sabores de UNIX e também para o Windows®. Simples de gerenciar, flexível e bastante robusto, o Debian 5.0 veio para melhorar o que já era bom.

Seja servidor ou desktop, entretanto, o fato é que a nova versão continuará a ser a plataforma base de escolha para um grande número de distribuições populares, servidores dedicados (appliances) e dispositivos embarcados — a nova versão oferece suporte a 11 arquiteturas, fornecendo praticamente a mesma experiência de uso em todas elas.

fonte: http://linuxmagazine.uol.com.br/materia/analise_do_debian_50_lenny

Ubuntu Server, usei e confiei

Standard

Boa tarde a todos,

Não vim aqui como xiita ou como “cannonizador”, muito pelo contrário, vim deixar a minha adimiração por uma das distribuições mais amigáveis que já vi em toda a minha vida.

Sou um amante do Slackware Gnu/Linux e um observador do CentOs (+ fedora/rhel), todavia eu conheço o poderoso Debian, que tem sua “fatia” no mercado Gnu/Linux.

A Questão maior aqui é -> Por que escolhi, por que confiei e por que recomendo?

Vamos lá!

Em 2007 eu já estava afinado com o ubuntu Desktop e havia sido divulgado que o Ubuntu teve um repositório invadido (pacotes comprometidos e coisas do gênero).

Fiquei com um pé atrás e deixei a versão server “ir catar coquinhos”!

No ano de 2008 resolvi dar uma chance a esta versão (detalhe, já utilizava há muito tempo o Slackware em servidores), foi quando baixei o Ubuntu 8.04 Server 32 bits e instalei em uma máquina muito poderosa, a saber segue uma foto da mesma:

16-07-08_1244

Pois é, de posse da imagem você já deve saber que isto aí é uma SLI Premium + athlon x2 + 2 gb de ram + sata 2 + nvidia pci express.

Esse “tornado aí” também está “gemendo” em sua missão dolorosa, o mesmo opera com os serviços:

apache 2,
mysql 5,
php 5.2.6,
zoneminder (current),
Samba (current),
proxy-cache,
firewall + gateway de internet.

Vou colar o load da “criança”:

top – 14:43:29 up 72 days, 32 min,  1 user,  load average: 37.34, 37.36, 37.44
Tasks: 255 total,   1 running, 219 sleeping,   0 stopped,  35 zombie
Cpu(s):  4.0%us,  4.5%sy,  0.0%ni,  0.0%id, 91.0%wa,  0.0%hi,  0.5%si,  0.0%st
Mem:   2074460k total,  2023356k used,    51104k free,   125968k buffers
Swap:  6072528k total,      216k used,  6072312k free,  1471032k cached

PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
7499 www-data  20   0  139m  12m  10m S    2  0.6  14:26.22 /usr/local/bin/zma -m 9
7511 www-data  20   0  139m  12m  10m S    2  0.6  14:08.16 /usr/local/bin/zma -m 6
7503 www-data  20   0  139m  12m  10m S    1  0.6  14:30.52 /usr/local/bin/zma -m 7
7507 www-data  20   0  139m  12m  10m S    1  0.6  14:05.84 /usr/local/bin/zma -m 8
7566 www-data  20   0  184m  56m  53m S    1  2.8   3:17.83 /usr/local/bin/zmc -d /dev/video0
24880 root      20   0  1920  808  592 D    1  0.0   1:34.47 /bin/cp -rp /var/www/zm/events/ /home2/camera
24913 root      20   0  1920  808  592 D    1  0.0   1:34.49 /bin/cp -rp /var/www/zm/events/ /home2/camera
24925 root      20   0  1920  816  592 D    1  0.0   1:34.82 /bin/cp -rp /var/www/zm/events/ /home2/camera
24938 root      20   0  1920  812  592 D    1  0.0   1:29.43 /bin/cp -rp /var/www/zm/events/ /home2/camera

Sinceramente, um verdadeiro warrior, visto que um load tolerável é algo girando em torno de 1.5 ou 1.6.
Utilizando o mesmo desta forma, já contemplo a plataforma 5 meses online sem sequer travar ou demonstrar instabilidade.

Quando trabalhava para uma conhecida instituição eu usei muito o slackware, mas agora confesso que sinto-me tentado na hora de montar um servidor.

Mas vai minha humilde dica:
Use slackware se realmente você sabe o que quer e se você realmente sabe utilizar/configurar os recursos necessários para sua demanda. Slackware é muito enxuto, por isso cuidado com o que vai instalar, por que possivelmente você pode não estar munido de libs, e aí meu caro, ./configure –… copiou a idéia?

Use ubuntu seguindo o pensamento anterior, porém com a certeza do aptitude ou apt-get estarem sempre disponíveis para tirar você da lama!

Abraços…

bye
=]

Zoneminder no Ubuntu ou Debian – Serviço de Câmeras Web (cftv)

Standard

Bom, vamos falar sobre a instalação do Zoneminder e algumas dicas e truques para o mesmo funcionar adequadamente.

Como tudo começou:

Meu chefe me passou a url do programa dizendo que seria uma boa solução para o controle das imagens geradas pelas câmeras internas. Pediu pra eu testar.

Equipamentos:

Placa de Captura com chipset bttv. Como já havia visto uma funcionando, indiquei a Pico2000. Que pode ser encontrada em média de 50 reais no mercado livre (http://www.mercadolivre.com.br).

Computador com slot pci, e os cabos para ligar as câmeras a placa.

E o sistema operacional usado será o Linux, distribuição Ubuntu.

A escolha da distribuição pesou devido ao fato de que todos os desktops da empresa rodarem Ubuntu, então pra não ficar inventando moda resolvi usar a mesma coisa para padronizar. E provavelmente o servidor que vamos colocar em produção vai ser Debian, não vai haver grandes mudanças na hora da instalação para produção.

Vamos ao que interessa.

ara fazer a verificação se o sistema detectou a placa, faça o seguinte procedimento:

# dmesg | grep bttv

Deve aparecer a seguinte saída:

Com isso já guarde as seguintes informações:

[ 82.180611] bttv0: registered device video0
[ 82.180792] bttv0: registered device vbi0

Instalações

Agora vamos a parte boa, instalar o que é necessário.

Vamos fazer a instalação por partes:

1. Apache, MySQL e PHP:

# apt-get update
# apt-get install apache2 mysql-server mysql-client php5-mysql php5-gd php5-cgi php-pear libgd-tools php5-dev libmysql++-dev libmysqlclient15-dev

Depois dessa instalação, já vai estar com seu servidor web pronto para o serviço.

2. Codecs de vídeo:

# apt-get update
# apt-get install libavcodec-dev libavcodec1d libavformat-dev libavformat1d libavutil-dev libavutil1d ffmpeg libavifile-0.7c2

3. As demais dependências:

# apt-get update
# apt-get install g++ make netpbm libssl-dev libjpeg62-dev libmime-perl libwww-perl libarchive-tar-perl libdate-manip-perl libarchive-zip-perl libmime-lite-perl libdbi-perl libdbd-mysql-perl libpcre3-dev libgnutls-dev

Feito isso seu sistema já vai estar pronto para receber o Zoneminder, após claro a pequena compilação dele.

Instalação do Zoneminder

Tendo instalado todos os programas anteriores, essa parte é mais simples pois provavelmente não vai dar erro agora.

Baixe o source pelo site:

# wget -c http://www2.zoneminder.com/downloads/ZoneMinder-1.23.2.tar.gz
# tar czf ZoneMinder-1.23.2.tar.gz
# cd ZoneMinder-1.23.2

Agora vem o pulo do gato, se você fizer sem alterar nada vai dar erro no make, se quiser testar, fique a vontade, se quiser fazer o trem funcionar de primeira edite o arquivo src/zm_mpeg.cpp e na linha 280 altere de:

#if ZM_FFMPEG_SVN

Para:

#if !ZM_FFMPEG_SVN

Isso mesmo, só adicionar um “!” ali depois do if.

Agora proceda com a instalação:

# ./configure –with-webdir=/var/www/zm –with-cgidir=/usr/lib/cgi-bin –with-webuser=www-data –with-webgroup=www-data
# make
# make install

Agora vamos usar o script para criar o banco de dados:

# mysql mysql < db/zm_create.sql -p

E agora logar no mysql para dar permissão ao usuário criado:

# mysql -u root -p
mysql> grant select,insert,update,delete on zm.* to ‘zmuser’@localhost identified by ‘zmpass’;
mysql> flush privileges;

Prontinho, prontinho, prontinho…

Script de inicialização

Crie um arquivo chamado zoneminder e coloque dentro dele as seguintes linhas para a criação de um script de inicialização “automágica”:

#!/bin/sh
# description: Control ZoneMinder as a Service
# chkconfig: 2345 35 15

# Source function library.
#. /etc/rc.d/init.d/functions

prog=ZoneMinder
ZM_PATH_BIN=”/usr/bin”
command=`which zmpkg.pl`

start() {
echo -n “Starting $prog: ”
$command start
RETVAL=$?
[ $RETVAL = 0 ] && echo success
[ $RETVAL != 0 ] && echo failure
echo
[ $RETVAL = 0 ] && touch /var/lock/zm
return $RETVAL
}
stop() {
echo -n $”Stopping $prog: ”
#
# Why is this status check being done?
# as $command stop returns 1 if zoneminder
# is stopped, which will result in
# this returning 1, which will stuff
# dpkg when it tries to stop zoneminder before
# uninstalling . . .
#

result=`$command status`
if [ ! “$result” = “running” ]; then
echo “Zoneminder already stopped”
echo
RETVAL=0
else
$command stop
RETVAL=$?
[ $RETVAL = 0 ] && echo success
[ $RETVAL != 0 ] && echo failure
echo
[ $RETVAL = 0 ] && rm -f /var/lock/zm
fi
}
status() {
result=`$command status`
if [ “$result” = “running” ]; then
echo “ZoneMinder is running”
RETVAL=0
else
echo “ZoneMinder is stopped”
RETVAL=1
fi
}

case “$1” in
‘start’)
start
;;
‘stop’)
stop
;;
‘restart’ | ‘force-reload’)
stop
start
;;
‘status’)
status
;;
*)
echo “Usage: $0 { start | stop | restart | status }”
RETVAL=1
;;
esac
exit $RETVAL

De acordo com sua distribuição, coloque o script no local adequado, dê permissão 775 para ele ser executado e reinicie sua máquina para fazer o teste.

Se for no Ubuntu também:

– copie para o diretório /etc/init.d
– faça os links simbólicos:

# ln -s /etc/init.d/zoneminder /etc/rc0.d/K20zoneminder
# ln -s /etc/init.d/zoneminder /etc/rc1.d/K20zoneminder
# ln -s /etc/init.d/zoneminder /etc/rc2.d/S20zoneminder
# ln -s /etc/init.d/zoneminder /etc/rc3.d/S20zoneminder
# ln -s /etc/init.d/zoneminder /etc/rc4.d/S20zoneminder
# ln -s /etc/init.d/zoneminder /etc/rc5.d/S20zoneminder
# ln -s /etc/init.d/zoneminder /etc/rc6.d/K20zoneminder

– pronto, ele irá iniciar sozinho.

Depois de feito todo o procedimento anterior, verifique se o apache está rodando, se sim acesse:

http://localhost/zm

Agora o resto é simples, para as configurações iniciais só clicar em Opções (ou Options se ele não pegar o idioma pt-br). Como na imagem abaixo:

Na primeira tela você pode escolher a linguagem da forma que achar melhor:

Na aba caminhos você edita onde deseja salvar os arquivos capturados:

Na aba imagens você escolhe como deseja que seja feito o streaming de vídeo e também o caminho do ffmpeg.

O resto das opções são bem intuitivas, basta ler. Isso vou deixar com você.

Dicas e conclusão

Dicas (Onde eu tropecei):

  • Verificar o padrão da câmera se é PALM ou NTSC.
  • Colocar pra gravar os dados em outra partição separada.
  • Ler os manuais

Conclusões

Esse artigo foi escrito com a finalidade de dar uma luz pra quem esta ralando nessa área e não quer mexer com esses GEOVISION. Então está aí pra mostrar o caminho, o resto depende de cada um. Qualquer dúvida, estamos aqui pra saná-la.

fonte: http://www.vivaolinux.com.br/artigo/Ubuntu-+-Zoneminder-=-Solucao-Livre-para-CFTV/?pagina=1

Detecção de Intrusos em Aplicações WEB PHP com PHPIDS

Standard

Detecção de Intrusos em Aplicações php com PHPIDS

A dica aqui vai para servidores que rodam com o apache e php5 (sob linux).
O PHPIDs é um sistema de detecção de instrusos, simples, rápido, bem estruturado e de fácil utilização. Isto cria mais uma camada de segurança para a sua aplicação web. Ele não vai filtrar entradas maliciosas, tampouco fazer maravilhas, como se estivesse com inteligência artificial, ele irá detectar o ataque e irá reagir segundo as suas configurações. O interessante é que ele tem o poder de decisão no momento de uma tentativa de invasão. Ele
pode servir para informar ao atacante que está tentando invadir de cuidade, alerta e etc, ou mesmo, notificar ao core de desenvolvimento da aplicação por email a tal tentativa de invasão.

Este how to é beta e nada aqui é GARANTIDO de funcionar, mas deve!

Requerimentos:

Os testes foram realizados na plataforma Gnu/Linux, no sabor Debian Etch, o qual teve ip

setado como 192.168.0.100, tendo por usuário e grupo de usuário do apache www-data.
Nos testes o diretório principal usado é um virtual host -> /var/www/web1/web

Por questões de segurança o diretório do PHPIDs será criado em outro lugar para evitar problemas com a estrutura, tornando-a mais difícil contra vulnerabilidade, no caso:

mkdir /var/www/web1/phpids

Criamos um diretório recursivo, evitando acesso público ao web, que deixaria o script vulnerável.

O arquivo que usamos neste tutorial é phpids-0.4.7.tar.gz, o qual temos apenas a necessidade de uso diretório lib.

cd /tmp
wget http://php-ids.org/files/phpids-0.4.7.tar.gz
tar xvfz phpids-0.4.7.tar.gz
cd phpids-0.4.7
mv lib/ /var/www/web1/phpids/

Agora mudamos o diretório para /var/www/web1/phpids/lib/IDS:

cd /var/www/web1/phpids/lib/IDS

Agora iremos fazer com que o /tmp permita escrita para o usuário do apache (log do phpids necessitará):

chown -R www-data:www-data tmp/

Agora vamos configurar o PHPIDs em seu arquivo de configuração:

cd Config/
vi Config.ini

As configurações são padrão, todavia iremos alterar o caminho de onde estão os arquivos, sendo o ajuste final idêntico a isto aqui:

; PHPIDS Config.ini

; General configuration settings

; !!!DO NOT PLACE THIS FILE INSIDE THE WEB-ROOT IF DATABASE CONNECTION DATA WAS ADDED!!!

[General]

filter_type     = xml
filter_path     = /var/www/web1/phpids/lib/IDS/default_filter.xml
tmp_path        = /var/www/web1/phpids/lib/IDS/tmp
scan_keys       = false

exceptions[]    = __utmz
exceptions[]    = __utmc

; If you use the PHPIDS logger you can define specific configuration here

[Logging]

; file logging
path            = /var/www/web1/phpids/lib/IDS/tmp/phpids_log.txt

; email logging

; note that enabling safemode you can prevent spam attempts,
; see documentation
recipients[]    = test@test.com.invalid
subject         = “PHPIDS detected an intrusion attempt!”
header                      = “From: <PHPIDS> info@php-ids.org”
safemode        = true
allowed_rate    = 15

; database logging

wrapper         = “mysql:host=localhost;port=3306;dbname=phpids”
user            = phpids_user
password        = 123456
table           = intrusions

; If you would like to use other methods than file caching you can configure them here

[Caching]

; caching:      session|file|database|memcached|none
caching         = file
expiration_time = 600

; file cache
path            = /var/www/web1/phpids/lib/IDS/tmp/default_filter.cache

; database cache
wrapper         = “mysql:host=localhost;port=3306;dbname=phpids”
user            = phpids_user
password        = 123456
table           = cache

; memcached
;host           = localhost
;port           = 11211
;key_prefix     = PHPIDS
;tmp_path       = /var/www/web1/phpids/lib/IDS/tmp/memcache.timestamp

Pronto, terminado.

Usando o PHPIDs

Nós iremos criar o arquivo que vai fazer a chamada do PHPIDs (depois iremos ajustar o arquivo para chamar automaticamente os recursos do PHPIDs para todas as contas do servidor):

<?php
set_include_path(
get_include_path()
. PATH_SEPARATOR
. ‘/var/www/web1/phpids/lib’
);

require_once ‘IDS/Init.php’;
$request = array(
‘REQUEST’ => $_REQUEST,
‘GET’ => $_GET,
‘POST’ => $_POST,
‘COOKIE’ => $_COOKIE
);
$init = IDS_Init::init(‘/var/www/web1/phpids/lib/IDS/Config/Config.ini’);
$ids = new IDS_Monitor($request, $init);
$result = $ids->run();

if (!$result->isEmpty()) {
// Take a look at the result object
echo $result;
require_once ‘IDS/Log/File.php’;
require_once ‘IDS/Log/Composite.php’;

$compositeLog = new IDS_Log_Composite();
$compositeLog->addLogger(IDS_Log_File::getInstance($init));
$compositeLog->execute($result);
}
?>

Se você chamar o arquivo no browser, perceberá que o mesmo ficará em branco, no caso http://192.168.0.100/phpids.php – porém, mas se você tentar usar um suposto ataque, nosso amigo PHPIDs vai entrar em ação, use o exemplo -> http://192.168.0.100/phpids.php?test=%22%3EXXX%3Cscript%3Ealert(1)%3C/script%3E

Pronto, agora iremos ver o caminho para que os scripts usem o PHPIDs, e o interessante aqui, você não precisará alterar todos os seus scripts, isto por que iremos chamar o script automaticamente como recurso do PHP, isto carregará o mesmo “como se fosse um módulo”, e o parâmetro que define isto bacaninha é -> auto_prepend_file, iremos apontar o arquivo no php.ini principal do servidor, isso dará força e velocidade no desenvolvimento usando tal recurso. Isto também pode ser feito em um arquivo .htaccess, desde que apontemos tudo corretamente, haverá de funcionar turbinado.

NO CASO DO PHP.INI

vi /etc/php5/apache2/php.ini

procure pela linha auto_prepend_file, se não achar, insira no meio do arquivo aberto:

auto_prepend_file = /var/www/web1/web/phpids.php

Reinicie o Apache:

/etc/init.d/apache2 restart

NO CASO DO ARQUIVO .HTACCESS

vi /var/www/web1/web/.htaccess

php_value auto_prepend_file /var/www/web1/web/phpids.php

Verifique os confs de vhost, se estão assim:

<Directory /var/www/web1/web/>
AllowOverride All
</Directory>

Caso sim, caso tenha mudado algo no apache e retorne para este padrão acima, reinicie o apache.

Crie um simples arquivo ->

vi /var/www/web1/web/info.php
dentro dele:

<?php
phpinfo();
?>

Faça um acesso simples -> http://192.168.0.100/info.php

Agora, para ver o PHPIDs em ação use http://192.168.0.100/info.php?test=%22%3EXXX%3Cscript%3Ealert(1)%3C/script%3E

Se as mensagens de alerta forem vistas é por que o script de /var/www/web1/web/phpids.php foi chamado automaticamente de dentro de /var/www/web1/web/info.php.

Sobre os logs

Podem ser vistos em /var/www/web1/phpids/lib/IDS/tmp/phpids_log.txt, para ver rapidamente o teste use:

cat /var/www/web1/phpids/lib/IDS/tmp/phpids_log.txt

Algo parecido com os termos abaixo será exibido:

“192.168.0.77”,2008-06-04T17:36:08+02:00,54,”xss csrf id rfe

lfi”,”REQUEST.test=%5C%22%3EXXX%3Cscript%3Ealert%281%29%3C%2Fscript%3E GET.test=%5C%22%3EXXX%3Cscript%3Ealert%281%29%3C%2Fscript%3E”,”%2Finfo.php%3Ftest%3D%2522%253EXXX%253Cscript%253Ealert%281%29%253C%2Fscript%253E”

Isso é bom para quem quer analisar tipos de ataques e quer reaplicar mudanças valiosas na segurança.

Vamos fazer uma mudança no nível de segurança para que seja exibida informação, caso esteja vazio o ataque, prossiga, do contrário será parado o script!

vi /var/www/web1/web/phpids.php

<?php
set_include_path(
get_include_path()
. PATH_SEPARATOR
. ‘/var/www/web1/phpids/lib’
);

require_once ‘IDS/Init.php’;
$request = array(
‘REQUEST’ => $_REQUEST,
‘GET’ => $_GET,
‘POST’ => $_POST,
‘COOKIE’ => $_COOKIE
);
$init = IDS_Init::init(‘/var/www/web1/phpids/lib/IDS/Config/Config.ini’);
$ids = new IDS_Monitor($request, $init);
$result = $ids->run();

if (!$result->isEmpty()) {
// Take a look at the result object
echo $result;
require_once ‘IDS/Log/File.php’;
require_once ‘IDS/Log/Composite.php’;

$compositeLog = new IDS_Log_Composite();
$compositeLog->addLogger(IDS_Log_File::getInstance($init));
$compositeLog->execute($result);

die(‘<h1>Go away!</h1>’);
}
?>

fonte:

http://www.howtoforge.com/intrusion-detection-for-php-applications-with-phpids

How to ou Tutorial Full do Subversion (SVN) Fácil e prático (e ripado)

Standard

Este é um pequeno artigo que tem a intenção de resumir , para iniciantes no assunto, como eu, as principais funcionalidades e conceitos por trás do controle de versão (versionamento) feito através do Subversion ou SVN.

Atenção! Este artigo foi todo baseado no UBUNTU, mas pode ser facilmente modificado para se aplicar em qualquer S.O, como o windows.

Como o título pode sugerir, não pretendo aqui abordar as inúmeras funcionalidades ou mesmo mostrar todo o poder do subversion. Sou um programador PHP que, a maioria do tempo, trabalho sozinho nos meus projetos, apenas sendo ajudado no que tange ao projeto gráfico dos sites pelos meus amigos.

A idéia é mostrar como usar, de forma prática, o controle de versão, por pessoas como eu, que não obrigatoriamente estão trabalhando em grandes equipes. Deixando claro que, os conceitos aqui apresentados, poderão ser extendidos.

Começemos pelo começo !

Para que serve este negócio de controle de versão ?! A finalidade é dar um controle maior sobre tudo que você altera no seu projeto!

Pausa para explicação! 

Projeto: Nome que inventamos de dar a um monte de arquivo e diretório junto! Ou seja, para o Subversion é tudo arquivo e diretório! Problema seu se você quis chamar isso de projeto!

Digamos que ele permite você ter um histórico de tudo que você fizer. Se você modificou aquela rotina para otimizar uma
montagem_pensamento_inicial.jpgconsulta, se você inseriu uma nova função e retirou outra, se você modificou a imagem que era exibida em determinada página html, tudo fica lá guardado! Pra que isso ? Para o caso de sua alteração causar algum problema! Se deu você nem precisa se preocupar em relembrar o que foi que tinha alterado, se fez tudo correto, basta um simples comando e você recupera o estado anterior.

O Melhor de tudo, na minha opinião, é que você fica livre para mexer como quiser no seu projeto sem precisar ficar fazendo backups !

Vai me dizer que você nunca pegou um arquivo fonte para alterar aquela função vital e só por via das dúvidas fez um backup e deixou lá : arquivoFonte.bkp. Ai depois precisou fazer outra alteração, e lá foi você fazer um outro backup : arquivoFonte-20070507.bkp ?! Ou ainda resolveu fazer uma alteração substancial em várias partes do site e ai resolveu, por via das dúvidas, copiar todo o diretório e criar um outro: projetoBackup ! Nunca fez isso ? Sorte sua amigo, pois muita gente faz isso e fica com aquele monnnte de arquivos no diretório.

Vamos só explicar, antes de mais nada, alguns conceitos.

<conceitos>

Repositório!

Segundo o Houaiss, lugar onde se guarda, arquiva, coleciona alguma coisa. Traduzindo. Nada mais é do que o local onde você vai guardar o seu projeto. Na prática, é um diretório, uma pasta qualquer guardada ou no seu computador, ou no seu pendrive, ou em um server na china.

Repositório = Diretório = Pasta

A única diferença entre um repositório e um diretório qualquer do seu disco, é que o repositório é uma pasta que é controlada pelo Subversion, ou seja, ele vai colocar um bocado de coisa lá dentro e vai controlar tudo. Logo, não se preocupe se você não entender o que tem lá dentro. Simplesmente saiba que ele vai controlar tudo direitinho.

Cópia de Trabalho (Working Copy)

Novamente, nada mais é que um Diretório, pasta, qualquer.

Comece a perceber que,para o subversion, tudo se resume a diretórios (pastas) e arquivos. Este negócio de repositório, Cópia de Trabalho, Projeto, é tudo criação da sua cabeça.

A única diferença deste diretório para o Repositório, é que é neste que você trabalha, ou seja, faz as modificações, cria, apaga as coisas. O outro (repositório), é o seu Backup, para onde você manda, por segurança, tudo que você alterou, criou, apagou.

Se tudo é Diretório, qual a diferença entre um diretório qualquer do meu HD, para o Repositório e para a Cópia de Trabalho ? A única diferença é que o Subversion tem controle sobre estas duas últimas, não fazendo a mínima idéia do que fazer sobre todas as outras!

</conceitos>

Resumão!

Tudo se resume a pegar os arquivos do repositório (como quem tira os cadernos da gaveta), fazer as alterações necessárias, enviar de volta para o repositório (guardar os cadernos novamente). E assim sucessivamente.

Vamos Detalhar um pouquinho melhor!

Lembre-se: Você vai trabalhar em um diretório, que chamamos de Cópia de Trabalho (Working Copy) !

O funcionamento básico do controle de versão, resumidamente, consiste em:

 

Criou o Supusitório? Opa, é repositório rapá!
(SVNADMIN CREATE)

Caso ainda não exista uma pasta no seu computador, no seu pendrive, em um servidor qualquer da china, é hora de criar o repositório. Claro, você só vai criar se você tiver este poder né mesmo! A Idéia deste artigo é mostrar como isso é feito localmente, na sua máquina mesmo. Caso necessite, existem servidores pagos e gratuitos , como o projeto OpenSVN (https://opensvn.csie.org/) que permite que você tenha um repositório  longe do seu computador.

 

Para criar um repositório, você vai utilizar o comando svn create. Como a idéia aqui é mostrar como utlizar o subversion, do ponto de vista , de um programador que trabalha sozinho, este passo será necessário. A não ser que se escolha utilizar um servidor externo.

O processo é simples. Basta digitar :

$svnadmin  create  <CaminhoDoDiretorio>

Este comando irá criar o Diretório que será considerado o repositório do seu projeto.

Eu tou começando a usar o meu pendrive como repositório. Isso mesmo. Crio o meu repositório no meu pendrive, e ele vai comigo para onde eu quiser. Quando eu chego em outro micro, plugo o pendrive, faço um checkout (explicado mais abaixo), trabalho do jeito que eu quero, e no final, basta desplugar o mesmo, clocar no bolso e ir pra casa. Qual a vantagem disso em relação a um servidor externo ? Boa pergunta! Velocidade, e acesso aos meus projetos, mesmo emmicros sem acesso a internet. Qual a desvantagem ? A inicial é que só eu posso usar isso, ou seja, se quiser um repositório compartilhado com mais pessoas, não dá.

Exemplo Prático:

$mkdir /home/diego/repositorio
$svnadmin create  /home/diego/repositorio/sitePessoal

 

Vai começá ? Coloque as coisa sob o chicote do seu Subversion! 
(SVN IMPORT)

Uma vez que o repositório esteja criado, ou tenha sido escolhido, deve-se pegar os arquivos do seu projeto, que deverão estar em uma pasta qualquer, e colocar no mesmo, para que o subversion possa começar a controlar as alterações que você fizer! Imagine isso como um Backup inicial de tudo que você já tem ou não tem.

Pausa para alguns conceitos! 

O pessoal que trabalha com Controle de Versão, adora definir algumas coisas como “boa prática” ou mesmo como “regras”, mas nada disso que vou falar abaixo, é obrigatório de ser utilizado.

Como já vimos anteriormente a única coisa que o subversion entende são arquivos e diretórios, logo pouco importa o nome que damos a eles, ok ?

O “Povo”, que utiliza o subversion, defende duas correntes. Uma diz que você deve criar um repositório (Diretório) para cada projeto. Assim:

RepositorioAplicacao1

RepositorioAplicacao2

E outra que você deve ter um único repositório (diretório), guardando vários projetos. Assim:

 

Repositorio

    +——- Aplicacao1

     ‘——– Aplicacao2

E ai, qual usar ? Bem, pra mim, tanto faz. O Subversion só entende diretórios mesmo. Claro, isso no entendimento básico. Como não sou nenhum expert, me parece que tem sim diferença quando você começa a usar permissionamento de quem pode mexer em que.

Outra é que, independente de como você escolheu acima, deve, ao criar o seu repositório ,estruturá-lo através de 3 diretórios, assim:

RepositorioAplicacao

     +——— trunk

     +——— branchs

      ‘———- tags

Pra que isso ? E eu sei lá! Brincadeira! Explico.

Bem, isso é muito utilizado quando você tem uma aplicação de médio/grande porte onde você tem vários desenvolvedores ou mesmo naquelas que você tem previsão de muitos versões. A idéia aqui é dividir para facilitar.

No diretório trunk deve-se colocar o projeto inicial. Seria o que o pessoal chama de linha de desenvolvimento padrão. Você começa por ai e desenvolve tudo ai dentro.

Se por um acaso você (ou outro desenvolvedor) decide, de repente, adicionar uma funcionalidade revolucionária que não estava prevista no projeto como por exemplo, a implementação de uma comunicação audio/visual em tempo real para habitantes de outros planetas, a idéia é que você faça isso em uma branch! Ou seja, você copia o estado atual da sua aplicação, ou seja, copia os arquivos todos, que estão no diretório trunk para um subdiretório dentro de branch, por exemplo, vers_comunicador_marte. Por que isso ? Porque imagine que você decida fazer isso na linha principal de desenvolvimento, ou seja, no diretório trunk. O que pode acontcer ? Pode acontecer de, por isto tudo ser um teste, quebrar a aplicação. Se você separa em um outro diretório, neste caso, um subdiretório dentro de Branch, você pode testar a vontade, sem pertubar os outros, concorda ?! Então é isso! 😀

Quer ver outra explicação porquê você deve fazer uma cópia dentro do branch ? Imagine que você esteja desenvolvendo a sua aplicação, digamos versão 1.0, e ai decide que vai começar a versão 2.0, que terá umas funcionalidades malucas, mas não quer deixar de dar suporte na versão 1.0, que é a que todo mundo usa. O que você faz ? Você continua com o desenvolvimento normal, da versão 1.0, dentro do trunk, e cópia tudo para um subdiretório, por exemplo, versao2, dentro do branch, e começa a trabalhar nesta nova versão lá. Sacou ?

Beleza! E o diretório tags ?! Bem, este diretório é utilizado para criar um snapshot, um instantâneo da sua aplicação. Como assim ? Quando o pessoal vai desenvolvendo uma aplicação e vem corrigindo bugs, adicionando funcionalidades extras, etc, geralmente o que fazem é dar nomes ou números a estas versões , correto ?  Por exemplo: aplicacao_ver_1.0, aplicacao_ver_1.1, etc.

A questão é, como será que você faria para distribuir esta aplicação ? Bem, você faria uma cópia da sua aplicação naquele exato momento que você definiu como uma nova versão, empacotaria e pronto! Estaria feito a versão 1.XX.YY, ok ? E se daqui a duas semanas, resolvesse que deveria lancar uma outra versão que corrigisse uns bugs, faria a mesma coisa, correto ? Bem, a idéia aqui é a mesma. Só que você vai deixar o subversion controlar isso pra você.

O que o pessoal faz, e você vai fazer, se quiser claro, é, quando decidir que uma aplicação deve ter uma nova versão lançada, você vai e copia tudo, todos os seus arquivos, diretórios, etc, para um subdiretório dentro de Tags, como por exemplo, versao1.1. E se daqui a duas semanas decide que vai lançar outra versão, cópia tudo de novo para um outro diretório, dentro de Tags, chamado versao1.2, ok ?

A questão é que, quando você acessar o diretório trunk, você terá o desenvovimento principal da sua aplicação, ou seja, o que você vem mexendo no dia a dia.

Quando você acessar um subdiretório dentro de branch, você estará acessando uma versão que você ainda está desenvolvendo e testando. É uma outra linha de desenvolvimento.

E dentro de tags, você terá instantâneos da sua aplicação em momentos que você definiu, sacou ?

E ai você pode perguntar. Beleza, tudo bem, fica tudo muito organizado, mas já imaginou a quantidade de arquivos que eu vou ter na minha máquina ? Um bocado, repetido em tudo que é canto !  Ai que está. O Subversion controla tudo isso de maneira magistral, só copiando o que deve ser copiado e fazendo links simbólicos internos ,etc, etc, etc. Ou seja, você terá o mínimo de arquivos duplicados.

Resumo da história. Tudo isso é apenas convensão para sua organização. Se você não quiser. Não precisa criar diretório trunk ou  branch ou  tag ou qualquer outro. Como falei antes, o Subversion entende apenas diretórios e arquivos, ou seja, para ele, trunk, branchs, tags são apenas diretórios, você ou quem utiliza que convenciona como vai utilizá-los. Isso é tão verdade, que se você quiser, nem precisa criá-los ou pode até criá-los com outros nomes, por exemplo: Em vez de trunk, colocar LinhaPrincipal, em vez de Branchs, LInhasDeTestes e em vez de Tags, VersoesLancadas.

E isso se aplica a desenvolvimento de sites ? Bem, ai é com vocês! Se achar que se aplica, utilize para organizar melhor as coisas, se não, esqueça e pronto. Só Lembre-se: TUDO É DIRETÒRIO e OPERAÇÕES DE BACKUP.

E depois de tudo isso, o que eu devo fazer, pelo amor de Deus ?

Bem, se você quiser utilizar o que falei acima, ou seja, utilizar estas convenções, crie os diretórios trunk, branchs, tags, coloque toda a sua aplicação (arquivos fontes, diretórios, etc) dentro do trunk, e importe tudo para o repositório. Este ato de importar, está indicando para o subversion que ele deve copiar tudo que está na sua pasta para o seu repositório e deve começar a controlar as coisas.

Continuando o Exemplo Prático:

Continuando o exemplo anterior

$cd /home/diego/temp
$mkdir MinhaAplicacao
$mkdir MinhaAplicacao/trunk
$mkdir MinhaAplicacao/branchs
$mkdir MinhaAplicacao/tags
$cd MinhaAplicacao

Observação: Caso você já tenha algo desenvolvido do seu projeto, conforme a convenção explicada acima, coloque tudo dentro do diretório trunk.

$svn import   .   file:///home/diego/repositorio/sitePessoal/trunk/ 

Observação2: Estou utilizando, nos exemplos, um repositório local, que fica na mesma máquina. Como dito anteriormente, o mesmo pode estar em um servidor remoto, e ai o acesso pode se dar pelo protocolo http. Neste caso você utilizaria, no lugar de file://, http://<servidor>/<Repositorio>

Atente para o fato de que, mesmo estando na mesma máquina, o acesso ao repositório, feito pelo svn, é através de uma URL, neste caso file://.

 

E esse tar de Uorqui Copí ?!
(SVN CHECKOUT)

Como explicado anteriormente, o subversion só controla dois diretórios: O repositório e a Cópia de Trabalho. É necessário, caso você ainda não possua, criar uma cópia de trabalho. Isso nada mais é do que pegar o que tem no seu repositório, ou seja, seu backup, e colocar em uma pasta qualquer. A partir deste momento, você terá uma cópia de trabalho do seu projeto, onde deverá efetuar todas as alterações.

Atenção! Atenção! LEIA RAPÁ ! 

Quando você faz o IMPORT do seu projeto para o repositório, como explicado no item anterior, o diretório não fica automaticamente controlado pelo Subversion! Por isso ele pode ser descartado, apagado, jogado fora, esquecido, deletado. Entendeu ?

Logo, para começar a trabalhar no seu projeto, depois de importá-lo para o repositório, é obrigatório que você faça um checkout, ou seja, copie tuuuuudo de volta, do repositório para algum diretório (work copy).

 

Este processo de checkout é sempre utilizado quando se vai começar a trabalhar no projeto, caso você não possua uma cópia de trabalho (work copy), em sua máquina ou em uma máquina nova. Caso já possua, geralmente se faz um update apenas, que tratará de atualizar a sua versão da cópia de trabalho de acordo com a que está no repositório.

Também é utilizado, quando você quer pegar uma versão qualquer do seu projeto, que não a última, ou mesmo, uma versão que está em algum branch.

Continuando o exemplo prático

$mkdir /home/diego/projetos/CopiaTrabalhoSitePessoal
$cd /home/diego/projetos/CopiaTrabalhoSitePessoal
$svn checkout  file:///home/diego/repositorio/sitePessoal/trunk/

Caso você queira trabalhar em um branch específico, por exemplo, uma versão 2 que você está desenvolvendo, em vez da linha de desenvolvimento principal:

$svn checkout file:///home/diego/repositorio/sitePessoal/branchs/ver2

Não sei se vocês notaram, mas até agora, tudo se resumiu a copiar de um diretório para outro, só que ao invés de usar comandos do sistema operacional, estamos usando o subversion.

Alterô os Arquivo ?! Ouxe, Diz pro Seu Subversion cuidá dêles.
(SVN COMMIT)

Toda e qualquer alteração na sua cópia de trabalho não é automaticamente controlada pelo subversion! Não? Não! Uma vez que você tenha alterado um arquivo, você precisa dizer para o subversion que você alterou e que ele deve ser enviado para o repositório!

Opa! Perai! Mas se o repositório é um backup, ele vai apagar meu backup anterior! Naaada disso! Ai é onde está o pulo do gato. O Subversion, não apagar nunca seus arquivos, apenas ele vai criar uma nova versão do seu arquivo lá! Ou seja, vai existir a cópia anterior e a nova cópia! 😀 Isso é o que se chama de revisão. Toda vez que você altera algo e manda para o repositório, você está criando uma nova revisão.

Continuando o exemplo prático
$cd /home/diego/projetos/CopiaTrabalhoSitePessoal
$svn commit file:///home/diego/repositorio/sitePessoal/trunk/ 

 

Criô ? Apagô ? Tá bulindo nas coisa né ? Vô dizê pro Seu Subversion! 
(SVN ADD, DELETE, MKDIR, etc)

Assim como as alterações nos arquivos, quando você cria um novo diretório dentro do seu projeto, apaga, mude de lugar, ou seja, mexe na estrutura do seu projeto, você precisa informar isso para o Subversion.

Tudo isso é feito através dos comandos ADD, DELETE, MKDIR, etc. Veja abaixo, no Exemplo Prático da Vida Real, como trabalhar com estes comandos.

 

E se eu já tô cum minha Uorqui Copi, como qui eu dexo ela atualizadinha ?
(SVN UPDATE)

 

Isso é feito através do comando UPDATE, que tem a finalidade de atualizar a sua cópia de trabalho.  

E como é que se mexe nestes tar de BRUNCH, TAG ?

Quer saber mesmo ? Então veja o Exemplo Prático da Vida Real abaixo. É facim facim. 

Exemplo Prático da Vida Real

1. Criando o Repositório em uma pasta qualquer

 

 

/tmp# mkdir repositorios 
/tmp# cd repositorios/ 
/tmp/repositorios# svnadmin create HelloWord 
/tmp/repositorios# ls -lh 

    total 4,0K 
    drwxr-xr-x 7 root root 4,0K 2007-05-29 09:31 HelloWord 

/tmp/repositorios# ls -lh HelloWord/ 

    total 28K 
    drwxr-xr-x 2 root root 4,0K 2007-05-29 09:31 conf 
    drwxr-xr-x 2 root root 4,0K 2007-05-29 09:31 dav 
    drwxr-sr-x 5 root root 4,0K 2007-05-29 09:31 db 
    -r–r–r– 1 root root    2 2007-05-29 09:31 format 
    drwxr-xr-x 2 root root 4,0K 2007-05-29 09:31 hooks 
    drwxr-xr-x 2 root root 4,0K 2007-05-29 09:31 locks 
    -rw-r–r– 1 root root  229 2007-05-29 09:31 README.txt

2. Criando o diretório e estrutura da nossa futura aplicação.

/tmp/repositorios# cd .. 
/tmp# mkdir HelloWord 
/tmp# cd HelloWord 
/tmp/HelloWord# mkdir trunk 
/tmp/HelloWord# mkdir branchs 
/tmp/HelloWord# mkdir tags 
/tmp/HelloWord# ls -lh 

    total 12K 
    drwxr-xr-x 2 root root 4,0K 2007-05-29 09:38 branchs 
    drwxr-xr-x 2 root root 4,0K 2007-05-29 09:38 tags 
    drwxr-xr-x 2 root root 4,0K 2007-05-29 09:38 trunk 

/tmp/HelloWord# cd trunk 
/tmp/HelloWord/trunk# echo “<?php echo ‘pagina inicial’; ?>”  > index.php 
/tmp/HelloWord/trunk# cat index.php 

    <?php echo ‘pagina inicial’; ?> 

/tmp/HelloWord/trunk# ls -lh 

    total 4,0K 
    -rw-r–r– 1 root root 32 2007-05-29 09:41 index.php

3. Importando (enviando) a aplicação para o repositório.

/tmp/HelloWord/trunk# cd ..
/tmp/HelloWord# svn import . file:///tmp/repositorios/HelloWord/  \
                        -m “Importacao Inicial”

    Adicionando    branchs
    Adicionando    trunk
    Adicionando    trunk/index.php
    Adicionando    tags

    Commit da revisão 1.
/tmp/HelloWord# ls -lh /tmp/repositorios/HelloWord/ 

    total 28K 
    drwxr-xr-x 2 root root 4,0K 2007-05-29 10:09 conf 
    drwxr-xr-x 2 root root 4,0K 2007-05-29 10:09 dav 
    drwxr-sr-x 5 root root 4,0K 2007-05-29 10:09 db 
    -r–r–r– 1 root root    2 2007-05-29 10:09 format 
    drwxr-xr-x 2 root root 4,0K 2007-05-29 10:09 hooks 
    drwxr-xr-x 2 root root 4,0K 2007-05-29 10:09 locks 
    -rw-r–r– 1 root root  229 2007-05-29 10:09 README.txt

 

    Observe que a estrutura de diretórios do repositório, apesar da importação(cópia), não mudou em nada, pois o subversion trata de controlar tudo isso internamente. Era de se esperar que aparecessem as pasta s trunk, branchs, tags dentro de /tmp/repositorios/HelloWord,  já que a importação nada mais é do que uma cópia não é mesmo ? ;D

    Observe também que todas as operações com o subversion, de importação, de update, de checkout, etc, devem ser realizadas na raiz do projeto, neste caso o diretório /tmp/HelloWord.


4. Apagando o conteúdo do diretório, que já não é mais necessário, e que não é controlado pelo subversion, e fazendo o primeiro checkout.

/tmp/HelloWord# rm * -r 
/tmp/HelloWord# svn  checkout  file:///tmp/repositorios/HelloWord/trunk   . 

    A    index.php 
    Gerado cópia de trabalho para revisão 1. 

/tmp/HelloWord# ls -lh 

    total 4,0K 
    -rw-r–r– 1 root root 32 2007-05-29 10:19 index.php

 

    Observe que, como pedimos para fazer o checkout do trunk, veio apenas o arquivo index.php. Lembre-se, não ficaremos fazendo checkout de toda a estrutura que importamos, mas apenas do que nos interessa, ou seja, o que estiver dentro do trunk, ou de branchs ou mesmo de tags.

5. Alterando o conteúdo do arquivo e dando commit para forçar a atualização do Repositório.

/tmp/HelloWord# echo “<?php echo ‘linha2′; ?>” >> index.php
/tmp/HelloWord# cat index.php
   
    <?php echo ‘pagina inicial’; ?>
    <?php echo ‘linha2′; ?>

/tmp/HelloWord# svn status
   
    M      index.php

/tmp/HelloWord# svn commit -m “index.php modificado”

    Enviando       index.php
    Transmitindo dados do arquivo .
    Commit da revisão 2.

    Observe que, após a edição do arquivo, ao se executar o comando svn status, o mesmo retorna indicando que o index.php foi Modificado.

    Quanto se executa o commit o arquivo Modificado é enviado para o repositório e o prrojeto fica na revisão 2.

 

6. Alterando a estrutura (diretórios e arquivos) do projeto.

/tmp/HelloWord# mkdir cpanel
/tmp/HelloWord# cd cpanel
/tmp/HelloWord/cpanel# echo “<?php echo ‘PainelDeControle’; ?>”  >   \
                                 cpanel.php

/tmp/HelloWord/cpanel# cd ..
/tmp/HelloWord# svn status
   
    ?      cpanel

    Observe que o subversion mostra uma interrogação ao lado do diretório que acabamos de criar. Isso indica que este diretório ainda não é controlado pelo subversion, ou seja, ainda não está no repositório. Precisamos adicioná-lo ao repositório.

 

/tmp/HelloWord# svn add cpanel/ 
    A         cpanel
    A         cpanel/cpanel.php

    Observe que ele automaticamente adiciona tudo que está dentro do diretório cpanel. Vale lembrar que, apesar do comando ter sido bem sucedido, o mesmo ainda não foi definitivamente concretizado. Para isso, precisamos chamar novamente o commit.

/tmp/HelloWord# svn commit -m “+ Diretorio cpanel”
    Adicionando    cpanel
    Adicionando    cpanel/cpanel.php
    Transmitindo dados do arquivo .
    Commit da revisão 3.

    Veja que automaticamente todo o conteúdo do diretório foi enviado ao repositório e agora o nosso projeto se encontra na revisão 3.

    vamos adicionar mais um arquivo no nosso cpanel e ver o que acontece.

/tmp/HelloWord# echo “<?php echo ‘moduloUsuario’; ?>” >  \
                        cpanel/user.php

/tmp/HelloWord# svn status

    ?      cpanel/user.php

    Como esperado, o status retorna informando que o arquivo user.php ainda não está sobre controle do subversion. Logo vamos adicioná-lo.

/tmp/HelloWord# svn add cpanel/user.php

    A         cpanel/user.php

/tmp/HelloWord# svn commit -m “+ modulo usuario”

    Adicionando    cpanel/user.php
    Transmitindo dados do arquivo .
    Commit da revisão 4.

    Agora nosso projeto se encontra na revisão 4. Acho que você já deve ter notado que a cada commit o número da revisão é incrementado.  Deve ter notado também que a cada arquivo criado, deve-se adicioná-lo ao repositório correto ? Correto! E deve estar pensando natrabalheira que é, se eu adcionar um monte de arquivos ou se eu tiver que ficar dando add e commit a cada arquivo criado. Pois é ! Mas hoje já existem aplicativos, como o rapidSVN, o TortoiseSVN(para windows), scripts que se integram ao nautilus, etc, que fazem tudo isso na interface gráfica. Ou seja, o que estamso fazendo aqui, manualmente é para que você entenda o conceito, já que o modo de usar os softwares pode variar de um para outro.

    Vamos imaginar agora que por um descuido você removeu o arquivo user.php, do diretório cpanel, quando era para ter removido outro.

/tmp/HelloWord# rm cpanel/user.php 
/tmp/HelloWord# svn status

    !      cpanel/user.php

    Observe que o subversion retorna com o nome do arquivo removido com uam exclamação, como quem diz : Meu Deus, cadê o arquivo que eu estava controlando ?! Como isso foi um engano, e como você anteriormente já tinha colocado este arquivo no repositório, você pode atualizar a sua cópia de trabalho com o comando updatde.

/tmp/HelloWord# svn update

    Restaurado ‘cpanel/user.php’
    Na revisão 4.

    O arquivo foi restaurado. Começaram a perceber o poder deste negócio de controle de versão ?

    Com isso fica o que falamos acima. Quando quiser realmente adicionar um diretório, remover um arquivo, criar um novo arquivo, você deve fazer isso com os comandos do subversion. Na verdade, adicionar arquivo e diretórios nem é tão crítico, já que podemos utilizar o comando add posteriormente a criação dos mesmos, mas a remoção de arquivos e diretórios ou mesmo a movimentação deles para outros lugares, isto sim, deve ser feito com o subversion. Logo a remoção do arquivo, se você quiser realmente removê-lo, deve ser feita da seguinte maneira :

 

/tmp/HelloWord# svn delete cpanel/user.php

    D         cpanel/user.php

/tmp/HelloWord# ls cpanel -lh

    total 4,0K
    -rw-r–r– 1 root root 34 2007-05-29 12:23 cpanel.php


/tmp/HelloWord# svn commit -m “- user.php”

    Apagando       cpanel/user.php
    Commit da revisão 5.

    E se, mesmo depois de ter apagado propositadamente, você descobre que aquele arquivo continha um trecho que você poderia necessitar ? Ou mesmo, que aquele arquivo era essencial e você não deveria ter apagado ? Será que tem como recuperar o arquivo ? Tem sim, claro. Basta você dizer para o subversion que quer que ele atualize a sua cópia de trabalho para a revisão anterior, no caso a 4.

/tmp/HelloWord# svn update -r4

    A    cpanel/user.php
    Atualizado para revisão 4.

/tmp/HelloWord# ls cpanel -lh

    total 8,0K
    -rw-r–r– 1 root root 34 2007-05-29 12:23 cpanel.php
    -rw-r–r– 1 root root 31 2007-05-29 12:59 user.php

    Observe que agora estamos trabalhando da revisão 4. A revisão 5 ainda existe, só que ela não possui o arquivo user.php. O interessante é notar que, a qualquer momento, podemos trabalhar nas revisões que quisermos, nos movimentando entre os nossos “backups”. Só que isso gerou um impasse, concordam ? Eu tenho um arquivo , que acabei apagando de propósito, mas que não era para ter apagado, na revisão 4mas não tenho ele na revisão 5.  Se eu continuar a trabalhar na revisão 4, eu perco todas as outras alterações (se houverem), que eu tenha feito até o commit para a revisão 5. Se eu vou para a revisão 5, eu tenho todas as alterações, mas não tenho o arquivo user.php. E agora ? Quem poderá nos ajudar ? 😀

    A questão é que o subversion dá nó em pingo d’água. E o que estamos escrevendo aqui é apenas uma pontinha de todo o seu poder. Como tudo para o subversion é diretório e arquivo, pensemos assim. Se eu não utiliza-se controle de versão e fizesse as coisas na mão, provavelmente eu teria  dois diretórios assim :

    HelloWordRevisao4

    HelloWordRevisao5

    Logo, ficaria muito fácil eu recuperar o arquivo, fazendo uma simples cópia entre diretórios, concorda ? Então o mesmo se aplica ao subversion, ele tem um comando chamado copy, onde você pode especificar a origem, o destino e a revisão. Então observe:

Voltemos para a revisão 5.

/tmp/HelloWord# svn update

    D    cpanel/user.php
    Atualizado para revisão 5.

/tmp/HelloWord# ls cpanel/ -lh

    total 4,0K
    -rw-r–r– 1 root root 34 2007-05-29 12:23 cpanel.php

    Agora vamos copiar o arquivo user.php, que está na revisão 4, para a nossa cópia de trabalho atual.

 

 

/tmp/HelloWord# svn copy -r4   \ 
             file:///tmp/repositorios/HelloWord/trunk/cpanel/user.php   \ 
             cpanel/

    A         cpanel/user.php

/tmp/HelloWord# ls cpanel/ -lh

    total 8,0K
    -rw-r–r– 1 root root 34 2007-05-29 12:23 cpanel.php
    -rw-r–r– 1 root root 31 2007-05-29 13:13 user.php

/tmp/HelloWord# svn status

    A  +   cpanel/user.php

    Como podemos notar, o arquivo foi copiado do repositório para a pasta, e aparece com um A, indicando que foi adicionado a sua cópia de trabalho. Finalmente, vamos dar um commit para gravar tudo no repositório.

/tmp/HelloWord# svn commit -m “user.php recuperado”

    Adicionando    cpanel/user.php
    Commit da revisão 6.

    Imagine que chegamos ao final do dia e decidimos que esta versão final (revisão 6)  deveria sser chamada de HelloWord Versao 1.0. Podemos decorar que a revisão 6, é a versão 1.0, ou podemos dar este nome específico para esta revisão. de modo que quando fizermos referência a versao 1.0 o subversion nos traga automaticamente a revisão 6. Este processo consiste em “TAGGEAR” o projeto. Este é o motivo, já explicado acima, de termos criado o diretório tags.

 

    Este processo nada mais é do que uma cópia entre diretórios, utilizando o subversion.

    Antes de mais nada, vamos listar quais são as tags (versões já lançadas, digamos assim), que nós temos. Ou seja, vamos dar um ls (comando dir, para o DOS), no repositório.

/tmp/HelloWord# svn list file:///tmp/repositorios/HelloWord/tags/

    Observe que nada foi retornado, como esperado.

    Para testar um pouco mais do comando list, vamos listar o trunk.

/tmp/HelloWord# svn list file:///tmp/repositorios/HelloWord/trunk/

    cpanel/
    index.php

    Ele retornou com os nossos arquivos. Claro, porque estamos trabalhando sempre no trunk, lembram ? Ou seja, o comando list seria como um ls, láááá no repositório.

    Mas vamos lançar nossa versão 1.0 do nosso incrível projeto Hello Word.

tmp/HelloWord# svn copy file:///tmp/repositorios/HelloWord/trunk/  \
                       file:///tmp/repositorios/HelloWord/tags/versao1.0   \
                       -m “Lancando a versao 1.0″

    Commit da revisão 7.

    Antes de mais nada, o comando acima deve ser digitado em uma única linha. Pronto, nossa versão foi lançada. O que fizemos foi apenas copiar o que tinha no nosso Trunk para o diretório versao1.0 dentro de tags. Isso láááá no nosso repositório ok ? Ah, uma coisa. Isso não vai duplicar os milhares de arquivos que temos em nosso projeto, ele vai apenas criar links simbólicos, ok ? 😀

    Vamos listar agora, quais as tags (versôes) que nós temos.

/tmp/HelloWord# svn list file:///tmp/repositorios/HelloWord/tags/

    versao1.0/

    Pronto! Final do Dia. tudo correu bem. Lançamos uma versão e vamos para casa.

    Agora imagine que você chegou em casa, e lembrou que esqueceu de coloca uma pequena coisa no index.php, e gostaria de trabalhar no seu projeto. Claro, que estamos trabalhando com um repositório local, mas como dito anteriormente, o mesmo pode estar em um servidor em qualquer lugar do mundo, ou mesmo, pode estar no seu pendrive. Vamos fazer de conta, que o repositório está acessível para a gente da mesma forma que estava na outra máquina, lá no trabalho ok ?

    E agora, como eu faço para trabalhar no meu projeto ? Basta você voltar a fita e ir lááááá para o passo número 4, onde falamos em checkout. É isso mesmo. Como não temos uma Cópia de Trabalho, ainda, precisamos fazer um checkout, ou seja, copiar a revisão lá do repositório para um diretório qualquer.  Então você pode fazer, imaginando que vamos trabalhar no diretório /home/diego/temp :

/home/diego/temp# mkdir HelloWord
/home/diego/temp# cd HelloWord/
/home/diego/temp/HelloWord# svn checkout  \  
                                         file:///tmp/repositorios/HelloWord/trunk .

    A    cpanel
    A    cpanel/user.php
    A    cpanel/cpanel.php
    A    index.php

    Gerado cópia de trabalho para revisão 7.

    Pronto, agora é só meter a mão na massa e continur com os commits, updates, etc etc etc.

    Ah, como estamos trabalhando sozinhos, os updates não se tornam tão importantes. Mas se estivermos trabalhando em dupla de dois, por exemplo, vale a pena sempre dar update para garantir que sua cópia de trabalho esteja sempre atualizada, caso seu amigo tenha feito alguma modificação.

 

    Espero que este pequeno grande artigo sirva para abrir os horizontes dos iniciantes no mundo do controle de versão.

Fonte: http://www.ultimolog.com/2007/05/29/controle-de-versao-com-subversion-svn-rapido-e-pratico/

Instalação do Subversion no Ubuntu (sem frescuras!)

Standard

Estava me organizando para uma séria de projetos, nada mais justo que falar para você mesmo que você precisa ser justo com a administração de seu tempo. Estou em um domingo, descansando e disposto a dar mastigadinho (outra vez) o esquema para você:

 

Arena – ou campo de batalha

  1. Instalar o Ubuntu Server sem selecionar as opções de LAMP ou DNS Server (se desejar instalar o lamp agora siga o how to no link -> http://littleoak.wordpress.com/2008/07/04/ubuntu-804-apache2-php5-mysql5-phpmyadmin-lamp2-no-ubuntu-804/
  2. No meu caso, que tem um HD de 10GB, dividi as partições de maneira default (assistido e usar disco inteiro). Instalar o Apache e o SVN:
    • sudo apt-get install apache2 subversion libapache2-svn
  3. Criar o diretório onde ficarão os repositórios do SVN:
    • sudo mkdir /srv/svn
  4. Criar o repositório. Aqui seria um bom momento para restaurar o backup, quando for o caso:
    • sudo svnadmin create /srv/svn/{repositorio}
  5. Dar acesso ao Apache para esses diretórios:
    • sudo chown -R www-data:www-data /srv/svn
  6. Configurar o módulo webdav do subversion
    1. sudo vi /etc/apache2/mods-enabled/dav_svn.conf
    2. Descomentar a tag <Location /svn>. No início e no fim do arquivo.
    3. Descomentar a opção DAV svn
    4. Descomentar a opção SVNParentPath /var/lib/svn e mudar o caminho para a localização do repositório: /srv/svn. Foi escolhido essa ao invés da SVNPath para termos mais de um repositório nesta mesma pasta.
    5. Descomentar a opção AuthzSVNAccessFile /etc/apache2/dav_svn.authz. Para habilitar o controle de acesso aos projetos usando o arquivo informado. Mais informação sobre como criar o arquivo podem ser vistas no livro vermelho do Subversion, na seção Per-Directory Access Control. Infelizmente a versão em português ainda não foi traduzida.
    6. Descomentar, para habilitar a autenticação, as três linhas:
      1. AuthType Basic
      2. AuthName “Subversion Repository”
      3. AuthUserFile /etc/apache2/dav_svn.passwd
      4. Adicione a linha: Require valid-user
      5. Descomente a última informação de </Location>
      6. Salve o arquivo. Para isso, aperte a tecla ESC digite “:wq” sem as aspas e pressione enter
  7. Crie um usuário para acessr o SVN:
    • sudo htpasswd -cm /etc/apache2/dav_svn.passwd <username>
    • O parâmetro -c só é necessário para o primeiro usuário, pois é usado para criar o arquivo. Para os seguintes apenas o -m resolve, que é usado para criptografar a senha com o MD5.
  8. Reiniciar o apache
    • sudo /etc/init.d/apache2 restart

Interfaces de Rede Loucas no Ubuntu e Debian levantando muitas placas de redes

Standard

Interfaces de Rede Loucas no Ubuntu e Debian levantando muitas placas de redes

A ordem das placas é determinada pela ordem em que é carregado os modulos em /etc/modules, pelo definido nos aliases e pela ordem fisica das placas nos slots.
adicionando aliases:

# touch /etc/modprobe.d/net
# mcedit /etc/modprobe.d/net
digite :
alias eth0 <modulo_da_placa1>
alias eth1 <modulo_da_placa2>

 

Use lsmod para listar os módulos carregados.

Configurar interfaces de rede na mão no ubuntu e debian

Standard

Configurando a rede na linha de comando no ubuntu e no debian

Postado em Linux (OS) Network(localhost) Por Julio em 5/02/08

Esse tutorial eu vou explicar como você pode configurar a rede no ubuntu todos os sabores (K) (X) (E), e debian todos os sabores. Irei mostrar os principais arquivos de configuração e os principais comandos de rede.

Lembrando que no debian você deve substituir o comando sudo pelo su -c ‘comando dentro das aspas’ .

O linux a sua rede funciona no modo texto, diferente do Windows que é modo gráfico , e sua configuração fica dentro de arquivos texto, no qual você pode manipular esses arquivos de acordo com a sua finalidade, é importante para qualquer usuário de linux saber como se pode configurar uma rede em modo texto, pois pode existir situações que só vai existir o modo texto.

Primeiro vamos saber os principais Arquivos da rede.

Todos os principais arquivos de configuração do Linux fica dentro do diretório /etc .

O arquivo resolv.conf , esse arquivo fica o endereço de IP do seu servidor de DNS .É bom se ter um bom servidor de DNS pois quando você usa um servidor ruim sua rede pode ficar Lenta , você pode encontrar no site do abusar alguns endereços de servidores http://www.abusar.org/dns.html . No meu caso estou usando um servidor de DNS local na minha rede.

/etc/resolv.conf seu conteúdo nameserver 192.168.254.40

O arquivo hosts , fica a informação do nome da sua máquina e você pode colocar um nome de uma máquina dentro da sua rede que você pode criar um apelido para ela , e acessar ela no seu navegado.

/etc/hosts

Conteúdo

127.0.0.1 localhost
127.0.1.1 xjulio.com julio-not
192.168.254.40 xjulio.com www.xjulio.com

# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

O arquivo interfaces fica dentro do diretório /etc/network, esse arquivo armazena a configuração das suas interfaces de rede, nele você manipula a forma que sua rede se comporta , você pode escolher em deixar sua interface como dhcp ou como ip stático , e também pode criar ip alias . “IP alias é uma apelido que você pode dar a sua interface de rede na qual você pode atribuir outros endereços de rede, você pode criar quantos ip alias desejar”.

/etc/network/interfaces

O conteúdo do meu arquivo.

auto lo
iface lo inet loopback
address 127.0.0.1
netmask 255.0.0.0

iface eth0 inet static
address 192.168.254.55
net 192.168.254.0
netmask 255.255.255.0
gateway 192.168.254.254

Os principais comandos de rede são:

ifconfig , ifup, ifdown, route, iwconfig , dhclient.

Usando o dhclient para pegar ip por dhcp.

sudo dhclient eth0

Atribuindo um endereço de ip a uma interface de rede usando ifconfig .

sudo ifconfig eth0 192.168.254.50 netmask 255.255.255.0

Atribuindo um ip alias a uma interface de rede usando ifconfig, no lugar do 1 você pode colocar qualquer nome ou numero.

sudo ifconfig eth0:1 192.168.0.30 netmask 255.255.255.0

Listando as interfaces existentes usando ifconfig .

sudo ifconfig

Derrubando uma interface usando ifconfig.

sudo ifconfig eth0 down .

levantando uma interface usando ifconfig.

sudo ifconfig eth0 up .

Agora usando o ifup e ifdown.

Derrubar todas as interfaces e seus endereços de ip.

sudo ifdown -a

Levantando todas as redes de acordo com os dados do arquivo /etc/network/interfaces

sudo ifup -a .

Agora usando o comando route. O comando route define a rota ou a interface padrão da sua placa de rede.

Para saber as rotas existentes na sua maquina use esse comando.

netstat -r

Atribuindo o gateway padrão da sua rede usando o comando route .

sudo route add default gw 192.168.254.254

Atribuindo uma interface como padrão.

sudo route add default ppp0

Agora vamos configurar a nossa rede usando o arquivo /etc/network/interfaces

Configurando a rede como DHCP padrão na interface eth0 .

sudo nano /etc/network/interfaces

coloque

auto eth0
iface eth0 inet dhcp

Configurando a interface eth0 com ip estático.

sudo nano /etc/network/interfaces

#coloque de acordo com sua rede.
auto eth0
iface eth0 inet static
address 192.168.254.55
net 192.168.254.0
netmask 255.255.255.0
gateway 192.168.254.254

Configurando sua rede como ip alias estático .

sudo nano /etc/network/interfaces

#coloque de acordo com sua rede.
auto eth0:1
iface eth0:1 inet static
address 192.168.0.55
net 192.168.0.0
netmask 255.255.255.0
gateway 192.168.254.254

Depois de configurar o arquivo derrube as interfaces.

sudo ifdown -a

Depois levante .

sudo ifup -a

Para reniciar a sua configuração de rede existe esse comando.

sudo /etc/init.d/networking restart

 

Fonte: http://www.xjulio.info/blog/configurando-a-rede-na-linha-de-comando-no-ubuntu-e-no-debian

Como configurar o login automático do Velox (ubuntu/debian/kurumin)

Standard

A função deste tutorial é ajudar os novos usuários Linux, em especial os de Kurumin Linux, a configurar uma conexão ADSL, como o Velox que é muito problemático, pois o próprio serviço não oferece suporte para os Sistemas GNU/Linux. Como na maioria dos casos acontece. Então, vamos iniciar a instalação.

Este tutorial está dividido em duas etapas. A configuração do ADSL e o Login automático.

A configuração do ADSL

Em primeiro lugar, verifique se o modem está ligado corretamente. Verifique os cabos e veja se está tudo em ordem.

Se tudo estiver em ordem, execute o script: Menu K > Internet > Conectar na Internet ou Configurar a Rede > Conectar via ADSL/PPPOE (ADSL com autenticação).

Ou se quiser execute o comando no terminal:

# sudo pppoeconf

Aparecerá a seguinte tela:

adsl_html_m52c3efde

No meu caso, possuo apenas uma placa de Rede (eth0). Clique no Sim para continuar.

Logo em seguida o script irá procurar pelo seu modem. Ele irá verificar se o seu modem está ligado a interface que você escolheu, isto é, se você possuir mais de uma placa de rede e tentará conectar-se a ele. Pois, se você possuir apenas uma placa de rede, automaticamente o pppoeconf irá usá-la para estabelecer a conexão.

adsl_html_7f05077f

Caso o script tenha detectado o seu modem. Ele exibirá a seguinte tela. Não gosto de falar janela pois me lembra um sistema que não quero mais ver aqui. 😛 . Bem, continuando:

adsl_html_4344c86c

Apenas clique em Sim para prosseguir. Na próxima opção aparecerá outra tela:

adsl_html_m55b86a7a

Mais uma vez, clique em Sim para continuar.

Agora vem a parte mais importante. Está é parte do script responsável pela autenticação do ADSL. Digite nesta tela o DDD+ o n° do telefone onde o Velox está instalado. Veja que eu digitei apenas um exemplo.

adsl_html_3d219299

Logo em seguida você terá que digitar a senha que é também o DDD + n° do seu telefone.

adsl_html_64077683

Na próxima tela o script pedirá confirmação para adicionar o endereço IP do DNS do Velox automaticamente no arquivo /etc/resolv.conf . Preferencialmente, clique no Sim.

adsl_html_m13b8a695

Na tela seguinte o script perguntará se você deseja ajustar o tamanho do MMS ou pacotes, se preferir chamar assim, 1452 bytes. Recomendo que você clique no Sim. Principalmente se você deseja compartilhar a conexão.

adsl_html_6c6331e5

Com isso, o script chega na sua parte final e ele pergunta se você deseja iniciar a conexão. Não vou nem dizer o que você deve fazer. Não é mesmo ?! 😉

adsl_html_597369cf

Agora você pode iniciar sua conexão.

adsl_html_mf118f01

adsl_html_2e562176

Agora que já a conexão ADSL já está configurada, vamos iniciar a autenticação com o provedor. E não se preocupe em fazer tudo isso novamente. Pois esta instalação desta conexão já está configurada para iniciar no boot. 🙂

Agora abra qualquer navegador para autenticar o seu usuário e senha do provedor de internet (uol, oi, terra, etc) para que você comece a navegar e para que possamos continuar com a segunda parte deste tutorial.

Nota do editor: O pppoeconf é o configurador padrão para conexões ADSL PPPoE no Debian, ele pode ser encontrado em diversas outras distribuições, como o Ubuntu, Knoppix, Kanotix, Mephis e praticamente todas as outras distribuições derivadas do Debian ou do Knoppix.

Se você estiver usando o Mandriva, Fedora, Conectiva, ou outra distribuição da família do Red Hat, use o comando “adsl-setup” para configurar a conexão e “adsl-start” para conectar.

Ativando o Login Automático

Nesta parte primeiramente faça o download deste pacote:

http://codigolivre.org.br/frs/download.php/3903/vivo24h_xdsl-2.2.3.tar.gz

ou

http://www.tinews.info/vivo24h_xdsl-2.2.3.tar.gz

Ele será o responsável pela configuração do Login automático do Velox.

Descompacte o pacote na sua pasta Home e logo em seguida acesse a pasta do mesmo.

Na pasta vivo24h_xdsl-2.2.3 você encontrará um o arquivo vivo24h_xdsl.conf

Edite o arquivo usando o Kedit ou outro editor de sua preferência. Não use o vi porque ele não consegue abrir o arquivo corretamente e pode danificá-lo.

Vou inserir aqui o conteúdo do arquivo.

// vivo24h_xdsl.conf
#Arquivo de Configuracao do Vivo24h_xDSL 2.2.x
#Siga as instruções para que nãoo ocorram erros na
#execução do programa

# Este é o endereço de autenticação. Não modifique-o.
#Local da autenticação
host=www.veloxzone.com.br

# Está é a interface padrão do ADSL.
#Nome da interface ppp. Ex.: interface=ppp0
interface=ppp0

# Aqui você tem que especificar qual é o tipo de Velox que você possui.
#Escolha o seu tipo de conexão Velox
# 0 para Residencial e 1 para Empresarial

modulo=0

# E nesta parte você tem que inserir o seu login, senha e o código do provedor.
# Vou inserir aqui a #lista dos códigos para você não errar. Pois qualquer erro
# aqui, o login automático não funcionará.

#LISTA DOS PROVEDORES E CÓDIGOS PARA O Velox
#PROVEDOR – CÓDIGO

#UOL – UOLRJ11
#AOL – AOL11
#brturbo – BRTURBO11
#GLOBO – GLOBORJ11
#HOTLINK – HOTLINK11
#INTERNETT – INTERNETT11
#MANDIC – MANDIC11
#MICROECIA.NET – MICROECIANET11
#OI INTERNET – OIRJ11
#RJHOST – RJHOST11
#IG BANDALARGA – SUPERIGRJ11
#TERRA – TERRARJ11

# Lembrando que na hora de indicar o provedor você tem que colocar o
# código do provedor e não o nome.

# No caso do Velox comercial você tem que inserir o código da Região. Eu não
# possuo estes códigos, mas você pode solicitá-los ligando para o suporte
# Velox. Ou tente conseguí-los com o #pessoal do Suporte Velox no Fórum do
# Guia do Hardware. 😉

#RESIDENCIAL
login=francies@uol.com.br
senha=xxxxxxxx
provedor=UOLRJ11

#EMPRESARIAL
comercial=AARJ

#Servidores utilizados para a verificação, necessária porta 80 liberada

host1=mx.uol.com.br
host2=mx.terra.com.br
host3=smtp.mail.yahoo.com

#Final de arquivo

Com o arquivo editado corretamente, salve-o e abra um terminal (Konsole ou Xterm). E acesse a pasta do pacote vivo24h_xdsl.

Digite dentro da pasta do pacote o comando make.

Aparecerá alguns warnings (avisos), mas nada que comprometa a instalação.

adsl_html_m29ae603

Agora como root, digite make install…

adsl_html_m68cb4b5

Com isso, o programa foi instalado para ser executado no boot. E se tudo foi configurado corretamente. A sua conexão irá funcionar normalmente. Com o Sistema fazendo as duas autenticações.

Reinicie o seu PC para que estas novas configurações sejam executadas.

Obs: Geralmente a autenticação demora torno de um minuto para ser concluída. Digo isso porque alguém pode querer navegar assim que o Sistema iniciar e antes que a autenticação seja concluída e depois pode ficar dizendo que o tutorial não funciona.

Para ter certeza de que você já está conectado, use a barra vertical do superkaramba para visualizar o IP da conexão.

Caso o IP esteja visível é porque você já está 100% conectado à Internet e pronto para usá-la.

Senão, verifique se o seu modem está ligado, digite ifconfig ppp0 no terminal. Se ele for retornado é porque o sua conexão ADSL está Ok.

Mas se mesmo assim o navegador te encaminhar ao site do VeloxZone é porque o seu login, ou senha ou o código do seu provedor estão incorretos.

Para reconfigurar o login automático abra um terminal, acesse a pasta do pacote vivo24h_xdsl e digite o comando como root: sudo make clean . Edite novamente edite o arquivo vivo24h_xdsl.conf . Execute novamente os comando make e sudo make install .

Passei uma semana testando tudo isso antes de ter certeza do que estou escrevendo aqui.

Espero que isso resolva o problema de muitas pessoas que dizem o Linux é ruim porque é “difícil” configurá-lo para acessar a internet via ADSL.

Espero ter ajudado. Boa Sorte para todos.

FONTE: http://www.guiadohardware.net/artigos/login-automatico-velox/