Archive for the ‘OpenSuse’ Category

E quando o replace do Mysql me Abandonar o Perl vai me Salvar ;)

Tuesday, January 31st, 2012

Para se salvar com uma alternativa ao comando replace (oriundo do mysql) use:

perl -pi -w -e ‘s/COISA_QUE_QUERO_SUBSTITUIR/COISA_QUE_QUERO_ADD/g;’ arquivo_que_quero_mudar

Pronto!

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

Monday, June 7th, 2010

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!

Lista de funções para desabilitar em um ambiente CPANEL de Hospedagem de Sites compartilhada

Monday, April 5th, 2010


Bem, se você quer mais segurança em um ambiente compartilhado você precisará de ajustar seu php.ini global (/usr/local/lib/php.ini) em seu servidor de hospedagem compartilhada afim de prevenir ataques usando recursos avançados do php.

Como faremos isto?

Procure pela linha disable_functions =

e depois do ‘=’ aplique as seguintes funções:

dl, system, exec, shell_exec, chown, chgrp, escapeshellcmd, putenv, popen, pclose, passthru, proc_open, proc_get_status, proc_nice, proc_close, proc_terminate, posix_ctermid, posix_get_last_error, posix_getcwd, posix_getegid, posix_geteuid, posix_getgid, posix_getgrgid, posix_getgrnam, posix_getgroups, posix_getlogin, posix_getpgid, posix_getpgrp, posix_getpid, posix_getppid, posix_getpwnam, posix_getpwuid, posix_getrlimit, posix_getsid, posix_getuid, posix_isatty, posix_kill, posix_mkfifo, posix_setegid, posix_seteuid, posix_setgid, posix_setpgid, posix_setsid, posix_setuid, posix_strerror, posix_times, posix_ttyname, posix_uname

Talvez você precisará do shell_exec para o caso do Fantástico Deluxe.
Avalie se vale a pena deixar esta função ativa e prossiga :D

Para tristeza do meu coração: Apache será vendida

Thursday, April 1st, 2010


Senhores, para minha total tristeza a Apache será vendida.
O que será dos amantes deste projeto?

vide:

http://blogs.apache.org/foundation/date/20100401

post_max_size uma informação a mais na hora de aumentar o UPLOAD no php.ini

Wednesday, March 31st, 2010


Olá ALL,
As vezes erramos quando somente aumentamos diretivas do PHP visando upload, tais como:

max_execution_time,
upload_max_filesize,
e até mempory_limit.

Elas até que estão corretas, assim como max_execution_time, só que os forms que enviam dados (refiro-me a arquivos), fazem envio de arquivos pelo método post.
Sendo assim, se quisermos um upload de 96M em um servidor rodando php precisamos colocar no php.ini a informação de qual o tamanho máximo de envio de dados pelo POST.
A saída então seria:

post_max_size = 96M

Isto dentro do PHP.INI.

Pronto, após ajustes o apache deverá ser reiniciado.

Abraços galera!

Como mudar o Charset para aplicações WEB com apache e php

Tuesday, March 30th, 2010


Na realidade esse tutorial é algo bem simples que mostra como ajustar o charset de uma aplicação que atualmente opera em UTF-8.
É simples e rápido, veja as formas:

Um exemplo para uso do ISO 8859-1 dentro do .htaccess:

AddDefaultCharset iso-8859-1

Um exemplo para uso do ISO 8859-1 dentro de um arquivo php.ini:

default_charset = “ISO-8859-1″

como listar a memória do cumputador ou placa-mãe no linux how to list memory or motherboard pc or server on console

Wednesday, February 24th, 2010

Tá, isso aí é dúvida de muuuuuuita gente, mas é algo simples.
As vezes precisamos fazer perícias para saber se uma aplicação/daemon será compatível com nossa estrutura de dispositivos (arquitetura, fsb, chipset e etc), e para isto precisamos de informações beeeeem detalhadas.
Abaixo descrevo alguns comandos que acho bacana:

lspci
Este comando lhe dá um detalhe bem legal sobre dispositivos pci em seu pc.
Em um pc simples a saída fica mais ou menos assim:

