20/02/11

Slackware

Hoje tive uma vontade de fazer uma abordagem sobre esta distribuição que tantos veneram e outros tantos têm "medo". Sim, há muita gente que tem "medo" do Slackware porque é uma das distribuições mais fiéis ao Unix. Mas afinal não há razões para tanto pánico. Afinal qualquer um consegue instala-lo, e se tiver alguns conhecimentos de Inglês, irá aprender muita coisa sobre Linux durante a leitura aconselhavel da própria distribuição.

Realmente para quem nunca trabalhou em qualquer plataforma em modo de consola, é assustador tentar fazer alguma coisa. Existem toneladas de comandos e opções de comando para fazer alguma coisa. Mas penso que tal como tudo na vida, é preciso ter alguma experiência e ter vontade de aprender.

Aqui na turma existem alguns que têm poucos ou nenhuns conhecimentos de Inglês o que se torna mais complicado entenderem algumas coisas sobre qualquer tipo de assunto relacionado com Informática.

Como muitos de vocês podem constatar as distros de Linux tiveram uma evolução enorme. Antigamente havia a necessidade de procurar librarias para instalar um determinado programa, o que fazia com que para isso fosse necessário instalar A, B, C ou D aplicações antes de instalar a aplicação que queriamos.
Existiam muitas dependencias, tinhamos de compilar o código fonte, configurar "à pata" cada uma das aplicações, etc etc etc...
Hoje em dia em algumas distribuições como o Ubuntu faz todos esses passos automáticamente sem que o utilizador tenha de se preocupar com qualquer dos assusntos mencionados.

Mas na verdade o facto de uma comunidade Linux ter como objectivo a facilidade de trabalho para qualquer utilizador, perde um pouco a noção de estabilidade e segurança do sistema operativo. O que na maioria das distribuições é dificil de configurar fica definitivamente configurado, enquanto que nestas distribuições tipo Ubuntu o que está configurado pode amanhã não estar porque as actualizações que recebeu tinham um ou mais pacotes/aplicações que não são compativeis com as que estavam no momento instaladas.
Isso faz como que num desses momentos o utilizador comum tenha de procurar em fóruns, servidores de IRC, blogs, etc, uma solução para o problema dele, sabendo que as soluções apresentadas pela pessoa que está a tentar ajudar não são certas e que todas elas sugerem que o utilizador use a consola para alterar configurações, desinstalar ou reinstalar aplicações.

Ora vamos lá começar por ver a instalação do Slackware passo a passo.

Introduzimos o CD/DVD e a primeira coisa que nos aparece é um menu onde diz que podemos iniciar com algumas opções. Estas opções só são usadas quando já temos o Slackware instalado numa das partições do disco mas não lhe foi instalado o Lilo, que é uma aplicação que permite no momento do boot escolher qual dos sistemas operativos queremos iniciar.
O Slackware pode ser instalado desde um 386 até um quadcore sem que dê algum tipo de problemas.
O boot tem suporte a RAID, SCSI, PCMCIA, USB, CD-ROMs antigos.O modo bare.i é o mais comum, pois permite instalar a partir de um CD-ROM IDE ou de uma pasta do HD, enquanto o lowmem.i permite instalar em PCs com pouca RAM, a partir de 4 MB.

Pressionamos na tecla Enter e o Slackware faz uma revisão rápida de todo o Hardware da nossa máquina.
Em seguida diz-nos para fazer-mos login como root.

Nas novas distribuições como por exemplo o Ubuntu, não é aconselhavel usar o utilizador root. Isto porque representa perigo se mal usado, tanto a nível de Software como também a nível de Hardware.
Como root podemos por em perigo a nossa máquina.

Mas em Slackware não temos alternativas e ainda bem por questões de segurança. Na maioria das distribuições que usam o comando "sudo" nunca chegam a atribuir uma passwd ao utilizador root, e facilmente alguém pode destruir alguma coisa de pessoal de qualquer outro utilizador, pois existem várias formas de aceder ao utilizador root sem sequer ter a necessidade de crackar a passwd.

Agora como root devemos então usar uma das aplicações (fdisk ou cfdisk) para fazermos as partições que vão ser usadas pelo Slackware.
Quanto a mim o cfdisk é mais acessível e dá-nos uma melhor percepção do que estamos a fazer ao disco local. (Se tivermos mais que um disco local, é necessário saber qual é o disco que queremos usar)
Mas normalmente usa-se um disco que é "linkado" em /dev/hda

"cfdisk HD_destino", como em "cfdisk /dev/hda", "cfdisk /dev/hdb" ou "cfdisk /dev/sd0" (para um HD SCSI)

Eu gosto de criar três partições:
Uma de 1024MB >> que será mais tarde atribuida como a partição Swap
Outra de 512MB >> quer será unicamente para o directório /boot
e por fim o espaço restante para o resto do sistema operativo / que tem de ter o mínimo de 5GB estando nós a instalar a versão DVD que contém centenas ou milhares de aplicações, usadas em modo consola e outras em modo gráfico.

Depois de as partições estarem devidamente particionadas fazemos setup para seguirmos para o seguinte passo.

Agora devemos antes de tudo formatar as partições criadas. Para isso escolher a opção ADDSWAP e em seguida ele pergunta-nos quais as partições que queremos definir. Caso tenhamos uma partição NTFS que tem o Windows devemos dizer para memorizar esse caminho para mais tarde podermos aceder À partição do Windows facilmente. Caso contrário teremos de "montar" essa partição. Esta opção é opcional. Caso queiram não ter acesso à partição Windows, ignorem esse passo.

Como disse, eu uso três partições que incluem a partição SWAP.
Normalmente a partição que será para a directoria /boot formato-a em ext2 e a partição / em reiserFS.
Para quem gosta de estibilidade aconselho reiserFS ou xFS. Se querem saber mais detalhes sobre cada um destes formatos de particionamento é favor ler um pouco no Wikipedia

Em seguida escolhemos para instalar o Slackware a partir do DVD automáticamente.
"Install Slackware from CD/DVD"

Depois de escolher-mos para instalar aparece-nos várias opções de instalação. Caso não tenham problemas de espaço façam o aconselhavel > Full.

