Minicurso: Configurações minuciosas para o seu desktop

Transcrição

Minicurso: Configurações minuciosas para o seu desktop
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

Documentos relacionados