00:00.0 Host bridge: VIA Technologies, Inc. P4M800 Host Bridge
00:00.1 Host bridge: VIA Technologies, Inc. P4M800 Host Bridge
00:00.2 Host bridge: VIA Technologies, Inc. P4M800 Host Bridge
00:00.3 Host bridge: VIA Technologies, Inc. P4M800 Host Bridge
00:00.4 Host bridge: VIA Technologies, Inc. P4M800 Host Bridge
00:00.7 Host bridge: VIA Technologies, Inc. P4M800 Host Bridge
00:01.0 PCI bridge: VIA Technologies, Inc. VT8237/VX700 PCI Bridge
00:0f.0 RAID bus controller: VIA Technologies, Inc. VIA VT6420 SATA RAID Controller (rev 80)
00:0f.1 IDE interface: VIA Technologies, Inc. VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (rev 06)
00:10.0 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 81)
00:10.1 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 81)
00:10.2 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 81)
00:10.3 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 81)
00:10.4 USB Controller: VIA Technologies, Inc. USB 2.0 (rev 86)
00:11.0 ISA bridge: VIA Technologies, Inc. VT8237 ISA bridge [KT600/K8T800/K8T890 South]
00:11.5 Multimedia audio controller: VIA Technologies, Inc. VT8233/A/8235/8237 AC97 Audio Controller (rev 60)
00:12.0 Ethernet controller: VIA Technologies, Inc. VT6102 [Rhine-II] (rev 78)
01:00.0 VGA compatible controller: VIA Technologies, Inc. KM400/KN400/P4M800 [S3 UniChrome] (rev 01)

Para informações beeem detalhadas use lspci -vv
(use os camandos como root).

lshw
Este comando é muito amigável e lhe dá um resumo bem bombado sobre seu hardware (memória, cpu e etc).
Em alguns casos ele consegue informar a frequência da memória (isto mesmo, ddr 1066 por exemplo).
Esse comando (na minha opinião) deve ser usado da seguinte forma:

lshw | more

O pipe “|” + more serve para paginar a saída de maneira que você possa ver pausadamente.

A saída deste comando é beeem legal, veja um pedacinho da saída falando de memória:

*-memory:0
description: System Memory
physical id: 40
slot: System board or motherboard
size: 4GiB
*-bank:0
description: DIMM 667 MHz (1.5 ns)
product: None
vendor: None
physical id: 0
serial: None
slot: DIMM_B1
size: 2GiB
width: 64 bits
clock: 667MHz (1.5ns)

Legal né?

Arquivo cpuinfo
Essa é uma das formas mais simples de saber que flags seu processador tem, qual velocidade dele, memória cache (L1, L2…) e etc.
Use da seguinte forma:

cat /proc/cpuinfo
A saída deste comando deve sair parecida com esta:

processor : 0
vendor_id : GenuineIntel
cpu family : 15
model : 4
model name : Intel(R) Pentium(R) 4 CPU 3.40GHz
stepping : 10
cpu MHz : 3400.425
cache size : 2048 KB
physical id : 0
siblings : 1
core id : 0
cpu cores : 1
apicid : 0
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 5
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe lm constant_tsc up pni monitor ds_cpl est cid cx16 xtpr lahf_lm
bogomips : 6805.08

Legal!

arquivo devices
Esse é um meio muito resumido e particularmente não gosto muito, mas segue a dica:
cat /proc/devices

Mostra os dispositivos resumidamente (no estilo lsmod).

Arquivo meminfo
Este arquivo lhe informa memória com um pouco mais de detalhes:
cat /proc/meminfo

Comando dmesg
Esse comando é muito legal, precisa somente de um extrinha:
use-o com o more!

dmesg | more

Normalmente a saída é enorme.
O comando dmesg dá um resumo do startup do sistema operacional lgnu/linux, assim como detalha em um rápido processo as coisas boas e ruins que estão ocorrendo com o sistema. (MUITO ÚTIL).
Erros de boot, erros de kernel, dispositivos desconhecidos e etc!

dmidecode
O comando dmidecode é um monstro. Esse comando dá todos os detalhes de hardware (isto mesmo, informe até o modelo da placa-mãe).
Utilize-o da seguinte forma:

dmidecode | more

Um pouco da saída:

System Information
Manufacturer: MICRO-STAR INTERNATIONAL CO., LTD
Product Name: MS-7071
Version: 1.00
Serial Number:
UUID: Not Present
Wake-up Type: Power Switch

Esse comando é uma mãe! Isto mesmo, muito bom para saber as informações detalhadas de uma motherboard, sem contar que você pode colher as informações de chipset e modelo da placa-mãe, podendo assim até consultar informações direto do fabricante.

Abraços a todos e espero que este post tenha sido útil.

error 134 from storage engine

Tuesday, November 17th, 2009

Para corrigir isto restaure seu banco de dados.

Caso seja myisam a Engine, use o comando (após parar o mysql):

