Você está na página 1de 12

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/refresh-


packagekit.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 --type string --set /desktop/gnome/interface/font_name "Sans 9"


gconftool-2 --type string --set /desktop/gnome/interface/document_font_name "Sans 9"
gconftool-2 --type string --set /apps/nautilus/preferences/desktop_font "Sans 9"
gconftool-2 --type string --set /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.0-


1.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 gstreamer-


plugins-bad gstreamer-plugins-bad-extras gstreamer-ffmpeg gstreamer-plugins-ugly xine-
lib-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-fusion-
extras 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

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

...