Minicurso: Configurações minuciosas para o seu desktop Fedora APOSTILA - Latinoware 2008 - Luís Felipe B. Marzagão (Duli) out/2008 OBS: Material resumido, cujo uso é demanda o acompanhamento das explicações verbais.
1. Antes de começar Alguns pressupostos necessários para facilitar a manipulação das configurações do sistema.
1.1. Terminal O terminal é a ferramenta mais poderosa para executar os comandos e ter acesso às informações de sucesso ou de erro. Por meio do terminal é possível configurar quase o sistema inteiro. É muito difícil conhecer o sistema a fundo sem ter contato com o terminal. No GNOME, um pacote importante é o nautilus-open-terminal, que permite o acesso ao terminal de forma prática e rápida por meio do botão direito do mouse. Para instalá-lo: yum install -y nautilus-open-terminal
Após a instalação, fazer logout e login novamente para ter acesso ao terminal via botão direito do mouse. No Fedora, o unix shell padrão é o bash (bourne again shell). Portanto, quando se abre um terminal, tem-se à disposição para a entrada de comandos o bash. Outra forma de abrir o terminal é apertando ALT+F2 e digitando: gnome-terminal ou xterm. Kit básico de sobrevivência no terminal: ll (ou ls -l) = Lista os arquivos da pasta atual (LiSt). Com a opção -h o tamanho é mostrar em bytes, kilobytes, megabytes etc. ll -a = Lista os arquivos da pasta, inclusive ocultos (arquivos ou pastas que começam com um ponto '.'). cp = Copia arquivos (CoPy). Ex.: cp /home/duli/texto.txt /home/duli/texto.txt.orig mv = Move ou renomeia arquivos (MoVe). rm = Apaga arquivos (ReMove). Com as opções -rf não faz perguntas e apaga subpastas (usar com cautela). cd = Muda de pasta (Chande Directory). Se usado sem argumentos retorna para a pasta pessoal (home ou ~). cd .. = Muda para a pasta mãe. cd ../.. = Muda para pasta mãe da pasta mãe (e assim por diante). pushd = Muda de pasta e armazena o nome da pasta anterior, para posterior uso pelo popd.
popd = Retorna à pasta armazenada por meio do comando pushd. df -Th = Mostra o espaço livre no disco e os tipos de partições (Disk Free). du -h = Mostra o espaço usado pela pasta atual e arquivos. du -hs = Mostra apenas um resumo (Summary) do espaço usado pela pasta atual. free -m = Mostra a memória livre (RAM e Swap) em Megabytes. less = Exibe o conteúdo de um arquivo, com possibilidade de rolagem (é um "more" melhorado). cat = Concatena arquivos e mostra o resultado. É uma forma rápida de exibir o conteúdo de um arquivo. file = Mostra qual o tipo de arquivo. Ex.: file amanhecer.jpg ln = Cria links para arquivos o pastas (LiNk). ln -s /home/duli/foto.jpg photo.jpg man ou info = Exibe o manual do comando. "/" procura e "n" repete a procura. Ex.: man cp. grep = Mostra as linhas que se equiparam a um padrão (regular expressions). Ex.: grep 'enabled=1' /etc/yum.repos.d/livna.repo printenv ou set = Mostra as variáveis de ambiente.
1.2. Sudo Muitos usuários novos em Linux cometem um erro grave que é usar o sistema o tempo inteiro como root. Pensa-se que é melhor já fazer o login como "root", para não experimentar restrições permissões. Trata-se de um equívoco. O ideal é usar o sistema como usuário normal e somente quando necessário deve-se tornar root com o comando "su -" ou "su --login". Se a idéia é apenas executar um comando ou alguns, deve-se usar o "sudo". (OBS: 'su' vem de "substitute", ou seja, substituir o usuário. O traço ao lado do comando significa que as variáveis de ambiente do usuário substituído, inclusive o PATH, serão usadas. Isso facilita a vida quando se está executando comandos como root.) Exemplos: su --login = Torna-se root mediante o fornecimendo da senha do root. su - = Idem comando anterior. su - duli = Torna-se o usuário duli, com as variáveis de ambiente dele. su duli = Torna-se o usuário duli, mas sem as variáveis de ambiente dele. sudo -u duli = Executar o comando como se fosse o usuário duli. Ex.: sudo -u duli cp /home/duli/texto.txt /home/duli/texto.txt.orig sudo = Executa o comando como se fosse o usuário root: Ex.: sudo yum remove firefox. (OBS: o usuário precisa estar especificado no arquivo /etc/sudoers)
Acrescentando seu usuário ao arquivo /etc/sudoers: Antes de editar o arquivo, é preciso mudar as permissões dele, para que ele possa ser alterado. Portanto: chmod +w /etc/sudoers
Acrescenta-se a seguinte linha: duli ALL=(ALL) NOPASSWD:ALL
Isso não exigirá a senha ao executar o comando. Ex.: sudo yum install firefox. Depois, para que funcione, deve-se retirar a permissão de escrita do arquivo: chmod -w /etc/sudoers
Dica: Uma forma mais rápida, que não envolve a necessida de alteração das permissões do arquivo: echo "$(logname) ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers
1.3. Gerenciando pacotes (Adicionando e Removendo programas) Deve-se evitar ao máximo a instalação de programas manualmente, fora dos repositórios oficiais ou recomendados. Portanto, a melhor forma é sempre usar o yum ou alguma interface gráfica para ele, como o Adicionar/Remover Programas ou o Yumex. No terminal, a manipulação do yum é fácil e intuitiva: yum list = Lista todos os pacotes de todos os repositórios habilitados yum list | grep -i firefox = Lista todos os pacotes, mas somente a linha que contém a expressão firefox será exibida. yum info fiferox = Mostra informações sobre o pacote firefox. yum install firefox = Instala o pacote firefox. yum remove firefox = Remove o pacote firefox. yum grouplist = Lista quais as instalações em grupo disponíveis. yum groupinstall "Servidor Web" = Instala todos os pacotes do grupo servidor web. yum update -y = Atualiza o sistema e responde "sim" para todas as perguntas. yum update -y firefox = Atualiza apenas o pacote firefox e responde sim para as perguntas.
Interrompendo o plugin refresh-packagekit para o yum (facilita a operação do yum via terminal): Edite o arquivo de configuração do plugin e marque a opção "enabled" como "0": gedit /etc/yum/pluginconf.d/refresh-packagekit.conf enabled=0
Dica: para fazer isso de forma mais rápida e prática: sudo sed -i "s/enabled=1/enabled=0/g" /etc/yum/pluginconf.d/refreshpackagekit.conf
1.4. Gerenciando serviços
chkconfig --list = Lista os serviços habilitados e desabilitados e os respectivos runlevels. chkconfig --list iptables = Lista o estado do serviço iptables nos runlevels. chkconfig iptables off = Desliga o iptables no runlevel atual. chkconfig iptables off --level 35 = Desliga o iptables nos runlevels 3 (texto) e 5 (gráfico). service iptables stop = Interrompe o serviço iptables. service iptables start = Inicia o serviço iptables. service --status-all = Mostra o estado atual de todos os serviços.
2. Configurações 2.1. GNOME mais agradável: Tamanho das fontes Sistema > Preferências > Visual e Comportamento > Aparência > Fonte ou, por exemplo, no terminal: gconftool-2 gconftool-2 gconftool-2 gconftool-2
--type --type --type --type
string string string string
--set --set --set --set
/desktop/gnome/interface/font_name "Sans 9" /desktop/gnome/interface/document_font_name "Sans 9" /apps/nautilus/preferences/desktop_font "Sans 9" /apps/metacity/general/titlebar_font "Sans Bold 9"
Como navegar pelas configurações do desktop GNOME: yum install -y gconf-editor gconf-editor
2.2. GNOME mais agradável: Gerenciador de arquivos em uma janela apenas e modo lista Uma janela só: Sistema > Preferências > Pessoal > Gerenciamento de Arquivos > Comportamento > Maque a opção "Sempre abrir em janelas de navegador ou, no terminal: gconftool-2 --set --type bool /apps/nautilus/preferences/always_use_browser true
Arquivos na forma de lista:
Sistema > Preferências > Pessoal > Gerenciamento de Arquivos > Ver novas pastas usando > Visão em Lista ou, no terminal: conftool-2 --set --type string /apps/nautilus/preferences/default_folder_viewer "list_view"
2.3. GNOME mais agradável: Instalando ícones Baixar o pacote .tar.bz2: Exemplo: http://www.gnome-look.org/ Sistema > Preferências > Visual e Comportamento > Aparência > Instalar Selecionar o pacote de ícones baixado. Dica: Ou, simplesmente descompacte o pacote em /home/duli/.icons: tar jxvf /home/duli/Download/Vista-Inspirate_1.0-gnome.tar.bz2 -C /home/duli/.icons/
2.4. Link para a pasta "Área de Trabalho"
ln -s ~/"Área de Trabalho"/ ~/Desktop
2.5. Pacotes de compatibilidade Alguns programas são compilados com versões mais antigas do GCC e precisarão das bibliotecas de compatibilidade para funcionar: yum install -y compat-libstdc++-33 compat-libstdc++-296
2.6. Plugin Flash Player para Firefox Pacotes de suporte:
yum install -y nspluginwrapper.{i386,x86_64} libflashsupport.i386
Instalar o repositório da Adobe: rpm -Uvh http://linuxdownload.adobe.com/adobe-release/adobe-release-i386-1.01.noarch.rpm
Instalar o plugin do flash player: yum install -y flash-plugin
Registrar o plugin flash player no firefox: mozilla-plugin-config -i -g -v Reiniciar o firefox.
2.7. Codecs Para media players baseados no gstreamer e no xine: Instalar o repositório Livna: rpm -Uhv http://rpm.livna.org/livna-release-9.rpm
Instalar os pacotes dos codecs: yum install -y gstreamer gstreamer-plugins-base gstreamer-plugins-good gstreamerplugins-bad gstreamer-plugins-bad-extras gstreamer-ffmpeg gstreamer-plugins-ugly xinelib-extras xine-lib-extras-nonfree xine-lib-pulseaudio
Para o mplayer e derivados (como kplayer): Pacotes de compatibilidade: yum install -y compat-libstdc++-33 compat-libstdc++-296
Download e instalação do pacote rpm com os codecs para mplayer: wget ftp://ftp.projetofedora.org/mplayer-codecs-all-20071007-1.i386.rpm yum localinstall -y --nogpgcheck mplayer-codecs-all-20071007-1.i386.rpm Caso haja problemas com o SELinux:
chcon -t textrel_shlib_t /usr/lib/codecs/*
VLC (não precisa de codecs instalados separadamente): yum install -y vlc
2.7. Compiz-fusion - Efeitos 3D para a área de trabalho Uma vez habilitada a aceleração 3D da placa de vídeo, instalar os seguintes pacotes: No GNOME: yum install ccsm emerald-themes compizconfig-backend-gconf fusion-icon-gtk emerald compiz-fusion compiz-fusion-gnome libcompizconfig compiz-gnome compiz-bcop compiz compizconfig-python compiz-fusion-extras compiz-fusion-extras-gnome
No KDE: yum install ccsm emerald-themes compizconfig-backend-kconfig fusion-icon-qt emerald compiz-fusion libcompizconfig compiz-bcop compiz compizconfig-python compiz-fusionextras compiz-kde
2.8. Instalação local de pacotes com yum Caso haja a necessidade de se instalar um pacote rpm que não esteja em um repositório, pode-se usar o yum, que tentará resolver as dependências. Esse procedimento não é recomendado pois ignora a segurança da assinatura do pacote: yum localinstall --nogpgcheck nomedopacote
2.9. Instalando a plataforma Java (jre) Download do pacote binário (Linux Self-Extraction file): http://java.com/en/download/manual.jsp Instalar pacotes de compatibilidade: yum -y install compat-libstdc++-33 compat-libstdc++-296
Permitir execução do arquivo: chmod +x jre-6u10-linux-i586.bin
Executar o binário, que irá descompactar o conteúdo: ./jre-6u10-linux-i586.bin
(OBS: O ponto "." e a barra significam o mesmo que digitar o diretório atual, como em "$PWD"/, para que o bash saiba que o arquivo a ser executado está no diretório atual e não em algum dos diretórios especificados na variável "$PATH") Mover a pasta descompactada para /opt: mv jre1.6.0_10/ /opt
Criar um link em /usr/lib/jvm (para que o utilitário system-switch-java possa alternar as versões do java): mkdir -p /usr/lib/jvm /bin/ln -s /opt/jre1.6.0_10 /usr/lib/jvm/jre-1.6.0u10-sun-i586
Configurar o java recém instalado como uma "alternativa" para o executável "java": alternatives --install /usr/bin/java java /usr/lib/jvm/jre-1.6.0u10-sun-i586/bin/java 18000 alternatives --auto java
Para conferir se foi instalada corretamente a alternativa: alternatives --display java e java -version
Quando instalar uma outra versão de java na pasta /opt, repetir o procedimento alterando apropriadamente o nome das pastas e, depois, para alternar entre as versões do java: yum install -y system-switch-java system-switch-java
Adicionando o plugin java para firefox como uma alternativa: alternatives --install /usr/lib/mozilla/plugins/libjavaplugin.so libjavaplugin.so /usr/lib/jvm/jre-1.6.0u10-sun-i586/plugin/i386/ns7/libjavaplugin_oji.so 18000 alternatives --auto libjavaplugin.so
Para instalar o plugin open source para firefox: yum install -y java-1.6.0-openjdk-plugin
3. Configurando hardware Lugares para procurar: Placa de vídeo: http://xorg.freedesktop.org/wiki/Projects/Drivers?action=show&redirect=VideoDrivers Placa de som: http://linux-sound.org/hardware.html Impressora: http://www.linuxfoundation.org/en/OpenPrinting/Database/DatabaseIntro Scanner: http://www.sane-project.org/cgi-bin/driver.pl Wireless: http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/ Identificando o hardware e informações: lspci = Mostra a lista dos dispositivos PCI. A opção -v aumenta o nível de detalhes. lsusb = Mostra informações sobre dispositivos USB. lshw e lshw-gui = Mostra a lista completa de hardware em diversos formatos (é preciso instalar: yum install lshw lshw-gui) cat /proc/cpuinfo = Informações sobre o processador dmidecode | less = Exibe as informações da tabela DMI do computador (System Management BIOS). lsmod = Mostra o status dos módulos. modprobe = Adiciona ou remove módulos. modinfo = Mostra informações sobre o módulo.
3.1. Nvidia: aceleração 3D OBS: Não existe suporte para as placas nvidia legacy ou 96xx no Fedora 9, em razão da nova versão do X11 Identificar a placa: lspci | egrep -i '(vga|display)'
Atualizar o kernel:
yum update -y kernel
Reiniciar: init 6
Instalar o repositório Livna (futuramente rpmfusion): rpm -Uhv http://rpm.livna.org/livna-release-9.rpm
Instalar o pacote akmod-nvidia (o driver é compilado automaticamente sempre que necessário - update do kernel): yum install -y akmod-nvidia
Reiniciar o computador. OBS: Para compilar o módulo sem reiniciar: akmods --kernels $(uname -r)
E para habilitar o driver: nvidia-config-display enable service nvidia restart
Para verificar se a aceleração está habilitada, deve aparecer "Yes": glxinfo | grep direct
3.2. ATI: Aceleração 3D Não há ainda drivers proprietários da ATI para Fedora 9, em razão da versão do Xorg. Portanto, só fazendo um downgrade do Xorg, o que não é recomendável. Os drivers opensource já funcionam suficientemente bem, mas sem aceleração 3D. A solução é reclamar na ATI/AMD ou então comprar uma placa da Nvidia ou da Intel.
3.3. Webcams Descubra qual a webcam com o lsusb (anote o ID). Caso não haja suporte nativo, tentar o gspca:
rpm -Uhv http://rpm.livna.org/livna-release-9.rpm yum install -y akmod-gspca
Informações sobre os chipsets suportados pelo driver genérico gspca: http://mxhaard.free.fr/spca5xx.html (descobrir ID com o lsusb).
3.4. Wireless Descubra qual a placa com lspci ou lsusb. Caso não haja suporte nativo, verificar qual o driver apropriado e tentar: rpm -Uhv http://rpm.livna.org/livna-release-9.rpm yum install -y akmod-madwifi ou akmod-rt2860
DICA: Uma vez instalado o driver, ver se o módulo respectivo está sendo carregado automaticamente com o comando lsmod. Em caso positivo, deixar o NetworkManager cuidar de todo o resto.
4. Criando seus próprios scripts
4.1. Conceitos básicos Arquivo de texto puro. Os comandos são idênticos àqueles executados no terminal. Começa com #!/bin/bash, caso se queira usar o bash como interpretador. Tudo que vem escrito após # é ignorado (bom para comentários). "set -x" dentro do script aciona o modo de depuração (debug). "bash -x nomedoscript" executa o script no modo de depuração (debug). Barras "\" podem ser usadas para tornar a leitura mais agradável. Comandos executados com sucesso em geral retornam um valor de retorno "0" (zero). Funções são admitidas. Arranjos são admitidos.
4.2. Exemplo prático Função: IsX86_64() { arch=$(uname -m) if [[ "$arch" == "x86_64" ]] ; then return 0 else return 1 fi } IsX86_64 if [[ "$?" == 0 ]] ; then echo "Arquitetura é x86_64" # comandos ... else echo "Arquitetura não é x86_64." arch=$(uname -m) echo "Trata-se de $arch" # comandos ... fi # Alterando arquivos de configuração # abrindo uma porta no firewall (iptables) echo '--port:6883:tcp' >> /etc/sysconfig/system-config-firewall service iptables restart # Desabilitando o firewall sed -i s/--enabled/--disabled/g /etc/sysconfig/system-config-firewall service iptables restart ...