myisamchk -r -o -f /var/lib/mysql/MEU_BANCO/*.MYI

Isto deverá sanar.

Abraços.

PHP 5.2.11 LIBERADO! Cpanel Já fez barulho quanto a isto hein!

Saturday, September 19th, 2009

Galera, para quem gosta de manter-se atualizado, a Zend (pai do php) lançou juntamente com a equipe de desenvolvimento o php 5.2.11. Vale a pena o update devido a quantidade de bugs corrigidos.

http://www.php.net

Para os usuários de cpanel o easyapache já está liberando disponibilizando junto ao whm, vide:
http://changelog.cpanel.net/?treeview=easyapache

embedded by Embedded Video

Download Video

Minhas contas whm/cpanel estão gerando arquivos core.xxx

Friday, September 4th, 2009

Nada de pânico!
Se no home de seu cliente estão aparecendo muitos arquivos core.xxxx você pode resolver de forma simples!

Provavelmente o que você fez foi compilar o apache com muitos módulos, isto não é bom, então o que pode ter causado tal problema:

1 – você ativou todos os recursos do php,
2 – você ativou todos os recursos mpm (não inicialmente ativados).

Recompile seu apache sem mpm e com php 5.2.10 e será resolvido!

Abraços!

fonte: http://littleoak.wordpress.com/2009/07/24/minhas-contas-whmcpanel-estao-gerando-arquivos-core-xxx/

Webmail não acessa nem por reza brava! Problema com acesso a webmail no whm cpanel

Friday, September 4th, 2009

Nada de pânico, se você já foi em tweak settings e tentou ativar o danado do webmail e mesmo assim ele não funfou, nada de pânico, entre no console, caso use apf rode iptables -F, caso rodo csf rode csf -f.
Tente acessar :D

Isso normalmente é firewall barrando a porta de webmail 2095 :D

fonte: http://littleoak.wordpress.com/2009/07/31/webmail-nao-acessa-nem-por-reza-brava-problema-com-acesso-a-webmail-no-whm-cpanel/

como Meu servidor não requer autenticação whm cpanel como forçar autenticação de email how to force mail authentication

Friday, September 4th, 2009

Nada de pânico, entre no console como root e digite o seguinte comando:

/usr/local/cpanel/bin/tailwatchd –enable=Cpanel::TailWatch::Antirelayd

:D

fonte: http://littleoak.wordpress.com/2009/08/01/meu-servidor-nao-requer-autenticacao-whm-cpanel-como-forcar-autenticacao-de-email-how-to-force-mail-authentication/

problema ao compilar o mod_ruby no centos 5.3

Friday, September 4th, 2009

Ao rodar o comando:

./configure.rb –with-apr-includes=/usr/include/apr-1

A saída está abaixo:

checking for a BSD compatible install… /usr/bin/install -c
checking whether we are using gcc… yes
checking Ruby version… 1.8.5
checking for static Apache module support… no
checking for dynamic Apache module support… yes
creating Makefile
creating libruby.module
creating doc/Makefile

Se você, ao tentar rodar o make recebe isto aqui:

apachelib.c: In function .ap_chdir_file.:
apachelib.c: 149: take care: the returnvalue of .chdir ., declared with .warn_unused_result. attribut, is ignored
apachelib.c: 154: take care: the returnvalue of .chdir ., declared with .warn_unused_result. attribut, is ignored
apachelib.c: In function .rb_init_apache. :
apachelib.c: 374: error: .OPT_INCNOEXEC. undeclared (first use in this function)
apachelib.c: 374: error: (Each undeclared identifire is reported only once
apachelib.c: 374: error: for each function it appears in.)
make: *** [apachelib.o] error 1

FICA tranquilo, a saída está aqui:

abra o arquivo apachelib.h e dentro dele, abaixo das linhas:

#ifndef APACHELIB_H
#define APACHELIB_H

informe

#define OPT_INCNOEXEC 32 /* added *

se rodar eu quero uma caixa de BIZ!

fonte: http://littleoak.wordpress.com/2009/08/05/problema-ao-compilar-o-mod_ruby-no-centos-5-3/

Fazendo análise de disco e análise básica de um servidor

Friday, September 4th, 2009

dmesg | grep -i err

Irá verificar erros recentes, problemas de RAM, aplicativos gerando qualquer log de erro significativo pro sistema operacional

tail -f -n XXXXX /var/log/messages

Similar ao anterior. XXX é o numero de linhas para trás. Sempre que o servidor travar, procure as ultimas entradas neste arquivo antes do travamento.

hdparm -Tt /dev/sda (sda, sdb, md0… seja qual for seu disco)

Te dá um relatório de leitura e escrita pro seu disco.

Os valores mínimos aceitáveis são:
Timing cached reads superior a 700
Timing buffered disk reads superior a 25

Se estiver inferior, é grande chance de problema no disco.

Faz um “top” e acompanha o parametro “wa” ou “iowait”.

Este parametro é o quanto seu sistema operacional espera por leitura/escrita do disco. Se durante 5 minutos esse parametro se mantiver muito alto (a cima de uns 60-70%), pode indicar sobrecarga do servidor e/ou problema no disco.

Servidor travou. Será que é Firewall?

Não é dificil acontecer. As vezes o firewall pode estar em um nível de segurança muito alto (acontece muito com o CSF), e o servidor barra todo o tráfego sainte. Tente desativar o Firewall por alguns dias. Não é nada bom ficar sem firewall, mas ir por eliminação nunca faz mal. O APF é uma boa alternativa de firewall pra Linux.

Se usar o CSF, nunca esqueça de sempre fazer update nele.

Alugue um KVM remoto

Outra dica nossa, seria pedir a instalação de um KVM remoto. Desta forma você consegue verificar de forma segura a temperatura do processador, gabinete e outros parametros. Quando o servidor travar, você terá acesso total a máquina e poderá investigar uma possível mensagem de erro no sistema (se houver).

É basicamente isso.. Existem muitas variáveis. Principalmente quando muitos clientes rodam aplicações que desconhecemos.

fonte: http://littleoak.wordpress.com/2009/08/14/fazendo-analise-de-disco-e-analise-basica-de-um-servidor/

Processo repquota -auv consumindo tudo da máquina whm/cpanel

Friday, September 4th, 2009

Se o processo repquota -auv está matando sua máquina Centos/Redhat com WHM/CPANEL, nada de desespero, o esquema é observar se o item abaixo está marcado:

Se ao suspender contas em seu WHM, você enfrentar problemas com LOAD, desabilite em “Tweak Settings” a função abaixo:

“Use Safe Quota Setting (quotas will be disabled, adjusted, and then re-enabled). This option should be enabled if you are having problems with lost disk quotas or other quota system corruption. Under software raid and other circumstances enabling this option will degrade server performance.”

Caso não, marque-o!

fonte: http://littleoak.wordpress.com/2009/08/14/processo-repquota-auv-consumindo-tudo-da-maquina-whmcpanel/

Starting MySQL.Manager of pid-file quit without updating fi[FAILED]

Friday, September 4th, 2009

Se você não consegue fazer nada no mysql e o bandido ainda assim só lhe diz:

Starting MySQL.Manager of pid-file quit without updating fi[FAILED]

Nada de pânico, para resolver isto use os comandos abaixo:

cd /var/lib/mysql/mysql
myisamchk -r *.MYI

Após, service mysql start.

Fonte: http://littleoak.wordpress.com/2009/08/27/starting-mysql-manager-of-pid-file-quit-without-updating-fifailed/

Erro 111 na tentativa de envio de webmail pelo cpanel

Friday, September 4th, 2009

Se você tenta acessar sua conta de email (e até consegue) via webmail (em seu cpanel), mas na hora de enviar uma mensagem o erro que aparece é o erro 111, NADA DE PÂNICO, mister little lhe dá a resposta bem mastigadinha!

1 – acesse o servidor, logando-se como root execute o comando abaixo:

/scripts/mailperm –force

Este problema ocorre (normalmente) ou porque a conta de email Não exise mais ou porque a mesma perdeu privilégios no gestor do exim.

Abraços!

fonte: http://littleoak.wordpress.com/2009/09/01/erro-111-na-tentativa-de-envio-de-webmail-pelo-cpanel/

Como instalar o CSF firewall – How to install CSF

Tuesday, April 21st, 2009

Para instalar o CSF firewall basta executar os seguintes comandos:

wget http://www.configserver.com/free/csf.tgz
tar zxf csf.tgz
cd csf
sh install.sh

Após isto, caso tenha o apf e o bfd operando remova-os assim:

sh disable_apf_bfd.sh

OBS: O CSF já detecta que portas estão sendo utilizadas e as libera de maneira simples, ou seja, sem que haja intervenção por sua parte.
Uma coisa que você deve ficar alerta, principalmente por que o BIND usa a porta 953 udp/tcp.

Libere isto também e ainda, caso sua interface de dns do seu IDC seja eth0, por exemplo, informe ela na interface excluída de verificações.

Isso vai deixar os lookups operando corretamente :D

Abração a todos.

Como remover o APF – How to remove apf How to uninstall apf

Monday, April 20th, 2009

Para remover o apf rode:

chkconfig –del apf
rm /etc/init.d/apf
rm -rf /etc/apf

Abraços.

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

Friday, February 27th, 2009

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.