Este processo demora X tempo dependendo da rapidez da máquina.
Depois de concluida a instalação ainda temos de definir mais algumas coisas.

Agora temos a opção de activar o hotplug. Um recurso "novo", incluído apenas a partir do Slackware 9.1.
O hotplug detecta dispositivos US, PCMCIA e Firewire, ajudando bastante na configuração de impressoras, scanners e câmeras digitais, placas de rede PCMCIA, etc.

Em seguida configuramos o LILO e o tamanho do frame-buffer, que é o tamanho que o nosso monitor/placa gráfica permite usar o sreen. Normalmente com gráficas antigas é 800x600. Se tens um bom monitor e uma boa placa gráfica podes usar 1024x768x64k.

Em seguida vamos gravar as configurações do lilo e escolhemos MBR. não escolher a instalação do Lilo caso o Slackware seja o único sistema operativo instalado na máquina.

Em seguida e por fim definios a passwd de Root.
Diga-se que convém que seja uma passwd complexa. Nunca uses uma passwd lógica com o teu nome ou passwd tipo 12345 ou mesmo abc123.

Depois de instalado está na hora de fazer > reboot para reiniciar-mos o nosso Slackware e prosseguirmos para a pós-configuração.

Espero que tenham gostado, qualquer dúvida não hesitem em perguntar.
Depois de termos reiniciado o Slackware mal entramos como root, aparece uma mensagem a dizer "You have new email" > Você tem um novo email.
Este email vai nos falar um pouco da história do Slackware e irá dar-nos indicações das mais importantes configurações de pós-instalação.

Como adicionar utilizadores e quais as permições que devemos dar a cada um desses utilizadores.
Também irá falar de como iniciar serviços como o httpd, ssh, smtp, entre outros.
Outra coisa que nos revela é o básico de Linux, quais os comandos para atribuir permissões de leitura ou escrita dos mais variados ficheiros de sistema. Como configurar a rede, a Firewall que neste caso é configurada a partir de IPTABLES, o servidor X que é o modo gráfico, etc...

Convém antes de mais saber qual a estrutura da maioria dos sitemas Linux. No caso do Slackware a estrutura é assim representada...
Sabendo que a barra / representa a directoria raiz em seguida temos as seguintes subpasta:

/bin > Programas essenciais são aqui guardados. Isso significa que os programas base estão nesta subpasta.. Aplicações como a shell /bin/bash, /bin/sh, alicações com cp, ls e por ai fora.

/boot > Ficheiros usados pelo Linux Loader LILO. Sempre que se faz um upgrade ao kernel temos de configurar a imagem do kernel antes de reiniciar-mos a maquina.

/dev > Tudo em Linux é tratado como um ficheiro. Desde serial ports, disco duro, scaners, etc.... De forma a ter acesso a cada um desses periféricos teremos de "chama-los" a partir desta directoria fazendo um mount. Ex: mount /dev/sda1 /mnt/pen

/etc > Esta directoria tem todos os ficheiros nfiguração do sistema. Desde os ficheiros de configuração de serviços do apache até à configuração do servidor X que é o que nos dá um modo gráfico.

/home > Directório do sistema de multi-utilizadores. Todas as contas menos a de root ficaram guardadas neste directório por defeito.

/lib > Todas as librarias necessárias para que quanquer aplicação funcione serão guardadas aqui.

/mnt > Aqui é onde normalmente se cria pontos de acesso para os periféricos que montamos, como mostrei no exemplo da directoria /dev.

/opt > Directoria para instalar software opcional para que mais tarde, caso queiramos remover esse software seja mais fácil.

/proc > Guarda e faz a gestão da informação, o qual é enviada ao Kernel sempre que ele tiver necessidade. Exprimenta por exemplo cat /proc/cpuinfo

/root > Directoria do utilizador root. Normalmente mais nenhum utilizador, mesmo tendo permições de administrador, tem acesso a esta directoria.

/sbin > Directoria que guarda todas as aplicações que correm quando iniciamos o PC. Quase todos os serviços são iniciados a partir daqui. Exemplo. Quando fazemos httpd start é o mesmo que fazer /sbin/httpd start.

/tmp > Directoria para guardar ficheiros temporários. Nesta directoria todos têm acesso de leitura e escrita.

/usr > A maior directoria do Linux. Ou a que tem mais material. Desde o código fonte do Kernel, até a documentação do man, programas, aplicações graficas e o proprio servidor X está aqui guardado.

/var > Directoria que guarda a cache e logs.
Quando forem administradores irao usar muito esta directoria para ler os logs.

Agora que sabemos as definições basicas da estrutura do Linux vamos então explorar um pouco mais antes de pensarmos em configura-lo.

Do Inglês which (onde), podemos saber qual é a localização de uma aplicação:
which bash
/bin/bash
which apache
/sbin/httpd

Para mais detalhes da localização de aplicações, saendo que as mesmas estáo em várias directorias podemos usar o whereis > do Inglês (Onde Está)
whereis bash
bash: /bin/bash /usr/bin/bash /usr/man/man1/bash.1.gz

Outras formas de procurar:
find / -name xinitrc
/var/X11R6/lib/xinit/xinitrc

slocate xinitrc # Assim nao é necessário ir ao directorio raiz
/var/X11R6/lib/xinit/xinitrc
/var/X11R6/lib/xinit/xinitrc.fvwm2
/var/X11R6/lib/xinit/xinitrc.openwin
/var/X11R6/lib/xinit/xinitrc.twm
Arranque:

É bom sabermos como funciona o arranque. O primeiro programa que corre quando o Linux arranca além do Kernel é o init. O programa le o ficheiro /etc/inittab para saber quais são os requesitos do sistema.
Depois corre o script /etc/rc.d/rc.S para saber qual foi o "RunLevel" que o utilizador escolheu. ( Em seguida irei falar sobre o que sao os RunLevels). O rc.S prepara a memória virtual e monta a partição principal do sistema. Em seguida limpa alguns logs de certas directorias e inicia o Plug and Play, configura os periféricos PCMCIA, serial ports e por fim o System V init.

rc.S > é o script que inicia o sistema

