Guia pós-instalação do Slackware
Introdução
Slacker lcavalheiro apresentando-se ao serviço, senhores.
Hoje eu trago uma novidade não muito fresquinha, mas que vai ser uma mão na roda para todos aqueles interessados no Slackware Linux: um guia prático e conciso do que fazer no pós-instalação dessa distro.
Para quem conhece a "fera", o Slack é a única distro que, após a instalação, deixa o usuário com uma senhora cara de nádegas olhando para uma tela preta, esperando uma interface gráfica que não vai vir.
Isso acontece porque o runlevel padrão da distro é 3, que no padrão init.d (o mais Unix-like e estável, ao contrário do SystemV e outras firulas que inventaram no mundo GNU/Linux), corresponde ao modo texto puro!
Muitos novatos tremem de medo quando precisam abrir o terminal para configurar alguma coisinha boba, imagina sobreviver ao primeiro boot do Slackão...
Este artigo pretende ser um guia com relação às configurações que precisam ser feitas APÓS a instalação do Slack. Não vou ensinar como instalar nada, já tem um monte de artigo aqui no VOL ensinando isso.
* Lembre-se: está é uma configuração pós-instalação, não a instalação de programas adicionais.
Este artigo, como enunciei, não pretende ser nada original: o que vou escrever aqui é um simples compêndio de tudo que um slacker já tem decorado para fazer tão logo acabe de instalar a distro, então, googlando, você vai achar um pedaço dessas informações aqui, um pedaço dessas informações ali, e assim vai.
Decidi compilar minhas memórias como uma forma de me proteger contra o alemão, aquele tal de Alzheimer, e como uma forma de compartilhar com a galera tudo isso que o "lixão", que eu chamo de memória, acumulou com o tempo.
No decorrer deste artigo, irei supor que você fez uma instalação FULL do Slackware. Se você não fez uma instalação FULL, recomendo instalar pelo menos o pacote para localização pt_BR do KDE, vai ajudar muito mais pra frente.
Configuração: Localização e Habilitando o kernel-generic
Primeiro passo pós-instalação: Configurar a localização do sistema
Antes de mais nada, acredito que você vá querer que seu Slackware funcione em bom português. É possível configurar a localização do sistema a partir do modo texto, e essa configuração acaba sendo "importada" pelas interfaces gráficas no momento em que você usa o startx pela primeira vez.
Isto é importante de salientar: Se você, no afã de sair da tela preta, lançou um startx logo de cara, os arquivos de configuração da sua interface gráfica estarão na localização padrão do Slackware, que é "en_US.ISO8859-1", e em alguns casos, você precisará traduzir na unha.
Então é mais fácil, simplesmente, configurar a localização antes de subir a interface gráfica pela primeira vez.
A localização do Slackware é configurada em dois arquivos do sistema, ambos na pasta /etc/profile.d, o "lang.sh" e o "lang.csh". Nesta altura do campeonato, você dispõe apenas do Vi para editar o arquivo, mas isso é muito bom: o Vi é um dos melhores editores de texto disponíveis para o GNU/Linux, ao lado do Emacs. Aprender a usá-lo é algo extremamente necessário - PRINCIPALMENTE quando estamos falando de Slackware.
Mãos à obra? Em primeiro lugar é preciso se tornar root, do contrário, não será possível realizar edição ou configuração nenhuma no Slackware. Por padrão, a distro não tem o sudo habilitado, então, vamos precisar do comando abaixo para assumir o root:
$ su -
Insira a senha do root, não a senha de seu usuário. Caso você já esteja logado como root, você pode simplesmente ignorar este passo.
Agora vamos editar o arquivo. Rode:
# vi /etc/profile.d/lang.sh
Aperte "i" para entrar no modo de edição, e comente todas as linhas (isto é, digite um "#" na frente delas) que contenham texto e já não estejam comentadas. Adicione estas linhas ao final do arquivo:
export LC_CTYPE=pt_BR.ISO8859-1
export LC_COLLATE=pt_BR.ISO8859-1
export LESSCHARSET=latin1
Eu recomendo usar o mapa de caracteres ISO8859-1 por questões de compatibilidade com o sistema da Redmond, o "Canonical Windows" (interpretação do autor). Se não houver este tipo de problema, altere a informação após o ponto para UTF-8.
Agora, vamos fazer uma gambiarra para poupar tempo. Precisamos inserir informações muito parecidas no "lang.csh", mas não queremos digitar isso tudo de novo, não é? Vamos ao exercício de "POG" (programação orientada à gambiarras) com o comando:
# cat /etc/profile.d/lang.sh | grep export | grep -v \# | sed -e "s/export/setenv/g" -e "s/\=/\ /g" >> /etc/profile.d/lang.csh
Este comando vai criar as seguintes linhas no final do arquivo /etc/profile.d/lang.csh:
setenv LC_CTYPE=pt_BR.ISO8859-1
setenv LC_COLLATE=pt_BR.ISO8859-1
setenv LESSCHARSET latin1
* Lembre-se: Eu estou usando o mapa de caracteres ISO8859-1, para UTF-8 as linhas vão ficar com UTF-8 após o ponto. Agora basta comentar as linhas que não queremos nesse arquivo. Rode:
# vi /etc/profile.d/lang.csh
E comente todas as linhas que não forem essas aí de cima. ;-)
Reinicie o computador para que as alterações tenham efeito.
Parabéns, seu Slackware já está localizado para pt_BR!
Ganhando velocidade: Habilitando o kernel-generic
Para quem não sabe, tio Pat (Patrick Volkerding) distribui duas versões do kernel Linux no Slackware: o kernel-huge e o kernel-generic.
O kernel-huge é o padrão por questões de compatibilidade, pois ele traz todos os drivers empacotados com o Slackware compilados como built-in, não como módulos. Isso permite que a inicialização reconheça uma pá de hardwares, mas faz com que a "pegada" de memória do kernel na RAM seja imensa, além de manter carregados módulos que não serão usados.
A solução para isso é habilitar o kernel-generic. Este kernel traz todos os drivers empacotados com o Slackware compilados como módulos, ou seja, configurados para serem carregados apenas se necessário. Isto significa que ele é mais rápido e mais adequado para o uso diário, embora um computador com 8 GB de RAM talvez não sinta a diferença. ;-)
Habilitar o kernel-generic não é uma questão de criar uma entrada no lilo.conf apenas, é preciso criar um disco RAM de inicialização para então configurar o lilo.conf. Ao contrário da fama da distro, desde o Slack 13.0, existe uma ferramenta semiautomática (você vai entender o por quê do semiautomática mais pra frente) para fazer essa configuração!
Vamos começar. Para criar o disco RAM de inicialização para uso com o kernel-generic, você precisa, também, passar quais módulos são extremamente essenciais para a inicialização do sistema e, portanto, devem ser carregados no arranque como se fossem built-in.
Do contrário, você não acessaria seu disco porque o módulo do ext4, por exemplo, não estaria carregado. ;-)
Para gerar o disco RAM de inicialização corretamente, rode o comando:
# /usr/share/mkinitrd/mkinitrd_command_generator.sh
Você vai ter uma saída parecida com esta:
#
# mkinitrd_command_generator.sh revision 1.45
#
# This script will now make a recommendation about the command to use
# in case you require an initrd image to boot a kernel that does not
# have support for your storage or root filesystem built in
# (such as the Slackware 'generic' kernels').
# A suitable 'mkinitrd' command will be:
mkinitrd -c -k 3.2.29 -f ext4 -r /dev/sdb2 -m usb-storage:ehci-hcd:usbhid:ohci-hcd:mbcache:jbd2:ext4 -u -o /boot/initrd.gz
A última linha é a mais importante. A ferramenta é semiautomática porque ela não cria o disco RAM de inicialização, mas diz ao usuário qual é o comando que cria o tal disco RAM apropriado para o seu computador.
Portanto, tudo que você precisa fazer é copiar a última linha e executá-la como comando, certo?
Sim e não! Você pode copiar o comando tal como ele aparecer para você, mas existe o jeito do preguiçoso para isso! Rode o comando:
# /usr/share/mkinitrd/mkinitrd_command_generator.sh | grep mkinitrd | grep -v command | /bin/bash -
Este comando de preguiçoso já vai criar automaticamente o arquivo /boot/initrd.gz, que é o disco RAM de inicialização que você precisa para usar o kernel-generic. Agora você precisa adicionar uma entrada no LILO para o kernel-generic. NÃO exclua a entrada referente ao kernel-huge, pois caso alguma coisa dê errado (principalmente se você usar o método do preguiçoso ;-), você terá como inicializar o sistema e corrigir a caquinha.
Só que eu sou preguiçoso ao extremo, e ao invés de pensar como a entrada no "lilo.conf" tem que ficar, eu rodo o comando:
# /usr/share/mkinitrd/mkinitrd_command_generator.sh -l /boot/vmlinuz-generic-3.2.29
Obs.: Substitua /boot/vmlinuz-generic-3.2.29 pelo arquivo correto do kernel-generic (que sempre vai ser /boot/vmlinuz-generic-algum número). Na dúvida, execute o comando que criou o disco RAM de inicialização, sem ser no modo preguiçoso, e veja qual é o número do parâmetro "-k" - este número tem que ser o mesmo do arquivo vmlinuz-generic a ser usado.
A saída desse comando é nada mais, nada menos, do que as linhas que preciso adicionar ao lilo.conf para habilitar o kernel-generic no boot. Vai ser algo parecido com isto aqui:
image = /boot/vmlinuz-generic-3.2.29
initrd = /boot/initrd.gz # add this line so that lilo sees initrd.gz
root = /dev/sda1
label = Slackware
read-only
Só que eu sou preguiçoso demais, e por isso mesmo, eu rodo aquele comando que me gerou estas linhas assim:
# /usr/share/mkinitrd/mkinitrd_command_generator.sh -l /boot/vmlinuz-generic-3.2.29 >> /etc/lilo.conf
Dessa maneira as linhas são "automagicamente" adicionadas ao arquivo /etc/lilo.conf! Agora você precisa editar esse arquivo apenas para mudar a label do kernel-generic. Eu altero para Slack-Generic ou coisa assim, enquanto altero a entrada do kernel-huge (a pré-existente) para Slack-Huge.
Atualize seu LILO com:
# lilo
E reinicie seu computador, caso você já queira usar o kernel-generic.
Vamos ao próximo passo.
Configuração: Teclado e SlackPKG
Configurando o teclado corretamente no servidor X
O próximo passo já nos deixa bem perto da reta final deste artigo.
Vamos aprender a configurar DIREITO o teclado para pt_BR@ABNT2 sob o servidor X. Como os amigos sabem, não adianta nada editar o xorg.conf para configurar o teclado, porque o servidor X ignora as configurações ali presentes e configura o teclado "à moda Bangu".
Para resolver isso, você precisa adotar uma das duas soluções a seguir:
"Matar" o reconhecimento automático de hardware pelo servidor X: Esse é o jeito tradicional e mais Unix-like. Você diz ao servidor X que simplesmente é para ignorar o que ele acha que tem que fazer e é pra fazer o que você quer que seja feito.
Isso pode atrapalhar na montagem automática de dispositivos, como Pendrive, fones de ouvido USB e etc, mas é o jeito tradicional de fazer a coisa. O crédito desta solução pertence ao finado Irado, já que esta informação, eu chupinhei diretamente de uma dica que ele postou aqui no VOL e que eu vou transcrever (isto é, copicolar) para facilitar a leitura.
A dica original está neste link:
Experimentei todas as dicas aqui do VOL, além de algumas dezenas das espalhadas pela internet inteira; nenhuma funcionou e eu não conseguia usar o teclado abnt2/pt_br no X do Slackware 13 recém instalado.
Depois de muito perambular, encontrei dicas separadas que, fazem com que o teclado funcione, no site do Xorg mesmo, mas estão tão ocultas e, voltando lá, não as encontro mais (princípio alemão/saltense: "Se difícil também dá, não há porque facilitar").
1. Faça tudo como root:
# X -configure
2. Será criado o arquivo /root/xorg.conf.new, que você pode mover para /etc/X11/xorg.conf, editando-o a seguir. Acrescente no início do arquivo (acho que pode ser em qualquer lugar):
Option "AutoAddDevices" "False"
Option "AllowEmptyInput" "False"
EndSection
3. Depois pesquise o item de Keyboard, editando-o. No original está assim:
Section "InputDevice" Identifier "Keyboard0" Driver "kbd" EndSection
Então, após o "Driver kbd", acrescente estas linhas:
Option "XkbModel" "abnt2"
Option "XkbLayout" "br"
Option "XkbVariant" "abnt2"
Option "XkbOptions" "abnt2"
4. O item completo fica assim:
Identifier "Keyboard0"
Driver "kbd"
Option "XkbRules" "xorg"
Option "XkbModel" "abnt2"
Option "XkbLayout" "br"
Option "XkbVariant" "abnt2"
Option "XkbOptions" "abnt2"
EndSection
Pronto. Seu teclado abnt2/pt_br (no Slackware 13.0 está funcionando direitinho :). Divirtam-se.
P.S.: Pode ser que funcione para outras distribuições, mas.. é questão de se experimentar!
Valeu, mestre Irado.
Usar o modo GNU/Linux "firulento" para resolver o problema: Como o Irado ressaltou na dica original, algumas configurações no GNU/Linux são feitas visando complicar sem necessidade. Para fazer a configuração do jeito "GNU/Linux like!, é preciso criar um arquivo de configuração em /etc/xorg.conf.d, contendo as instruções sobre o teclado.
Eu costumo usar este segundo meio porque não mata o reconhecimento automático de Hardware pelo servidor X, o que é inconveniente na hora de plugar mídias removíveis, mas é cômodo para quem tem um fone de ouvido USB como o meu. ;-)
Este método é um pouco mais simples. Como root, rode o comando:
# cp /usr/share/X11/xorg.conf.d/90-keyboard-layout.conf /etc/X11/xorg.conf.d/90-keyboard-layout.conf
E altere as linhas "Option" "XkbLayout", "Option" "XkbVariant" e "Option" "XKBOptions" deste arquivo, para que elas tenham este conteúdo:
Option "XkbVariant" "abnt2"
Option "XkbOptions" "abnt2"
Salve o arquivo, e seu teclado já estará em pt_BR, não importa a interface gráfica que você venha a usar. Caso seu teclado seja padrão americano, simplesmente não altere o arquivo em nada.
Teclado configurado para o X, vamos para a próxima página.
Configurando o SlackPKG
Presente no Slackware desde a versão 13.0, o slackpkg é uma ferramenta que permite sincronizar a instalação da distro com um espelho da distribuição. Sincronizar é a palavra chave aqui: o slackpkg irá fazer donwgrades se necessário para que a versão do pacote instalada no computador seja exatamente a mesma daquela encontrada no espelho.
Dito isso, é preciso dizer mais duas coisas sobre o slackpkg:
- Ele não é um gerenciador de pacotes como o apt-get, das distribuições Debian-like. Ele apenas se interessa pelos pacotes que você encontraria no CD de instalação do Slackware;
- Ele não dá acesso a repositórios de terceiros.
Para usar o slackpkg é preciso, antes de mais nada, configurar um espelho. Abra o arquivo /etc/slackpkg/mirrors com o comando:
# vi /etc/slackpkg/mirrors
Você vai ver uma montanha de linhas comentadas (isto é, iniciando com um "#"), a maioria delas correspondendo a um espelho existente do Slackware. Outras linhas são simples comentários, então, não nos ocupemos com estas, mas sim com aquelas.
Os espelhos são agrupados de acordo com a versão, isto é, você vai encontrar sob o título Slackware-14.0 todas os espelhos dessa versão do Slack. Existe ainda o grupo slackware-current, que são os espelhos que contém os pacotes oficiais mais atuais disponíveis para a distro.
Escolha um espelho de sua preferência e descomente um E APENAS UM. Você pode escolher entre usar um espelho da versão atual da distribuição ou um espelho do slackware-current, contendo pacotes mais atuais, mas você não pode ter mais de um espelho descomentado nesse arquivo. Se você descomentar mais de uma linha, o slackpkg irá chiar, dizendo que só pode trabalhar com um espelho por vez.
Os principais comandos do slackpkg, são:
- slackpkg update → Serve para pegar a lista dos pacotes disponíveis no espelho configurado;
- slackpkg install-new → Serve para instalar os pacotes disponíveis no espelho, mas que ainda não foram instalados no computador;
- slackpkg upgrade-all → Serve para atualizar os pacotes instalados no computador com os pacotes disponíveis no espelho, MESMO QUE ISSO SIGNIFIQUE UM DOWNGRADE;
- slackpkg clean-system → Serve para desinstalar quaisquer pacotes instalados no computador que não estejam listados no espelho selecionado;
- slackpkg blacklist → Envia automaticamente um ou mais pacotes para a blacklist (ver abaixo).
A principal função do quarto comando, é limpar o sistema automaticamente de quaisquer pacotes instalados por fora e que, porventura, estejam causando algum problema.
Além de configurar um espelho, você pode querer configurar uma blacklist, isto é, pacotes que o slackpkg irá ignorar em suas verificações. Para isso, coloque os nomes de todos os pacotes que você pretende que o slackpkg ignore no arquivo
/etc/slackpkg/blacklist.
O bom é que este arquivo aceita expressões regex, então, uma entrada como: [0-9]+SBo
Colocaria na blacklist todos os pacotes que você venha a instalar usando um SlackBuild.
Suporte multilib no Slackware 64 bits - Inicialização automática
Opcional: Habilitando o suporte a multilib no Slackware 64 bits
O Slackware 64 bits é a única das grandes distribuições que não possui um suporte multilib (isto é, aos programas e bibliotecas exclusivos de 32 bits) pronto. Isso, por um lado, gera um sistema mais ágil e com pegadas de memória menores, mas gera algumas dores de cabeça (nomeadamente Wine e Skype) por conta de programas, ou bibliotecas que são distribuídas apenas em 32 bits.
O Slack 64 bits é distribuído pronto para o multilib, e cabe ao seu usuário decidir se o habilita ou não. Para habilitar o suporte ao multilib, é preciso realizar os seguintes passos:
1. "Blacklistar" os pacotes multilib.
Isso é importante para que o slackpkg não sobrescreva os pacotes necessários para habilitar o multilib ou, os desinstale no caso de um clean-system. Para isso, edite o /etc/slackpkg/blacklist e adicione ao arquivo:
2. Obter os pacotes multilib.
Rode os comandos como root:
# SLACKVER=14.0 # Nota: altere este número para a sua versão do Slackware: 13.0, 13.1, etc.
# mkdir multilib
# cd multilib
# lftp -c "open http://taper.alienbase.nl/mirrors/people/alien/multilib/ ; mirror ${SLACKVER}"
# cd ${SLACKVER}
# upgradepkg --install-new *.t?z slackware64-compat32/*-compat32/*.t?z
3. Adicionar as bibliotecas de 32 bits.
Este é o passo mais enganoso. É preciso converter os pacotes certos para a versão multilib, não apenas instalar os pacotes de 32 bits. Infelizmente, para realizar esse processo, é preciso dispor da ISO do Slackware 32 bits da mesma versão instalada no seu computador.
Supondo que você tenha a ISO (ou o DVD, tanto faz), rode os comandos abaixo como root:
# mkdir ~/slackiso ~/slackmultilib
# mount -o loop /caminho/para/imagem.iso ~/slackiso
# massconvert32.sh -i ~/slackiso -d ~/slackmultilib
Substitua /caminho/para/imagem.iso pela localização real da ".iso" do Slackware 32 bits. Quem estiver usando o DVD no lugar do arquivo ".iso", precisará alterar a segunda linha destes comandos de acordo. Instale as bibliotecas já convertidas com o comando:
# upgradepkg --install-new ~/slackmultilib/*/*.t?z
E pronto, seu Slackware 64 bits agora está com o multilib ativado!
Instalando pacotes 32 bits no Slackware 64 com multilib ativado: Simplesmente, instale normalmente. ;-)
Compilando programas 32 bits no Slackware 64 com multilib ativado: Este caso não é tão trivial quanto o anterior. Rode previamente o comando:
# . /etc/profile.d/32dev.sh
para alterar as variáveis de ambiente de um modo que permita a compilação em 32 bits.
Esta alteração permanecerá ativa enquanto você estiver logado (caso você atenha rodado este comando em modo texto), ou até você fechar a janela do terminal (caso você já tenha iniciado o servidor X).
Notas importantes para a compilação no Slackware 64 com multilib
1. A variável ARCH deve ser definida como x86_64 sempre, mesmo que você esteja a compilar um programa 32 bits. Se você estiver usando um SlackBuild, passe essa informação como parâmetro pro comando assim:
# ARCH=x86_64 ./exemplo.SlackBuild
2. Ainda sobre SlackBuilds, altere no script a linha:
LIBDIRSUFFIX="64"
Para (caso esta linha exista):
Após este processo todo, reinstale os drivers NVIDIA ou ATI proprietários, caso você os use. Reinstale-os normalmente, não como um pacote de 32 bits!
Para finalizar, vou passar a configuração de runlevel e a bibliografia recomendada para quem deseja ser um Slacker.
Inicializando em modo gráfico automaticamente
Para inicializar em modo gráfico, edite, mais uma vez como root, o arquivo /etc/inittab. Neste arquivo, encontre a seguinte linha:
id:3:initdefault:
E a altere para:
Com isso, a partir do próximo boot, seu Slackware vai iniciar no modo gráfico automaticamente.
Conclusão
Prezados, com isso eu termino este Guia de Pós-Instalação do Slackware.
Tenha em mente que este material não pretende ensinar como instalar Conky, Compiz, nem nada do gênero, mas apenas configurar o essencial do seu Slack, usando as ferramentas disponibilizadas por uma instalação Full e permitir que você "sobreviva" ao primeiro boot.
Se você quiser se aprofundar no Slackware, ou deseja instalar pacotes adicionais, recomendo que visite:
- http://docs.slackware.com/start - Slackware Documentation Project, principal documentação da distribuição na Internet. Tem vários manuais e leituras importantes;
- http://www.slackbuilds.org - SlackBuilds, fonte de uma quantidade imensa de programas confiáveis que usam um script de configuração automática para compilar e criar um pacote para o seu sistema;
- http://slackbook.org/ - a Bíblia do GNU/Linux, digo, do Slackware;
- http://www.vivaolinux.com.br - obviamente;
- Manpages do Vi e do links - estes dois sempre vão te salvar no Slackware.
Divirtam-se com o brinquedo novo, que eu vou dormir (coisa que não faço desde o ano novo)...
Fonte: http://www.vivaolinux.com.br/artigo/Guia-pos-instalacao-do-Slackware/?pagina=4