rc.modules > acolhe os modulos do kernel tais como a placa de rede e outras coisas. Neste script há referência a outro script chamado rc.netdevice que também irá correr no momento do inicio do sistema, o rc.pcmcia, rc.serial que dá indicações quais as serial ports que estao a ser usadas e o rc.sysinit que recolhe informações do sistema V init scripts que depois será discutido em mais detalhe.

Runlevel scripts:

Como vimos na directoria /etc/rc.d/*.* existem alguns scripts que permitem a forma de como o utilizador quer que o sistema inicie. Por norma em Slackware, o sistema inicia-se em Nível 3 que é o chamado modo consola.

Descrição dos scripts:
rc.0 > Desliga a maquina
rc.4 > inicia a máquina em nivel 4, onde o utilizador entre automaticamente em modo grafico.
rc.6 > reinicia o PC.
rc.K > inicia o modo utilizador unico > runlevel 1 > Usado para fazer a recuperação do sistema.
rc.M > Modo multi-utilizador > O que o Slackware usa por defeito.

Runlevels 2, 3 e 4 quando iniciam, iniciam os serviços de rede.
Os scripts responsáveis são:

rc.inet1 > criado a partir do netconfig > Responsável pela configuração actual do PC.
rc.inet2 > Corre logo a seguir ao anterior e inicia os serviços básicos de rede.
rc.atalk > inicia os serviços AppleTalk
rc.httpd > Inicia o servidor Apache. Este script para iniciar tem de ser acompanhado pelas opções: start, stop ou restat >> Iniciar, parar, reiniciar.
rc.news > inicia um servidor de noticias.

----------

Ainda nesta directoria de temos outros scripts que podem ser muito úteis:
rc .gpm > Inicia o serviço que permite usa o rato, mesmo em modo consola.
rc.font > Adiciona a fonte usada por defeito na consola.
rc.local > Corre as aplicações/serviços de arranque. Reservado aos administrador. Por defeito nao está activo. Para o activar teremos de usar o comando chmod +x rc.local. Este comando será discutido mais à frente.

Em seguida Irei falar do Kernel e como se deve compilar.

O Kernel

O kernel é parte do sistema operativo e providencia acesso ao Hardawre e ao controlo de processos de sistema. O kernel contém suporte para os periféricos de Hardware. Por isso é sempre bom actualiazar-mos o Kernel.
O Slackware oferece mais de uma dezena de kernels já précompilados que podes saca-los do site com as drives especificas para o teu sistema.
Quando acabamos de instalar o Slackware nao há necessidade de compilar o kernel. Mas quando queremos fazer um upgrade, aí sim, é necessário compila-lo de forma a não haver necessidade de reinstalar o sistema operativo de novo. Além disso, a compilação do kernel é feita com o propósito de dar a conhecer ao kernel as especificações do Hardware que está na nossa maquina, para assim correr somente as drives necessárias no momento do boot.

O kernel que está ou nos sites do Slackware ou no cd/dvd são e têm o seguinte propósito:

Ficheiro Propósito
System.map O mapa do sistema para o kernel
bzImage A imagem actual do Kernel
config O código fonte de configuraçao do kernel

Para usar o Kernel copiamos o ficheiro System.map e o config paraa directoria /boot e a imagem do kernel para /boot/vmlinuz. A seguir corre o lilo que está em /sbin/lilo para instalar o novo kernel e claro reinicie a maquina.

Compilar o Kernel:

A pergunta é: "Deverei eu compilar o kernel no meu sistema?", pergunta feita pela maioria dos novos utilizadores de linux. A resposta na maioria das vezes é Talvez. Existem algumas instancias que sao necessárias para compilar o kernel. A maioria dus utilizadores pode usar um kernel pre-configurado para funcionar no sistema. Queres compilar o kernel para o teu sistema se queres fazer um upgrade do kernel. Qualquer pessoa que tenha um sistema SMP de certeza que quer compilar o kernel. Os utilizadores irão reparar que o sistema está mais rápido pois foi compilado para o processadores que estão a usar, o que oferece uma performance muito mais rentável.

Compilar o kernel não é uma tarefa difícil. O primeiro passo é ter a certeza que temos o código fonte no sistema. Ter a certeza que instalamos todos os pacotes da secção K, D especificamente o compilador de C (gcc), o make e o GNU binutils. Em geral é uma boa ideia instalar a série D dos pacotes de instalação caso queiras compilar o kernel para um sistema de desenvolvimento de software. Para fazer o download da última versão do kernel tens aqui. > http://www.kernel.org/mirrors

Parte prática:

Na consola fazer
# su -
Passwd:
# cd /usr/src/linux
A primeira coisa que aconselho é fazer o backup do ficheiro .config que está nessa directoria pois a seguir o mesmo será apagado sem aviso.
# make mrproper
Agora podemos entao configurar o kernel para o nosso sistema. Existem três formas de o configurar-mos:
# make config >>> ( modo de texto - Versão Q&A)
# make menuconfig >>> ( modo de texto com aparencia de um menu)
# make xconfig >>> (modo gráifico) <<<>

Os novos utilizadores podem achar o menuconfig um quanto simples. Aparece sempre uma descrição dos vários menus. Depois de configurar o kernel façam exit para sair do programa de configuração.
Agora prepara-te para a construção da árvore do código fonte.
# make dep
# make clean
O passo em aixo é o que realmente compila o kernel.
# make bzImage
Isto demora um bom bucado dependendo da rapidez da maquina. ( Lembro-me que no meu P2 demorei quase um dia)
Em seguida:
# make modules
Agora está quase a acabar..
# vm /boot/vmlinuz /boot/vlinuz.old
# cat arch/i386/boot/bzImage > /vmlinuz
# mv /boot/System.map /boot/System.map.old
# cp System.map /boot/System.map
E por fim
# make modules_install

Agora basta editar-mos o ficheiro de configuração do lilo em /etc/lilo.conf e adicionar as linhas do novo kernel, e comentar "#" as linhas do antigo kernel. Depois de fazer isso corra o lilo para usar o novo kernel no boot. /sbin/lilo -v

Reinicia o PC para usar o novo kernel
--------------------------------------------------------------------------------------------------------------------------------------
Usar os modulos do Kernel:

Os modulos do kernel são outro nome para o as drives que podem ser inseridos enquanto o kernel está a correr. Isto perite-nos que o kernel suporte outro tipo de HArdware sem que tenhamos de escolher outro kernel ou mesmo compila-lo.
Os modulos podem ser usados mesmo quando o sisema está a correr normalmente. Isto permite uma facilidade de fazer um upgrade das drives aos administradores. Novos modulos podem ser compilados, o antigo removido e adicionado um novo sem que o PC tenha de ser reiniciado. Para ver a lista de modulos usamos o comando:
# lsmod
Module Size Used by
parport_pc 7220 0
parport 7844 0 [parport_pc]


Como podemos observar aqui só tenho o modulo da porta paralela. PAra remover um módulo usa-se rmmod(1). OS modulos podem ser testados > modprobe.

Mais informações sobre os modulos podem ser enontrados nos comentários do ficheiro rc.modules.

A seguir irei falar das configurações basicas de rede.


Quando o Slackware inicia invoca o netconfig o qual rastrea três funções:
1. Pede-te o nome do computador e o domínio.
2. Dá-te a opção de escolheres a forma como queres configurar a tua placa de rede.
i. Static-IP
ii. DHCP
iii. Loopback
3. Depois testa a placa de rede de forma a ter a certeza que as informações dadas estão correctas.

Em 80% dos casos o netconfig configura correctamente a rede.
Atenção: Ler as o ficheiro de configuração por dois motivos:
1. Nunca se deve confiar num programa que autoconfigura um ou mais componentes do computador. Caso uses o SETUP deves confirmar se está tudo correcto.
2. Se estás a aprender Slackware, ler o ficheiro de configuração ajuda muito! Pelo menos ficas a saber como é que o ficheiro de configuração parece... Isso ajudar-te-á a resolver configurações incorrectas um dia mais tarde.

Para fazer o load dos modulos como referi anteriormente ele será feito automaticamente quando inicia o sistema com os scripts rc.modules e rc.hotplug.

Normalmente o ficheiro de configuração tem uma lista de TODAS as placas de rede PCI e ISA.
Executando /sbin/netconfig irá testar as placas que estão configuradas em rc.netdevice.

Configuração:

# ifconfig -a
eth0 Link encap:Ethernet HWaddr 00:A0:CC:3C:60:A4
UP BROADCAST NOTRAILERS RUNNING MULTICAST MTU:1500 Metric:1
RX packets:110081 errors:1 dropped:0 overruns:0 frame:0
TX packets:84931 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:114824506 (109.5 Mb) TX bytes:9337924 (8.9 Mb)
Interrupt:5 Base address:0x8400

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:2234 errors:0 dropped:0 overruns:0 frame:0
TX packets:2234 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:168758 (164.8 Kb) TX bytes:168758 (164.8 Kb)


Se usares o comando ifconfig localizado em /sbin/ifconfig com o sufixo -a, não mostra a interface eth0 que é onde iremos configurar o nosso IP.

Durante a configuração de rede existem duas formas de a fazer. A estática e a Dinâmica.
Como os nomes indicam na estática é atribuido um IP fixo e na dinâmica e usado o servidor DHCP.

DHCP > [ Dynamic Host Configuration Protocol ] <>

Cliente: Há algum servidor de DHCP livre na LAN?
Servidor: Sim, há. Estou aqui.
Cliente: Eu preciso de um IP.
Servidor: Podes ficar com o 192.168.10.10 durante 19200 segundos.
Cliente: Obrigado.

Disconnect

Cliente: Há algum servidor de DHCP na LAN?
Servidor. Há sim, estou aqui.
Cliente: Eu preciso de um IP. Da última vez que estive aqui usei o 192.168.10.10. Posso usa-lo outra vez?
Servidor: Sim podes. ( ou não. Podes usar o 192.168.10.12 em vez do anterior )
Cliente: Obrigado.

O cliente de DHCP no Linux está em /sbin/dhcpcd. Se leres o ficheiro /etc/rc.d/rc.inet1 com o teu editor de texto favorito, verás a referência do executavel a meio desse ficheiro.
Assim, se usares o DHCP ele irá atribuir todos os parâmetros necessários para a rede funcionar... IP, netmask, gateway, servidor DNS, etc...

Static IP ( IP Estático )

Caso queiras usar um IP fixo terás de editar o ficheiro /etc/rc.d/rc.inet1.conf

# Primary network interface card (eth0)
IPADDR[0]=""
NETMASK[0]=""
USE_DHCP[0]=""
DHCP_HOSTNAME[0]=""

Depois um pouco mais abaixo editar também o parâmetro GATEWAY=""

Em seguida é preciso editar o ficheiro /etc/resolv.conf de forma a ficar parecido a este:

# cat /etc/resolv.conf
nameserver 192.168.1.254
search clix.pt


Agora com o servidor DNS configurado devemos configurar também o ficheiro /etc/hosts de forma a ficar parecido ao seguinte:

# cat /etc/hosts
127.0.0.1 localhost locahost.localdomain
192.168.1.101 redtail
172.14.66.32 foobar.slackware.com


Agora testamos a rede:

# ping -c 1 store
PING store.slackware.com (69.50.233.153): 56 data bytes
64 bytes from 69.50.233.153 : icmp_seq=0 ttl=64 time=0.251 ms
1 packets transmitted, 1 packets received, 0% packet loss
round-trip min/avg/max = 0.251/0.251/0.251 ms

A rede wireless é invocada através do comando iwconfig. Caso uses a interface wireless, confirma que não estás a usar a interface eth0.
As configurações do wireless estão também no ficheiro rc.inet1.conf e podes editar em mais detalhe o ficheiro /etc/rc.d/rc.wireless.
Hoje tive uma vontade de fazer uma abordagem sobre esta distribuição que tantos veneram e outros tantos têm "medo". Sim, há muita gente que tem "medo" do Slackware porque é uma das distribuições mais fiéis ao Unix. Mas afinal não há razões para tanto pánico. Afinal qualquer um consegue instala-lo, e se tiver alguns conhecimentos de Inglês, irá aprender muita coisa sobre Linux durante a leitura aconselhavel da própria distribuição.

Realmente para quem nunca trabalhou em qualquer plataforma em modo de consola, é assustador tentar fazer alguma coisa. Existem toneladas de comandos e opções de comando para fazer alguma coisa. Mas penso que tal como tudo na vida, é preciso ter alguma experiência e ter vontade de aprender.

Aqui na turma existem alguns que têm poucos ou nenhuns conhecimentos de Inglês o que se torna mais complicado entenderem algumas coisas sobre qualquer tipo de assunto relacionado com Informática.

Como muitos de vocês podem constatar as distros de Linux tiveram uma evolução enorme. Antigamente havia a necessidade de procurar librarias para instalar um determinado programa, o que fazia com que para isso fosse necessário instalar A, B, C ou D aplicações antes de instalar a aplicação que queriamos.
Existiam muitas dependencias, tinhamos de compilar o código fonte, configurar "à pata" cada uma das aplicações, etc etc etc...
Hoje em dia em algumas distribuições como o Ubuntu faz todos esses passos automáticamente sem que o utilizador tenha de se preocupar com qualquer dos assusntos mencionados.

Mas na verdade o facto de uma comunidade Linux ter como objectivo a facilidade de trabalho para qualquer utilizador, perde um pouco a noção de estabilidade e segurança do sistema operativo. O que na maioria das distribuições é dificil de configurar fica definitivamente configurado, enquanto que nestas distribuições tipo Ubuntu o que está configurado pode amanhã não estar porque as actualizações que recebeu tinham um ou mais pacotes/aplicações que não são compativeis com as que estavam no momento instaladas.
Isso faz como que num desses momentos o utilizador comum tenha de procurar em fóruns, servidores de IRC, blogs, etc, uma solução para o problema dele, sabendo que as soluções apresentadas pela pessoa que está a tentar ajudar não são certas e que todas elas sugerem que o utilizador use a consola para alterar configurações, desinstalar ou reinstalar aplicações.

Ora vamos lá começar por ver a instalação do Slackware passo a passo.

Introduzimos o CD/DVD e a primeira coisa que nos aparece é um menu onde diz que podemos iniciar com algumas opções. Estas opções só são usadas quando já temos o Slackware instalado numa das partições do disco mas não lhe foi instalado o Lilo, que é uma aplicação que permite no momento do boot escolher qual dos sistemas operativos queremos iniciar.
O Slackware pode ser instalado desde um 386 até um quadcore sem que dê algum tipo de problemas.
O boot tem suporte a RAID, SCSI, PCMCIA, USB, CD-ROMs antigos.O modo bare.i é o mais comum, pois permite instalar a partir de um CD-ROM IDE ou de uma pasta do HD, enquanto o lowmem.i permite instalar em PCs com pouca RAM, a partir de 4 MB.

Pressionamos na tecla Enter e o Slackware faz uma revisão rápida de todo o Hardware da nossa máquina.
Em seguida diz-nos para fazer-mos login como root.

Nas novas distribuições como por exemplo o Ubuntu, não é aconselhavel usar o utilizador root. Isto porque representa perigo se mal usado, tanto a nível de Software como também a nível de Hardware.
Como root podemos por em perigo a nossa máquina.

Mas em Slackware não temos alternativas e ainda bem por questões de segurança. Na maioria das distribuições que usam o comando "sudo" nunca chegam a atribuir uma passwd ao utilizador root, e facilmente alguém pode destruir alguma coisa de pessoal de qualquer outro utilizador, pois existem várias formas de aceder ao utilizador root sem sequer ter a necessidade de crackar a passwd.

Agora como root devemos então usar uma das aplicações (fdisk ou cfdisk) para fazermos as partições que vão ser usadas pelo Slackware.
Quanto a mim o cfdisk é mais acessível e dá-nos uma melhor percepção do que estamos a fazer ao disco local. (Se tivermos mais que um disco local, é necessário saber qual é o disco que queremos usar)
Mas normalmente usa-se um disco que é "linkado" em /dev/hda

"cfdisk HD_destino", como em "cfdisk /dev/hda", "cfdisk /dev/hdb" ou "cfdisk /dev/sd0" (para um HD SCSI)

Eu gosto de criar três partições:
Uma de 1024MB >> que será mais tarde atribuida como a partição Swap
Outra de 512MB >> quer será unicamente para o directório /boot
e por fim o espaço restante para o resto do sistema operativo / que tem de ter o mínimo de 5GB estando nós a instalar a versão DVD que contém centenas ou milhares de aplicações, usadas em modo consola e outras em modo gráfico.

Depois de as partições estarem devidamente particionadas fazemos setup para seguirmos para o seguinte passo.

Agora devemos antes de tudo formatar as partições criadas. Para isso escolher a opção ADDSWAP e em seguida ele pergunta-nos quais as partições que queremos definir. Caso tenhamos uma partição NTFS que tem o Windows devemos dizer para memorizar esse caminho para mais tarde podermos aceder À partição do Windows facilmente. Caso contrário teremos de "montar" essa partição. Esta opção é opcional. Caso queiram não ter acesso à partição Windows, ignorem esse passo.

Como disse, eu uso três partições que incluem a partição SWAP.
Normalmente a partição que será para a directoria /boot formato-a em ext2 e a partição / em reiserFS.
Para quem gosta de estibilidade aconselho reiserFS ou xFS. Se querem saber mais detalhes sobre cada um destes formatos de particionamento é favor ler um pouco no Wikipedia

Em seguida escolhemos para instalar o Slackware a partir do DVD automáticamente.
"Install Slackware from CD/DVD"

Depois de escolher-mos para instalar aparece-nos várias opções de instalação. Caso não tenham problemas de espaço façam o aconselhavel > Full.

Este processo demora X tempo dependendo da rapidez da máquina.
Depois de concluida a instalação ainda temos de definir mais algumas coisas.

Agora temos a opção de activar o hotplug. Um recurso "novo", incluído apenas a partir do Slackware 9.1.
O hotplug detecta dispositivos US, PCMCIA e Firewire, ajudando bastante na configuração de impressoras, scanners e câmeras digitais, placas de rede PCMCIA, etc.

Em seguida configuramos o LILO e o tamanho do frame-buffer, que é o tamanho que o nosso monitor/placa gráfica permite usar o sreen. Normalmente com gráficas antigas é 800x600. Se tens um bom monitor e uma boa placa gráfica podes usar 1024x768x64k.

Em seguida vamos gravar as configurações do lilo e escolhemos MBR. não escolher a instalação do Lilo caso o Slackware seja o único sistema operativo instalado na máquina.

Em seguida e por fim definios a passwd de Root.
Diga-se que convém que seja uma passwd complexa. Nunca uses uma passwd lógica com o teu nome ou passwd tipo 12345 ou mesmo abc123.

Depois de instalado está na hora de fazer > reboot para reiniciar-mos o nosso Slackware e prosseguirmos para a pós-configuração.

Espero que tenham gostado, qualquer dúvida não hesitem em perguntar.
Depois de termos reiniciado o Slackware mal entramos como root, aparece uma mensagem a dizer "You have new email" > Você tem um novo email.
Este email vai nos falar um pouco da história do Slackware e irá dar-nos indicações das mais importantes configurações de pós-instalação.

Como adicionar utilizadores e quais as permições que devemos dar a cada um desses utilizadores.
Também irá falar de como iniciar serviços como o httpd, ssh, smtp, entre outros.
Outra coisa que nos revela é o básico de Linux, quais os comandos para atribuir permissões de leitura ou escrita dos mais variados ficheiros de sistema. Como configurar a rede, a Firewall que neste caso é configurada a partir de IPTABLES, o servidor X que é o modo gráfico, etc...

Convém antes de mais saber qual a estrutura da maioria dos sitemas Linux. No caso do Slackware a estrutura é assim representada...
Sabendo que a barra / representa a directoria raiz em seguida temos as seguintes subpasta:

/bin > Programas essenciais são aqui guardados. Isso significa que os programas base estão nesta subpasta.. Aplicações como a shell /bin/bash, /bin/sh, alicações com cp, ls e por ai fora.

/boot > Ficheiros usados pelo Linux Loader LILO. Sempre que se faz um upgrade ao kernel temos de configurar a imagem do kernel antes de reiniciar-mos a maquina.

/dev > Tudo em Linux é tratado como um ficheiro. Desde serial ports, disco duro, scaners, etc.... De forma a ter acesso a cada um desses periféricos teremos de "chama-los" a partir desta directoria fazendo um mount. Ex: mount /dev/sda1 /mnt/pen

/etc > Esta directoria tem todos os ficheiros nfiguração do sistema. Desde os ficheiros de configuração de serviços do apache até à configuração do servidor X que é o que nos dá um modo gráfico.

/home > Directório do sistema de multi-utilizadores. Todas as contas menos a de root ficaram guardadas neste directório por defeito.

/lib > Todas as librarias necessárias para que quanquer aplicação funcione serão guardadas aqui.

/mnt > Aqui é onde normalmente se cria pontos de acesso para os periféricos que montamos, como mostrei no exemplo da directoria /dev.

/opt > Directoria para instalar software opcional para que mais tarde, caso queiramos remover esse software seja mais fácil.

/proc > Guarda e faz a gestão da informação, o qual é enviada ao Kernel sempre que ele tiver necessidade. Exprimenta por exemplo cat /proc/cpuinfo

/root > Directoria do utilizador root. Normalmente mais nenhum utilizador, mesmo tendo permições de administrador, tem acesso a esta directoria.

/sbin > Directoria que guarda todas as aplicações que correm quando iniciamos o PC. Quase todos os serviços são iniciados a partir daqui. Exemplo. Quando fazemos httpd start é o mesmo que fazer /sbin/httpd start.

/tmp > Directoria para guardar ficheiros temporários. Nesta directoria todos têm acesso de leitura e escrita.

/usr > A maior directoria do Linux. Ou a que tem mais material. Desde o código fonte do Kernel, até a documentação do man, programas, aplicações graficas e o proprio servidor X está aqui guardado.

/var > Directoria que guarda a cache e logs.
Quando forem administradores irao usar muito esta directoria para ler os logs.

Agora que sabemos as definições basicas da estrutura do Linux vamos então explorar um pouco mais antes de pensarmos em configura-lo.

Do Inglês which (onde), podemos saber qual é a localização de uma aplicação:
which bash
/bin/bash
which apache
/sbin/httpd

Para mais detalhes da localização de aplicações, saendo que as mesmas estáo em várias directorias podemos usar o whereis > do Inglês (Onde Está)
whereis bash
bash: /bin/bash /usr/bin/bash /usr/man/man1/bash.1.gz

Outras formas de procurar:
find / -name xinitrc
/var/X11R6/lib/xinit/xinitrc

slocate xinitrc # Assim nao é necessário ir ao directorio raiz
/var/X11R6/lib/xinit/xinitrc
/var/X11R6/lib/xinit/xinitrc.fvwm2
/var/X11R6/lib/xinit/xinitrc.openwin
/var/X11R6/lib/xinit/xinitrc.twm
Arranque:

É bom sabermos como funciona o arranque. O primeiro programa que corre quando o Linux arranca além do Kernel é o init. O programa le o ficheiro /etc/inittab para saber quais são os requesitos do sistema.
Depois corre o script /etc/rc.d/rc.S para saber qual foi o "RunLevel" que o utilizador escolheu. ( Em seguida irei falar sobre o que sao os RunLevels). O rc.S prepara a memória virtual e monta a partição principal do sistema. Em seguida limpa alguns logs de certas directorias e inicia o Plug and Play, configura os periféricos PCMCIA, serial ports e por fim o System V init.

rc.S > é o script que inicia o sistema

rc.modules > acolhe os modulos do kernel tais como a placa de rede e outras coisas. Neste script há referência a outro script chamado rc.netdevice que também irá correr no momento do inicio do sistema, o rc.pcmcia, rc.serial que dá indicações quais as serial ports que estao a ser usadas e o rc.sysinit que recolhe informações do sistema V init scripts que depois será discutido em mais detalhe.

Runlevel scripts:

Como vimos na directoria /etc/rc.d/*.* existem alguns scripts que permitem a forma de como o utilizador quer que o sistema inicie. Por norma em Slackware, o sistema inicia-se em Nível 3 que é o chamado modo consola.

Descrição dos scripts:
rc.0 > Desliga a maquina
rc.4 > inicia a máquina em nivel 4, onde o utilizador entre automaticamente em modo grafico.
rc.6 > reinicia o PC.
rc.K > inicia o modo utilizador unico > runlevel 1 > Usado para fazer a recuperação do sistema.
rc.M > Modo multi-utilizador > O que o Slackware usa por defeito.

Runlevels 2, 3 e 4 quando iniciam, iniciam os serviços de rede.
Os scripts responsáveis são:

rc.inet1 > criado a partir do netconfig > Responsável pela configuração actual do PC.
rc.inet2 > Corre logo a seguir ao anterior e inicia os serviços básicos de rede.
rc.atalk > inicia os serviços AppleTalk
rc.httpd > Inicia o servidor Apache. Este script para iniciar tem de ser acompanhado pelas opções: start, stop ou restat >> Iniciar, parar, reiniciar.
rc.news > inicia um servidor de noticias.

----------

Ainda nesta directoria de temos outros scripts que podem ser muito úteis:
rc .gpm > Inicia o serviço que permite usa o rato, mesmo em modo consola.
rc.font > Adiciona a fonte usada por defeito na consola.
rc.local > Corre as aplicações/serviços de arranque. Reservado aos administrador. Por defeito nao está activo. Para o activar teremos de usar o comando chmod +x rc.local. Este comando será discutido mais à frente.

Em seguida Irei falar do Kernel e como se deve compilar.

O Kernel

O kernel é parte do sistema operativo e providencia acesso ao Hardawre e ao controlo de processos de sistema. O kernel contém suporte para os periféricos de Hardware. Por isso é sempre bom actualiazar-mos o Kernel.
O Slackware oferece mais de uma dezena de kernels já précompilados que podes saca-los do site com as drives especificas para o teu sistema.
Quando acabamos de instalar o Slackware nao há necessidade de compilar o kernel. Mas quando queremos fazer um upgrade, aí sim, é necessário compila-lo de forma a não haver necessidade de reinstalar o sistema operativo de novo. Além disso, a compilação do kernel é feita com o propósito de dar a conhecer ao kernel as especificações do Hardware que está na nossa maquina, para assim correr somente as drives necessárias no momento do boot.

O kernel que está ou nos sites do Slackware ou no cd/dvd são e têm o seguinte propósito:

Ficheiro Propósito
System.map O mapa do sistema para o kernel
bzImage A imagem actual do Kernel
config O código fonte de configuraçao do kernel

Para usar o Kernel copiamos o ficheiro System.map e o config paraa directoria /boot e a imagem do kernel para /boot/vmlinuz. A seguir corre o lilo que está em /sbin/lilo para instalar o novo kernel e claro reinicie a maquina.

Compilar o Kernel:

A pergunta é: "Deverei eu compilar o kernel no meu sistema?", pergunta feita pela maioria dos novos utilizadores de linux. A resposta na maioria das vezes é Talvez. Existem algumas instancias que sao necessárias para compilar o kernel. A maioria dus utilizadores pode usar um kernel pre-configurado para funcionar no sistema. Queres compilar o kernel para o teu sistema se queres fazer um upgrade do kernel. Qualquer pessoa que tenha um sistema SMP de certeza que quer compilar o kernel. Os utilizadores irão reparar que o sistema está mais rápido pois foi compilado para o processadores que estão a usar, o que oferece uma performance muito mais rentável.

Compilar o kernel não é uma tarefa difícil. O primeiro passo é ter a certeza que temos o código fonte no sistema. Ter a certeza que instalamos todos os pacotes da secção K, D especificamente o compilador de C (gcc), o make e o GNU binutils. Em geral é uma boa ideia instalar a série D dos pacotes de instalação caso queiras compilar o kernel para um sistema de desenvolvimento de software. Para fazer o download da última versão do kernel tens aqui. > http://www.kernel.org/mirrors

Parte prática:

Na consola fazer
# su -
Passwd:
# cd /usr/src/linux
A primeira coisa que aconselho é fazer o backup do ficheiro .config que está nessa directoria pois a seguir o mesmo será apagado sem aviso.
# make mrproper
Agora podemos entao configurar o kernel para o nosso sistema. Existem três formas de o configurar-mos:
# make config >>> ( modo de texto - Versão Q&A)
# make menuconfig >>> ( modo de texto com aparencia de um menu)
# make xconfig >>> (modo gráifico) <<<>

Os novos utilizadores podem achar o menuconfig um quanto simples. Aparece sempre uma descrição dos vários menus. Depois de configurar o kernel façam exit para sair do programa de configuração.
Agora prepara-te para a construção da árvore do código fonte.
# make dep
# make clean
O passo em aixo é o que realmente compila o kernel.
# make bzImage
Isto demora um bom bucado dependendo da rapidez da maquina. ( Lembro-me que no meu P2 demorei quase um dia)
Em seguida:
# make modules
Agora está quase a acabar..
# vm /boot/vmlinuz /boot/vlinuz.old
# cat arch/i386/boot/bzImage > /vmlinuz
# mv /boot/System.map /boot/System.map.old
# cp System.map /boot/System.map
E por fim
# make modules_install

Agora basta editar-mos o ficheiro de configuração do lilo em /etc/lilo.conf e adicionar as linhas do novo kernel, e comentar "#" as linhas do antigo kernel. Depois de fazer isso corra o lilo para usar o novo kernel no boot. /sbin/lilo -v

Reinicia o PC para usar o novo kernel
--------------------------------------------------------------------------------------------------------------------------------------
Usar os modulos do Kernel:

Os modulos do kernel são outro nome para o as drives que podem ser inseridos enquanto o kernel está a correr. Isto perite-nos que o kernel suporte outro tipo de HArdware sem que tenhamos de escolher outro kernel ou mesmo compila-lo.
Os modulos podem ser usados mesmo quando o sisema está a correr normalmente. Isto permite uma facilidade de fazer um upgrade das drives aos administradores. Novos modulos podem ser compilados, o antigo removido e adicionado um novo sem que o PC tenha de ser reiniciado. Para ver a lista de modulos usamos o comando:
# lsmod
Module Size Used by
parport_pc 7220 0
parport 7844 0 [parport_pc]


Como podemos observar aqui só tenho o modulo da porta paralela. PAra remover um módulo usa-se rmmod(1). OS modulos podem ser testados > modprobe.

Mais informações sobre os modulos podem ser enontrados nos comentários do ficheiro rc.modules.

A seguir irei falar das configurações basicas de rede.


Quando o Slackware inicia invoca o netconfig o qual rastrea três funções:
1. Pede-te o nome do computador e o domínio.
2. Dá-te a opção de escolheres a forma como queres configurar a tua placa de rede.
i. Static-IP
ii. DHCP
iii. Loopback
3. Depois testa a placa de rede de forma a ter a certeza que as informações dadas estão correctas.

Em 80% dos casos o netconfig configura correctamente a rede.
Atenção: Ler as o ficheiro de configuração por dois motivos:
1. Nunca se deve confiar num programa que autoconfigura um ou mais componentes do computador. Caso uses o SETUP deves confirmar se está tudo correcto.
2. Se estás a aprender Slackware, ler o ficheiro de configuração ajuda muito! Pelo menos ficas a saber como é que o ficheiro de configuração parece... Isso ajudar-te-á a resolver configurações incorrectas um dia mais tarde.

Para fazer o load dos modulos como referi anteriormente ele será feito automaticamente quando inicia o sistema com os scripts rc.modules e rc.hotplug.

Normalmente o ficheiro de configuração tem uma lista de TODAS as placas de rede PCI e ISA.
Executando /sbin/netconfig irá testar as placas que estão configuradas em rc.netdevice.

Configuração:

# ifconfig -a
eth0 Link encap:Ethernet HWaddr 00:A0:CC:3C:60:A4
UP BROADCAST NOTRAILERS RUNNING MULTICAST MTU:1500 Metric:1
RX packets:110081 errors:1 dropped:0 overruns:0 frame:0
TX packets:84931 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:114824506 (109.5 Mb) TX bytes:9337924 (8.9 Mb)
Interrupt:5 Base address:0x8400

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:2234 errors:0 dropped:0 overruns:0 frame:0
TX packets:2234 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:168758 (164.8 Kb) TX bytes:168758 (164.8 Kb)


Se usares o comando ifconfig localizado em /sbin/ifconfig com o sufixo -a, não mostra a interface eth0 que é onde iremos configurar o nosso IP.

Durante a configuração de rede existem duas formas de a fazer. A estática e a Dinâmica.
Como os nomes indicam na estática é atribuido um IP fixo e na dinâmica e usado o servidor DHCP.

DHCP > [ Dynamic Host Configuration Protocol ] <>

Cliente: Há algum servidor de DHCP livre na LAN?
Servidor: Sim, há. Estou aqui.
Cliente: Eu preciso de um IP.
Servidor: Podes ficar com o 192.168.10.10 durante 19200 segundos.
Cliente: Obrigado.

Disconnect

Cliente: Há algum servidor de DHCP na LAN?
Servidor. Há sim, estou aqui.
Cliente: Eu preciso de um IP. Da última vez que estive aqui usei o 192.168.10.10. Posso usa-lo outra vez?
Servidor: Sim podes. ( ou não. Podes usar o 192.168.10.12 em vez do anterior )
Cliente: Obrigado.

O cliente de DHCP no Linux está em /sbin/dhcpcd. Se leres o ficheiro /etc/rc.d/rc.inet1 com o teu editor de texto favorito, verás a referência do executavel a meio desse ficheiro.
Assim, se usares o DHCP ele irá atribuir todos os parâmetros necessários para a rede funcionar... IP, netmask, gateway, servidor DNS, etc...

Static IP ( IP Estático )

Caso queiras usar um IP fixo terás de editar o ficheiro /etc/rc.d/rc.inet1.conf

# Primary network interface card (eth0)
IPADDR[0]=""
NETMASK[0]=""
USE_DHCP[0]=""
DHCP_HOSTNAME[0]=""

Depois um pouco mais abaixo editar também o parâmetro GATEWAY=""

Em seguida é preciso editar o ficheiro /etc/resolv.conf de forma a ficar parecido a este:

# cat /etc/resolv.conf
nameserver 192.168.1.254
search clix.pt


Agora com o servidor DNS configurado devemos configurar também o ficheiro /etc/hosts de forma a ficar parecido ao seguinte:

# cat /etc/hosts
127.0.0.1 localhost locahost.localdomain
192.168.1.101 redtail
172.14.66.32 foobar.slackware.com


Agora testamos a rede:

# ping -c 1 store
PING store.slackware.com (69.50.233.153): 56 data bytes
64 bytes from 69.50.233.153 : icmp_seq=0 ttl=64 time=0.251 ms
1 packets transmitted, 1 packets received, 0% packet loss
round-trip min/avg/max = 0.251/0.251/0.251 ms

A rede wireless é invocada através do comando iwconfig. Caso uses a interface wireless, confirma que não estás a usar a interface eth0.
As configurações do wireless estão também no ficheiro rc.inet1.conf e podes editar em mais detalhe o ficheiro /etc/rc.d/rc.wireless.

# iwconfig eth0 essid "Slackware"
# iwconfig eth0 key XXXXXXXXXXXXXXXXXXXXXXXXXX
# iwconfig eth0 channel n

Não irei falar de como configurar o SMB/SAMBA/CIFS nem o NFS.
Quando for realmente necessário, eu escrevo um artigo a explicar em mais detalhe, já que são assuntos de administração avançada.

A seguir falarei então do como configurar o servidor X. O ambiente gráfico, que no caso do Slackware usa por defeito o KDE ou outros ambientes como o fluxbox, windowsmaker, Blackbox, etc.. A interface Gnome não é usada e penso que se fosse, encontrariamos variadissimos problemas de compatibilidade de software.

# iwconfig eth0 essid "Slackware"
# iwconfig eth0 key XXXXXXXXXXXXXXXXXXXXXXXXXX
# iwconfig eth0 channel n

Não irei falar de como configurar o SMB/SAMBA/CIFS nem o NFS.
Quando for realmente necessário, eu escrevo um artigo a explicar em mais detalhe, já que são assuntos de administração avançada.

A seguir falarei então do como configurar o servidor X. O ambiente gráfico, que no caso do Slackware usa por defeito o KDE ou outros ambientes como o fluxbox, windowsmaker, Blackbox, etc.. A interface Gnome não é usada e penso que se fosse, encontrariamos variadissimos problemas de compatibilidade de software.

0 comentários: