Introdução ao GNU/LInux, Notas de estudo de Cultura
daniel-palin-2
daniel-palin-2

Introdução ao GNU/LInux, Notas de estudo de Cultura

269 páginas
50Números de download
1000+Número de visitas
100%de 0 votosNúmero de votos
Descrição
Introdução ao GNU/LInux
60 pontos
Pontos de download necessários para baixar
este documento
Baixar o documento
Pré-visualização3 páginas / 269
Esta é apenas uma pré-visualização
3 mostrados em 269 páginas
Esta é apenas uma pré-visualização
3 mostrados em 269 páginas
Esta é apenas uma pré-visualização
3 mostrados em 269 páginas
Esta é apenas uma pré-visualização
3 mostrados em 269 páginas

Nota de Copyright

O uso deste documento é regido pela licença GNU Free Documentation License, Versão 1.3 ou qual- quer outra publicada posteriormente, da Free Software Foundation. Uma cópia dessa licença pode ser lida no anexo D ou no página http://www.gnu.org/copyleft/fdl.html.

Todas as marcas e nomes registrados por terceiros mencionados durante o texto pertecem aos seus res- pectivos donos e são regidas por suas respectivas licenças.

Copyright (C) 2009 João Felipe Mitre, Luiz Fernando Lopes Rodrigues Silva.

Permission is granted to copy, distribute and/or modify this document

under the terms of the GNU Free Documentation License, Version 1.3

or any later version published by the Free Software Foundation;

with the Invariant Sections being annexes C and D,

no Front-Cover Texts, and no Back-Cover Texts.

A copy of the license is included in the section entitled "GNU

Free Documentation License".

O código fonte desse livro está hospedado em: http://code.google.com/p/introducaoaognulinux/

O código fonte é a versão do livro em desenvolvimento. Supostamente, deve conter conteúdo adicional que pode ou não ter sido revisado. A cada modificação significativa será disponibilizado um PDF.

iii

Introdução ao GNU/Linux

Esse livro surgiu com a necessidade de criar uma referên- cia sobre o GNU/Linux que pudesse ser distribuída para os alunos do curso de extensão “Introdução ao GNU/Linux” do Programa de Engenharia Química (COPPE/UFRJ) do ano de 2009.

Ele foi escrito para um público que nunca teve contato com o sistema operacional GNU/Linux, mas não para quem nunca teve contato com computadores.

Versão gerada em

16 de maio de 2009

Primeira Edição, versão 1.1

Autores

João Felipe Mitre jfmitre (at) gmail.com

Luiz Fernando Lopes Rodrigues Silva lflrsilva (at) gmail.com

Sumário

1 Introdução 1 1.1 Organização do Texto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

2 O GNU/Linux 4 2.1 O Sistema Operacional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.2 A História GNU/Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.3 Entendendo o Conceito de “Distribuição” GNU/Linux . . . . . . . . . . . . . . . . . . . . 5

2.3.1 As Principais Distribuições da Atualidade . . . . . . . . . . . . . . . . . . . . . . . 6 2.3.2 Qual é a Melhor Distribuição ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

2.4 Entendendo a Questão da Licença . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.5 Vantagens e Desvantagens do GNU/Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

3 Conceitos Básicos do GNU/Linux 16 3.1 O Sistema de Arquivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 3.2 Usuários e Grupos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 3.3 Permissões de arquivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 3.4 Tipos de Arquivos e A Estrutura de Diretórios . . . . . . . . . . . . . . . . . . . . . . . . 21

4 O Gerenciador de Janelas 27 4.1 Qual o Melhor Gerenciador de Janelas ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

5 O GNOME 31 5.1 O painel do GNOME . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 5.2 O gerenciador de arquivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 5.3 Opções de configuração do GNOME através do Ubuntu . . . . . . . . . . . . . . . . . . . 71 5.4 Conclusão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89

6 O KDE 91 6.1 O gerenciador de arquivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 6.2 Configurando o KDE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 6.3 Conclusão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96

vi

7 Os Programas do GNU/Linux 98 7.1 Criar, Editar e Ler Documentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98

7.1.1 Edição de Arquivo Texto Padrão . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 7.1.2 Edição de Documentos Formatados . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 7.1.3 Editores de LATEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 7.1.4 Visualização e Edição de PostScript e PDF, entre outros . . . . . . . . . . . . . . . 104 7.1.5 Edição de Planilhas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 7.1.6 Edição de Apresentações . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 7.1.7 Outros Arquivos de Documentos e Programas . . . . . . . . . . . . . . . . . . . . . 107

7.2 Aplicativos de Internet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 7.2.1 Navegar Pelas Páginas da Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 7.2.2 Receber e Enviar e-Mails . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 7.2.3 Aplicativos de Bate-Papo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 7.2.4 Compartilhar Arquivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111

7.3 Programas Multimídia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 7.3.1 Players de Vídeo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 7.3.2 Players de Música . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 7.3.3 Editores de Vídeo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 7.3.4 Editores de Imagens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 7.3.5 Editores de Imagens Vetoriais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 7.3.6 Visualizadores de Imagens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 7.3.7 Gerenciamento de Câmeras Fotográficas . . . . . . . . . . . . . . . . . . . . . . . . 118

7.4 Gerenciamento de Arquivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 7.4.1 Compactadores de Arquivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 7.4.2 Programas para Gravação de CD/DVD . . . . . . . . . . . . . . . . . . . . . . . . 119

7.5 Programação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 7.5.1 Ambiente de Desenvolvimento Integrado . . . . . . . . . . . . . . . . . . . . . . . . 120 7.5.2 Desenho de Interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 7.5.3 Comparação entre Dois Arquivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 7.5.4 Desenvolvimento Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122

7.6 Aplicativos Científicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 7.7 Jogos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 7.8 Outros programas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 7.9 Utilização de Programas Windows no GNU/Linux . . . . . . . . . . . . . . . . . . . . . . 126

8 Utilizando o Terminal 128 8.1 Considerações preliminares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 8.2 Arquivos fundamentais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 8.3 Comandos básicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132

8.3.1 Comando ls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 8.3.2 Comando clear . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 8.3.3 Comando cp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134

vii

8.3.4 Comando mv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 8.3.5 Comando rm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 8.3.6 Comando mkdir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 8.3.7 Comando cd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 8.3.8 Comando man . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136

8.4 Comandos para leitura de arquivos texto . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 8.4.1 Comando cat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 8.4.2 Comando head . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 8.4.3 Comando tail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 8.4.4 Comandos more e less . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137

8.5 Comandos para compactação e descompactação de arquivos . . . . . . . . . . . . . . . . . 137 8.5.1 Comando tar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 8.5.2 Comando gzip/gunzip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 8.5.3 Comando zip/unzip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139

8.6 Comandos com funções administrativas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 8.6.1 Comando ifconfig . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 8.6.2 Comando su . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 8.6.3 Comando shutdown . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 8.6.4 Comando exit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 8.6.5 Comando passwd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 8.6.6 Comando lspci e lshw . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 8.6.7 Comando sudo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141

8.7 Comandos de SSH/SCP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 8.7.1 Comando ssh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 8.7.2 Comando scp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143

8.8 Outros comandos de terminal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 8.8.1 Comando echo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 8.8.2 Comando grep . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 8.8.3 Comando sed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 8.8.4 Comando ps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 8.8.5 Comando kill/killall . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 8.8.6 Comando locate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 8.8.7 Comando find . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 8.8.8 Comando vim . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 8.8.9 Comando startx . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 8.8.10 Comando df . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 8.8.11 Comando free . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147 8.8.12 Comando top . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147 8.8.13 Comando rsync . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147 8.8.14 Comando alias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149

viii

9 Administração de um Sistema GNU/Linux 152 9.1 Configurando a Rede . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152

9.1.1 DHCP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 9.1.2 IP Fixo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 9.1.3 ADSL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 9.1.4 Dial-Up . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160

9.2 Configurando Impressoras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 9.2.1 Impressora Local . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 9.2.2 Instalando uma Impressora Compartilhada em outra máquina . . . . . . . . . . . . 165

9.3 Instalação de Novos Programas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 9.3.1 O Gerenciador de Pacotes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 9.3.2 dpkg e apt-get . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186 9.3.3 Outros Gerenciadores de Pacotes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188 9.3.4 Instalando Binários de Fontes Externas . . . . . . . . . . . . . . . . . . . . . . . . 189 9.3.5 Instalando do Código Fonte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189

9.4 Gerenciando usuários do sistema pelo modo gráfico . . . . . . . . . . . . . . . . . . . . . . 190 9.5 Ajustando o idioma do sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195 9.6 Verificando os Logs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196

A Mensagem de Linus Torvalds 199

B Licenças para programas de computador 201

C GNU GENERAL PUBLIC LICENSE 204

D GNU Free Documentation License 216 1. APPLICABILITY AND DEFINITIONS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217 2. VERBATIM COPYING . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218 3. COPYING IN QUANTITY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218 4. MODIFICATIONS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219 5. COMBINING DOCUMENTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221 6. COLLECTIONS OF DOCUMENTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221 7. AGGREGATION WITH INDEPENDENT WORKS . . . . . . . . . . . . . . . . . . . . . . 222 8. TRANSLATION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222 9. TERMINATION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222 10. FUTURE REVISIONS OF THIS LICENSE . . . . . . . . . . . . . . . . . . . . . . . . . . 223 11. RELICENSING . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223 ADDENDUM: How to use this License for your documents . . . . . . . . . . . . . . . . . . . . 224

E Iniciando o Ubuntu 225

ix

SUMÁRIO x

F Instalação do GNU/Linux 231 F.1 Conceitos Preliminares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231 F.2 Ubuntu 9.04 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236 F.3 Outras distribuições . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247

G Perguntas e Respostas 249 G.1 Sinto falta de mais informação. Onde eu posso encontrar outros documentos? . . . . . . . 249 G.2 Alguma dica de programa? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250 G.3 Eu tenho uma placa de vídeo de última geração e os recursos 3D não funcionam. Qual é

problema? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251 G.4 Como obter informações de IP, Máscara de Rede, IP do Roteador e DNS de uma conexão

previamente estabelecida? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252 G.5 Não consigo acessar páginas que dependem de Java, como a página do Banco do Brasil,

mesmo depois de ter instalado o Java no computador. Qual é o problema ? . . . . . . . . 254 G.6 Existe alguma forma de instalar e configurar tudo que interessa para o usuário comum que

nem sabe o que a ele realmente interessa no Ubuntu ? . . . . . . . . . . . . . . . . . . . . 254 G.7 Não consigo utilizar o flash no navegador. Como resolve isso ? . . . . . . . . . . . . . . . . 255 G.8 Daqui a algum tempo, a versão 9.10 vai ser lançada. O que eu faço ? . . . . . . . . . . . . 255 G.9 Preciso usar um antivirus no linux ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256 G.10 O que é um firewall ? Como usar ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256 G.11 Como aprender LaTeX ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257 G.12 Quando eu ligo o computador ele imediatamente vai para o GNU/Linux. Eu gostaria de

que o Windows fosse a opção padrão. Como mudo isso ? . . . . . . . . . . . . . . . . . . . 258

Colaboradores 259

Capítulo 1

Introdução

O GNU/Linux é um sistema operacional, que por definição é um programa responsável por conectar o usuário ao hardware, capaz de unificar o núcleo criado por Linus Torvalds em 1991 e diversas ferramentas criadas por terceiros.

Esse livro introduz ao leitor detalhes sobre (i) a arquitetura do GNU/Linux, partindo de um breve histórico até sua estrutura atual, (ii) os principais softwares para uso em computadores pessoais, como gerenciadores de arquivos, editores de texto, navegadores de internet, entre outros, (iii) os principais utilitários para uso de terminal, como man, ls, rm, cat, ssh, scp, entre outros e (iv) completando com um guia de sobrevivência na administração de um sistema GNU/Linux, apresentando os utilitários de configuração de rede, impressora, instalação de programas, além de outros pontos associados a utilização do GNU/Linux em computadores pessoais.

O GNU/Linux será descrito da forma mais abrangente possível para que ao final do documento o usuário não se sinta preso a qualquer parâmetro fixado.

Ao fim, propõem-se que o leitor seja capaz de utilizar o GNU/Linux como sistema operacional padrão.

1.1 Organização do Texto

Esse documento contém nove capítulos e sete anexos.

O capítulo 1 pauta o texto apresentado seus objetivos e organização. O capítulo 2 apresenta o universo do GNU/Linux para quem nunca sequer ouviu falar sobre ele. Possui o objetivo de esclarecer conceitos associados ao que é GNU, Linux, como é encontrado esse sistema operacional e alguns aspectos de teor

1

1.1. Organização do Texto 2

filosófico necessários para entender algumas das questões que existem.

O capítulo 3 descreve os conceitos básicos do GNU/Linux, esclarecendo pontos do funcionamento do sistema como um todo, como sistemas e tipos de arquivo, o conceito de permissão de arquivos e usuários e grupos.

O capítulo 4 introduz as interfaces gráficas e, em seguida, os capítulos 5 e 6 apresentam as duas principais interfaces da atualidade, respectivamente o GNOME e o KDE.

O capítulo 7 percorre o GNU/Linux apresentando diversos aplicativos direcionados às mais diversas atividades em um computador, como suíte de escritórios, editores de imagens, etc. Não é feito nenhum tipo de detalhamento específico do funcionamento de cada programa e, de fato, alguns detalhamentos podem consumir vários livros. O objetivo deste capítulo é exclusivamente apresentar o programa, quem ele é, o que ele faz, como usá-lo de forma básica e como encontrar informações mais detalhadas no seu uso.

O capítulo 8 detalha o uso do terminal no GNU/Linux, listando os principais programas do terminal. O capítulo 9 introduz alguns dos conceitos básicos associados à administração de sistemas. O capítulo tem como objetivo informar o mínimo sobre o assunto para que o usuário possa administrar seu próprio computador, instalando e configurando programas, configurando internet, técnicas de identificação de problemas (úteis na hora de pedir ajuda), configuração básica de um firewall, entre outras atividades.

Os anexos constituem uma forma de completar a informação passada ao longo do texto da melhor forma possível. O anexo A é uma referência histórica a criação do Linux. Os anexos B, C e D são referências adicionais sobre a licenças de programas e documentos. O anexo D é a licença utilizada para escrever esse documento. O anexo E detalha o processo de iniciar o Ubuntu pelo CD. O anexo F detalha o processo de instalação do Ubuntu e informações sobre o particionamento do HD. Por fim, o anexo G apresenta algumas informações adicionais no esquema de perguntas e respostas. Alguns dos tópicos adicionais nesse ponto deviam, no primeiro momento, estar no conteúdo do texto. Mas por uma questão de fluência, didática ou forma, eles foram adicionados nesse anexo.

Ao longo do texto, pequenos números ao lado de palavras remetem às notas de rodapé. O objetivo foi introduzir os endereços de internet ao longo do texto com o menor nível de intrusão, propiciando uma melhor fluência. Desta forma, as referências bibliográficas retidas da internet ficaram restritas à documentos citados nominalmente e não à domínios gerais.

Assume-se nesse texto que o usuário é destro tal que os botões direito e esquerdo do mouse estão configurados para quem o utiliza com a mão direita.

Para quem nunca usou o GNU/Linux o modo mais indicado de ler esse livro, consiste em ler todas as informações até o capítulo 3 sem interrupções na ordem de leitura (seguindo, se desejar, os anexos indicados). Após esse ponto, depende do leitor. Os leitores que querem ler tudo antes de começar a

1.1. Organização do Texto 3

usar, basta seguir a ordem de leitura de capítulos e anexos. Para os que querem utilizar o GNU/Linux enquanto lê, é interessante efetuar a leitura dos anexos E e F antes de ler o capítulo 4.

Capítulo 2

O GNU/Linux

2.1 O Sistema Operacional

O sistema operacional é o programa que gerencia os recursos do computador e serve de interface entre os diversos dispositivos e o usuário. Existem diversos tipos de sistemas operacionais, os quais podem ser sistemas multiusuários e multitarefas, como por exemplo, o Unix, o GNU/Linux, o Windows, o MacOS X, etc, até os simples sistemas monotarefa e monousuário, como os que outrora eram utilizados no surgimento dos computadores e ainda são usados em máquinas específicas [1].

O gerenciamento dos recursos do computador é usualmente a função do núcleo (kernel) do sistema operacional. Ainda que o kernel possa receber instruções diretamente do hardware, este atua apenas um tradutor entre os diversos programas e o hardware. Portanto, sozinho ele não é muito útil, pois necessita de uma interface entre o usuário e o computador.

Portanto, o sistema operacional completo deve ser visto como algo um pouco além do que apenas um núcleo. Ele é constituido do núcleo e um conjunto mínimo de ferramentas, chamadas de interface, capazes de utilizar e manipular este núcleo e, como conseqüência, o computador.

2.2 A História GNU/Linux

Em 5 de Outubro de 1991, Linus Benedict Torvalds enviou uma mensagem ao grupo comp.archives da Usenet1, anunciando a existência de um Linux, um núcleo de um sistema operacional baseado no

1Usenet (do inglês Unix User Network) é um meio de comunicação onde usuários postam mensagens de texto (chamadas de “artigos”) em fóruns que são agrupados por assunto (chamados de newsgroups ou grupos de notícias).

4

2.3. Entendendo o Conceito de “Distribuição” GNU/Linux 5

minix, que é um sistema operacional UNIX reduzido. A mensagem original do Linus Torvalds, junto com o link de uma tradução, podem ser lidos no anexo A. Para a surpresa de muitos, incluindo o próprio Linus Torvalds, esse pequeno código ganhou grandes proporções, contando até hoje, com milhares de colaboradores pelo mundo.

Contudo, a história teria sido diferente se poucos anos antes Richard Stallman não tivesse fundado o projeto GNU (GNU is Not a Unix ) [2] com o objetivo de criar um sistema operacional completo baseado em UNIX. Na época, eles tinham os aplicativos para um sistema operacional, mas não tinham um núcleo.

Não é difícil perceber o que ocorreu... Um núcleo sem aplicativos e os aplicativos sem um núcleo foram unificados e geraram o que chamamos de sistema GNU/Linux.

É comum que o sistema operacional GNU/Linux seja referido apenas como Linux. Note, entretanto, que a rigor isso não é verdade [3]. O Linux em si é apenas o núcleo do sistema operacional. Ainda que na comunicação informal não exista qualquer problema em referir o sistema GNU/Linux por apenas Linux, na comunicação formal é recomendado utilizar GNU/Linux. Essa diferença se faz presente nesse texto, de forma que Linux é o núcleo do sistema operacional e GNU/Linux o sistema operacional propriamente dito.

2.3 Entendendo o Conceito de “Distribuição” GNU/Linux

Como explicado anteriormente, o sistema GNU/Linux é a união entre o núcleo criado por Linus Torvalds e chamado de Linux e uma coleção de ferramentas criadas pelo Projeto GNU. Portanto, conceitualmente seria necessário pegar o código fonte do Linux e das ferramentas da GNU, compilar e instalar em uma ordem adequada. E foi escrito “seria” porque não é mais necessário. Alguém já fez isso, adicionando todos os programas de interesse, seguindo uma definição própria para o que é ou não é interessante, e disponibilizando uma forma prática e rápida de instalar o sistema GNU/Linux no seu computador. Às vezes a instalação não é tão rápida e em alguns casos nem tão simples, mas muito mais rápido e simples do que instalar tudo a partir do código fonte.

Portanto, denomina-se “distribuição GNU/Linux” essa coleção de programas GNU/Linux reunidas sobre uma certa filosofia2 de trabalho por um determinado grupo (empresa ou fundação) ou pessoa. Ao longo da história, centenas de distribuições foram criadas e desapareceram. Todas as distribuições guardam a semelhança de serem um sistema GNU/Linux e, portanto, todo o conhecimento adquirido pode ser utilizado igualmente entre elas. Apesar disso, as distribuições também possuem grandes diferenças.

A maior das diferenças entre as distribuições é literalmente estética: as cores, as fontes e o papel de parede (quando aplicável) utilizados como padrão, os programas que foram escolhidos para serem os

2Neste caso, a filosofia são as escolhas que refletem nas características de uma certa distribuição.

2.3. Entendendo o Conceito de “Distribuição” GNU/Linux 6

programas de edição de texto, visualização de vídeos ou mesmo para o acesso a internet. Cada escolha, direta ou indiretamente, afeta o funcionamento do sistema e os hábitos do usuário3. Quem passa muito tempo utilizando uma determinada distribuição, inevitavelmente terá problemas de se adaptar ao uso de uma outra distribuição, nem que seja apenas por alguns instantes. O mais importante é entender o conceito global, tornando estas diferenças uma questão mínima e observada apenas em um curto período de tempo até o usuário aprender “o local onde está a ferramenta que realiza uma determinada função”.

Outra diferença está relacionada à estabilidade do software utilizado. Existem distribuições que utilizam apenas programas testados ao extremo para eliminar o maior número possível de bugs, ou seja, existe um controle de qualidade que aceita apenas os softwares que comprovem a estabilidade exigida pela regras da distribuição. E existem distribuições que utilizam a última versão de cada programa existente, o que muitas vezes significa um maior número de problemas não documentados. Enquanto o primeiro grupo de distribuições foca o usuário que privilegia a estabilidade (a exemplo de muitas empresas e sistemas que realizam tarefas críticas, como as de segurança) o segundo grupo de distribuições foca o usuário que gosta de aproveitar as últimas novidades de tecnologia e viver emoções fortes e, até mesmo, ajudar no desenvolvimento dos softwares documentando e/ou corrigindo problemas existentes.

Mas as diferenças não terminam nesse ponto. Existem distribuições cuja filosofia facilita a configuração do sistema, por exemplo, identificando automaticamente uma rede interna ou uma impressora ligada no computador. Existem distribuições que exigem que todas as configurações sejam feitas pelo usuário e sem ferramentas de ajuda, ou seja, o usuário deve especificar manualmente quais são os equipamentos que possui e como quer que ele seja tratado pelo sistema.

Outra diferença significativa está relacionada ao fato de que algumas distribuições foram feitas para serem instaladas. E essa é a única forma de se usar essa distribuição. Outras distribuições denominadas de live CD podem ser executadas a partir de um dispositivo de CD, sem instalação do sistema, muito embora a instalação seja possível na maioria das opções existentes. Também há distribuições feitas para uso em disquetes, normalmente utilizadas em tarefas específicas (são sistemas operacionais dedicados a uma ou poucas funções).

E ainda existem outras diferenças, embora elas sejam menos impactantes na vida do usuário do que as três acima supracitadas, como questões relativas a licença, que possuem uma conseqüência interessante na disponibilidade de programas.

2.3.1 As Principais Distribuições da Atualidade

Segundo a DistroWatch4, atualmente existem mais 320 distribuições GNU/Linux. Esse valor aumenta expressivamente se contarmos que qualquer personalização efetuada e redistribuída com um novo nome

3Quase sempre é possível realizar configurações que fazem uma distribuição funcionar como se fosse outra, mas quase sempre uma transformação completa não é possível ou não é recomendada

4DistroWatch - http://distrowatch.com/

2.3. Entendendo o Conceito de “Distribuição” GNU/Linux 7

seja uma nova distribuição. A lista também não considera os sistemas embarcados, as distribuições para disquete, além de ser defasada em relação aos live CDs existentes. Este último ponto é justificado pela alta taxa de nascimento e mortalidade dessas distribuições, o que desestimula a contagem do número de live CDs existentes. A Linux CD.org5 regista mais de 1000 live CDs disponíveis para downloads.

Abaixo segue a lista das principais distribuições existentes atualmente com uma breve descrição.

1. Debian - www.debian.org - É possível dizer que o Debian é o porto seguro das distribuições GNU/Linux. Primeiro porque a distribuição não é administrada por uma empresa, e sim, por uma fundação. Essa fundação criou normas que basicamente asseguram a existência do Debian, e portanto, do GNU/Linux através dos tempos da forma como é distribuído hoje. Sua primeira versão data de agosto de 1993 e tinha o codinome de Buzz6.

Em segundo lugar porque sua versão estável é a que requer maior número de testes contra falhas dos programas componentes. Como conseqüência a versão oficial dos programas é muito atrasada em relação às versões mais novas destes, mas caracteríza-se por ser uma das mais seguras distribuições, mesmo quando utilizada em computadores pessoais. Apesar disso, existem 3 versões de Debian: stable, testing e unstable.

Os nomes dizem exatamente o que são cada uma das 3 versões, mas provavelmente são mais rigorosos do que realmente diria o dicionário. A versão testing possui versões de programas consideradas estáveis pela grande maioria das pessoas, mesmo a versão unstable possui programas estáveis. A questão aqui está no cronograma e no processo de certificação de qualidade exigido pela fundação. Um programa recém lançado, mesmo muito seguro, sempre vai passa pela versão unstable e somente depois de muitos testes é promovido a testing e apenas quando chegar o momento ele é promovido a stable. Por isso, o ciclo de atualização das versões varia de 1 ano a 3 anos.

O Debian possui um sistema de gerenciamento de programas muito eficiente e conta com mais de 20 mil opções de programas para instalação. Por conta dessas duas características, o Debian é a distribuição que derivou o maior número de outras distribuições.

Embora seja fácil de usar, não é um sistema indicado para iniciantes, pois possui um número muito alto de opções que forçam o usuário a ter que selecionar entre elas, o que pode nem sempre ser uma tarefa fácil. Muito embora, após ter a distribuição instalada e configurada na máquina, o uso e a administração contínua é de extrema facilidade.

2. Ubuntu - www.ubuntu.com - O Ubuntu é uma distribuição criada em 2004 a partir do Debian. Apesar da pouca idade, é a distribuição mais popular da atualidade. Essa distribuição utiliza versões relativamente novas dos programas selecionados, porém sua política requer um mínimo de testes de estabilidade.

As principais atividades de gerenciamento de sistemas são realizadas através de ferramentas sim- ples, portanto, é recomendada para usuários novatos, mas nem por isso é menos indicada a usuários

5Linux CD.org - http://www.linuxcd.org/ 6Todo Debian possui como codinome um dos personagens de Toy Story, ou seja, Buzz é referência a Buzz Lightyear

2.3. Entendendo o Conceito de “Distribuição” GNU/Linux 8

experientes. O foco da distribuição é o computador pessoal, mas ela conta com recursos satisfa- tórios para aplicação dela em servidores. Diferencia-se do Debian, principalmente, no critério de estabilidade dos programas e no visual básico.

O Ubuntu possui 4 versões distintas, o Ubuntu, o Kubuntu, o Xubuntu e o Edubuntu. O seu ciclo de atualização é de 6 meses, ou seja, em abril e outubro de cada ano são lançados novas versões. Elas são numeradas de acordo com o ano e o mês do lançamento, ou seja, a versão 7.10 é de outubro de 2007, a versão 8.04 é de abril de 2008, versão 11.04 será de abril de 2011, etc.

A diferença básica entre o Ubuntu, o Kubuntu e o Xubuntu está relacionada a interface gráfica padrão selecionada para a distribuição e, com isso, na escolha dos principais programas que acom- panham a distribuição. Detalhes sobre essas diferenças serão demonstrados adiante após o leitor ser apresentado a alguns conceitos do GNU/Linux. A diferença entre o Ubuntu e o Edubuntu não está na interface gráfica, mas na escolha dos programas que compõem cada distribuição. A primeira é uma distribuição de propósito genérico, enquanto a segunda possui programas com um foco na educação, seja para crianças de diversas faixas etárias, professores ou escolas.

Note que o Ubuntu, o Kubuntu, o Xubuntu e o Edubuntu são distribuições irmãs, ou seja, uma vez instalado no computador, instalar os programas de uma dessas distribuições na outra distribuição é tarefa básica e simples. A diferença entre essas distribuições somente é significativa quando utilizadas como Live CDs ou para quem não quer realizar qualquer tipo de instalação de programas adicionais.

3. openSUSE/SUSE - www.opensuse.org - O openSUSE, ou melhor, o SuSE (escrito dessa forma), foi por muito tempo a versão mais popular da Europa.

Recentemente, algumas mudanças do mercado forçaram a remodelagem de algumas marcas, o SuSE originou o openSUSE e o SUSE Linux Enterprise. O SUSE Linux Enterprise, ou simplesmente SUSE (agora escrito dessa outra forma), diferenciou-se do openSUSE, principalmente, pelo público a qual cada uma foi destinado. O SUSE Linux Enterprise está direcionado ao usuário corporativo, que quer suporte e confiabilidade no sistema e que não vai fazer uma atualização a cada 8 meses. Esse usuário não se importa em pagar por soluções que não sejam gratuitas, desde que funcionem. O openSUSE utiliza apenas programas livres e não é pago (embora, veremos adiante que uma coisa não está diretamente relacionada com a outra). Além disso, o openSUSE atualiza as versões dos seus programas a cada 8 meses, o que nem sempre é uma idéia boa para o usuário corporativo.

Possui uma excelente interface para o usuário final, seja iniciante ou avançado, porém é criticado pelo excesso de camadas existentes entre os programas de gerenciamento de sistemas e a modificação no sistema em si. Isso faz com que algumas tarefas sejam executadas de forma diferente no openSUSE em relação a forma clássica utilizada na maioria das distribuições. Usualmente essas diferenças não são percebidas pelos usuários que não conhecem o funcionamento do sistema profundamente.

4. Fedora/RedHat - fedoraproject.org - O Fedora é mais uma conseqüência da remodelagem das marcas. A RedHat foi criada em novembro de 1994 e é uma das mais antigas e tradicionais distribuições GNU/Linux. Sua última versão para usuários de desktop foi a versão 9.0 (2003). Depois disso, ela foi renomeada para Fedora e o RedHat passou a ser a marca de uma distribuição

2.3. Entendendo o Conceito de “Distribuição” GNU/Linux 9

GNU/Linux voltada para o mercado corporativo e distribuída juntamente com o suporte pago. A RedHat Enterprise Linux é a líder atual do mercado corporativo, ela utiliza versões de programas um pouco defasadas da versão mais atual, mas fornece compatibilidade a alguns dos mais novos recursos de hardware.

O Fedora é uma das distribuições mais utilizadas em computadores pessoais, muito embora também seja utilizada em servidores. Não seria incorreto assumir que é uma distribuição para usuários que já tenha tido contato com o GNU/Linux antes, muito embora a distribuição não tenha “pré-requisitos” para utilizá-la.

5. CentOS - www.centos.org - Essa distribuição surgiu como conseqüência de uma remodelagem da marca Redhat. Quando a Redhat decidiu criar uma distribuição paga para o mercado corporativo, muita gente não gostou. Aproveitando o fato de que a licença do GNU/Linux exige que o código fonte seja compartilhado, diversos usuários utilizaram o código fonte disponibilizado pela Redhat para criar uma nova distribuição, a CentOS.

A CentOS é a Redhat Enterprise Linux com um nome diferente (além de logos e outras questões associadas ao copyright da marca Redhat) e sem o suporte oferecido pela empresa. Portanto é uma distribuição com programas mais estáveis e antigos e não é voltada para o público doméstico.

6. Mandriva - www.mandriva.com - Outra conseqüência da remodelagem das marcas. A Mandriva é a união de duas empresas, a Mandrake e a Conectiva. A Mandrake foi uma distribuição derivada do RedHat e a primeira distribuição a incluir o KDE (interface gráfica) no sistema. Por sua vez, a Conectiva já foi a distribuição mais utilizada no Brasil (por ser uma empresa brasileira). Também foi a grande responsável pela popularização do GNU/Linux na “banca de jornal”7 do Brasil e por popularizar a documentação em português8. Hoje, nenhum desses pontos é mais um diferencial. A Mandriva ressurgiu como uma outra opção, no mesmo nível de facilidade (ou dificuldade, dependendo do ponto de vista) do Fedora.

7. Linux Mint - www.linuxmint.com - O Linux Mint é baseado no Ubuntu. Em princípio seria apenas mais uma distribuição, contudo ela ganhou destaque com uma filosofia polêmica. Ela incluiu diversas outras funcionalidades que normalmente não fazem parte da instalação padrão por conta de questões de licença (mencionadas adiante no texto).

8. Slackware - www.slackware.org - É a mais antiga distribuição GNU/Linux ainda em atividade. Criada por Patrick Volkerding9 em julho de 1993, foi por muito tempo uma distribuição mantida por apenas um único homem. Apesar disso não ser mais verdade, ela continua com uma equipe pequena. Dessa forma, a Slackware é conhecida pela pequena quantidade de programas que oficialmente faz parte da distribuição e pela ainda menor quantidade de programas de configuração automática. Assim como pela política de seleção de programas que privilegia a estabilidade. Com isso, obtém-

7Na época que conexão de rede em alta velocidade era rara, existiam muitas revistas de informática incluiam um CD como um diferencial. Houveram muitas reportagens sobre a distribuição Conectiva que acompanharam um CD da distribuição.

8As primeiras versões da Conectiva eram vendidas em livraria juntamente com um livro de quase 300 páginas em português detalhando cada ponto do sistema, que nem sempre estava em português.

9Patrick Volkerding ficou conhecido como “o cara”.

2.3. Entendendo o Conceito de “Distribuição” GNU/Linux 10

se uma distribuição pequena, muito estável e para usuários avançados do GNU/Linux. É uma distribuição muito comum em máquinas que possuem tarefas críticas, como o um firewall.

9. Gentoo Linux - www.gentoo.org - O Gentoo também é uma distribuição voltada para o usuário avançado. Ela ficou famosa por ter sido desenvolvida de tal forma que é possível fazer toda a instalação a partir da compilação do código fonte. Ou seja, pode demorar dias até ter um sistema completamente instalado, mas sua performance é muito superior. Com o tempo, esse diferencial passou a ser menos impressionante. Isso ocorre porque muitas distribuições que disponibilizavam programas pré-compilados compatíveis com máquinas i386 ou superiores, passaram a disponibilizar binários compatíveis com i586, i686 e superiores. Este fato diminui muito a diferença de performance observada entre um programa pré-compilado e um programa compilado na máquina do usuário na maioria das configurações de hardware existente.

10. Arch Linux - www.archlinux.org - Essa é outra distribuição criada para usuários avançados. Na prática, um usuário novato, ou mesmo um com pouca prática no sistema, sequer conseguirá instalar essa distribuição10. Absolutamente tudo é feito por linha de comando e ao fim da instalação não há uma interface gráfica. Essa distribuição destaca-se pelo fato de ser uma distribuição i686 e por seguir uma filosofia tal que faz com essa seja a primeira distribuição a implementar qualquer novidade do mundo GNU/Linux. A ponto de ter sido registrado ocasiões onde o aplicativo aparecia no Arch Linux antes mesmo de ser oficialmente lançado. Ainda assim, depois de instalada e configurada um usuário normal iniciante poderia utilizar o Arch Linux sem se dar conta de que a distribuição não foi construída para o perfil dele.

2.3.2 Qual é a Melhor Distribuição ?

Imagine entrar em uma sorveteria e encontrar centenas de sabores diferentes e desconhecidos. Tentando obter informações sobre os sabores existentes, uma pessoa questiona as outras pessoas presentes sobre qual seria o melhor sabor. Haveria inúmeras respostas distintas. Existiriam aqueles que preferem o sabor X e os que preferem o sabor Y. Também haveriam aqueles que diria qualquer sabor é bom, menos o sabor X, ele é desagradável. Algumas dessas pessoas defenderiam o seu próprio ponto de vista como se qualquer outro fosse inadmissível, esquecendo que a questão do gosto está intimamente ligada a quem consome e não a uma escala absoluta. E também esquecendo que é improvável que eles mesmos tenham experimentado todos os sabores possíveis.

Pois bem, como mencionado, existem centenas distribuições GNU/Linux. A perspectiva do usuário inciante é exatamente a mesma de quem está fazendo as perguntas na sorveteria imaginária. Há aqueles que defendem que o Gentoo é melhor que o openSUSE, outros diriam exatamente o contrário. Alguns vão dizer que o Ubuntu é ruim e outros vão dizer que é a melhor de todas as distribuições. O usuário que tende a ter dúvidas sobre qual distribuição escolher, fica ainda mais confuso quando começa a listar

10Sem querer menosprezar ninguém, afinal existe manual e ele é detalhado e preciso. Mas o usuário novato ou com pouca prática tende a não ter tanta intimidade com o sistema suficiente para entender de forma fácil o que está escrito no manual.

2.4. Entendendo a Questão da Licença 11

características específicas de desempenho e versão de programa em cada distribuição. Não muito raro, a distribuição perfeita lhe parece uma combinação entre várias delas, quando isso não é verdade. Também imagina-se que pelo menos alguns usuários vão desistir de escolher uma distribuição devido ao receio de obter experiências desagradáveis.

A verdade incondicional à pergunta “Qual é a melhor distribuição ?” está invariavelmente ligada à resposta de outras perguntas que são

• Qual o seu nível de conhecimento do GNU/Linux?

• Qual a função do computador?

• De quanto em quanto tempo você quer/pode atualizar uma máquina?

e a uma pergunta que refere-se ao gosto. Quem, por exemplo, acostuma-se com o “jeito Redhat” de usar o GNU/Linux, pode ter dificuldades em migrar para uma distribuição que tenha o “jeito Debian” de fazer as coisas. Os botões estão em um lugar diferente (ou mesmo não existem), alguns comandos são específicos de uma distribuição e a migração para outra gera a pergunta “como eu faço a mesma coisa aqui ? ”. São diferenças pequenas que estão intrínsecas ao sistema e ao “jeito de fazer” as coisas que transformam as questões meramente técnicas em algo próximo à escolha do sabor de sorvete predileto.

O que se pode afirmar é que o Mandriva, Fedora, openSUSE possuem o mesmo nível de facilidade de uso. O Ubuntu e variantes tendem a criar um perfil mais simples para o gerenciamento do sistema. Enquanto os demais mencionados são para usuários mais experientes. Teoricamente é possível classificar cada distribuição existente em um desses níveis, mas nenhuma dessas diferenças será tão extraordinária se o usuário estiver diante de uma máquina instalada e configurada e não tenha que realizar qualquer tarefa administrativa ao longo do tempo.

Aqui também é necessário realizar algumas escolhas para basear os estudos em uma certa distribuição base e através dela explorar os conceitos fundamentais. Esse texto pré-seleciona o Ubuntu e o Kubuntu para servirem de guia básico na apresentação do GNU/Linux. O motivo está relacionado a fato de serem distribuições que fornecem um primeiro impacto agradável ao usuário iniciante.

2.4 Entendendo a Questão da Licença

A questão da licença do software é um assunto típico do direito autoral. Entretanto, é necessário abordar alguns desses pontos para melhor entendimento de algumas coisas que ocorrem no universo GNU/Linux. O anexo B detalha melhor a questão da licença. Para o aprendizado e uso do GNU/Linux apenas alguns pontos são importantes.

2.5. Vantagens e Desvantagens do GNU/Linux 12

Existem duas variantes fundamentais de programas, os programas de código aberto (open source, é representado por várias licenças, mas a principal é a GNU GPL, GNU General Public License ou, simplesmente, GPL) e os programas onde o código não é aberto, conhecidos como programas proprietários.

Por código aberto entenda que o usuário possui o direito de modificar o código e redistribuir a qualquer custo que desejar e a quem quiser [2]. Essa questão é importante porque nem todo programa proprietário tem código inacessível. Por exemplo, os programas proprietários escritos em PHP ou outra linguagem de programação por scripts qualquer, onde é possível acessar o código fonte, mas o usuário não possui o direito de alterar o programa. Também é importante que fique claro que um programa de código aberto ou fechado não está relacionado ao fato de ser gratuito ou não. Um programa proprietário pode ser gratuito e um programa de código aberto pode ser pago.

Considerando essas diferenças, o que importa ao usuário do GNU/Linux no primeiro momento é que o GNU/Linux fornece fácil acesso aos programas de código aberto. Mas devido à questões filosóficas e/ou jurídicas, o programa proprietário normalmente não acompanha a distribuição.

Pode-se citar como exemplos de programas proprietário ou vinculados a patentes que o usuário final deseja ter instalado em sua distribuição GNU/Linux os drivers de placas de vídeo NVIDIA e ATI (se o computador possuir um dessas, claro), os programas que permitem acessar os formatos mais populares de áudio e vídeo, por exemplo, .mp3, .avi, e DVDs encriptados, entre outros exemplos. A documentação do Ubuntu [4] fornece uma visão geral do impacto dessa questão nos hábitos do usuário.

Assim sendo, seja para uso pessoal ou profissional, eventualmente o usuário terá de lidar com o programa proprietário no GNU/Linux e isso usualmente requer alguma ação e conhecimento do usuário.

No decorrer do texto, alguns dos principais pontos serão abordados naturalmente. Infelizmente, é quase impossível dizer quais são os passos que devem ser executados para obter o mesmo resultado em cada distribuição GNU/Linux. E existem até algumas distribuições (como a listada Linux Mint) onde a ação requerida é quase nenhuma.

2.5 Vantagens e Desvantagens do GNU/Linux

A liberdade de escolha é tida como a principal vantagem dos sistemas GNU/Linux. Tudo é configurável, até porque, o código fonte está sempre disponível.

O usuário pode escolher entre centenas de distribuições, entre diferentes versões de uma mesma distribuição e entre distribuições propriamente dito. Em cada uma delas, pode escolher entre várias opções de programas para navegar a internet ou suítes de escritório, mais de vinte interfaces gráficas, quase quarenta gerenciadores de arquivo, inúmeros programas que possuem a finalidade de compactar e descompactar arquivos, etc. Em outras palavras, o usuário pode escolher entre inúmeros programas

2.5. Vantagens e Desvantagens do GNU/Linux 13

que possuem a mesma finalidade. Sem contar que o usuário pode escolher entre várias versões de um mesmo programa em uma mesma versão de distribuição. Note que no GNU/Linux, muitas vezes um certo programa possui de duas a quatro versões para uma mesma distribuição, excluindo-se nessa contagem as atualizações de segurança.

O usuário também pode escolher entre inúmeros temas visuais para sua distribuição e pode criar o seu próprio tema editando cores, fontes, estilos de janela e até quantos e quais são os botões de gerenciamento de janelas11 se deseja ter em cada janela.

O que pode visto como vantagem, também pode ser visto como desvantagem. Basta reler os dois parágrafos anteriores substituindo a palavra “pode” em negrito por “deve”. O excesso de opções é aquilo que a comunidade dos sistemas GNU/Linux mais valoriza, mas para o usuário inciante isso pode produzir o efeito inverso. No mundo ideal, o usuário experimentaria todas as opções possíveis de tudo e utilizaria aquela que ele julga melhor (por algum critério subjetivo e técnico). Infelizmente não é possível vivenciar a situação do mundo ideal para todos os programas, mas é normal que depois de um certo tempo o usuário seja um pouco mais exigente em um ou outro programa específico que lhe for muito útil.

Outra conseqüência do código aberto é o aumento da segurança existente no GNU/Linux. Qualquer grande problema de segurança identificado é rapidamente rastreado e resolvido por alguém. Isso permite que o sistema seja seguro, não porque não existam falhas, mas porque as correções são tão rápidas que não permitiria tempo hábil para alguém explorar essa falha. Claro que somente o fato do código ser aberto seria insignificante se não houvesse ferramentas capazes de garantir a segurança do sistema. Na verdade, existem centenas de ferramentas de segurança, sendo algumas integradas no próprio Linux. A segurança também oriunda do fato do sistema operacional exigir um certo comportamento do usuário, como não permitir que esse escolha senhas fracas, recomendar que não utilize o modo de administrador para tarefas comuns, etc.

O GNU/Linux possui alta eficiência no gerenciamento do acesso a memória, na transferência de dados de rede e no acesso ao HD, que pode ser otimizado utilizando um sistema de arquivo específico para a função da máquina (existem vários sistemas de arquivo compatíveis com o Linux, alguns de uso geral outros são mais específicos). Essas características foram obtidas como conseqüência das escolhas feitas quando o Linux era novidade.

Em termos gerais, um sistema GNU/Linux bem ajustado possui alta eficiência em vários aspectos do uso computacional, e tem desempenho superior quando comparado com os sistemas operacionais concorrentes. Vale notar, por exemplo, que a grande maioria dos clusters de alto desempenho existentes utilizam o GNU/Linux como sistema operacional (quase a totalidade utiliza sistemas baseados na família UNIX, mas há vários que não são o GNU/Linux). Uma relação parecida (um pouco menos favorável ao GNU/Linux) é observada quando listada os principais servidores de internet.

Um ponto fraco é a compatibilidade com hardwares muito novos ou pertencentes à empresas completa- 11Refere-se como botões como os que maximizam, minimizam e fecham janelas

2.5. Vantagens e Desvantagens do GNU/Linux 14

mente avessas ao código livre e que não disponibilizam qualquer documentação técnica dos componentes para que outras pessoas criem os drivers apropriados para eles. Sendo assim, normalmente demora cerca de dois meses para um novo hardware (entenda que estamos falando de algo inovador, como chipset de placa-mãe) que foi lançado e está à venda ter um driver escrito para o Linux e leva outro tempo (que pode ser muito ou pouco, dependendo da importância do novo hardware) para que ele seja incorporado às distribuições GNU/Linux mais atuais. O motivo está relacionado ao fato de que os programado- res necessitam “comprar” o hardware e realizar engenharia reversa para escrever um driver para aquele equipamento.

Apesar dos grandes avanços na compatibilidade dos hardwares com o GNU/Linux, uma vez que as principais empresas passaram a contribuir disponibilizando informações ou drivers proprietários, ainda existem problemas. Ainda hoje, por exemplo, todos os drivers para webcam compatíveis com o GNU/Linux são frutos de engenharia reversa. Isso não seria algo impressionante se o número de mode- los de câmeras existentes não fosse tão grande. Isto torna o trabalho de fazer engenharia reversa em todos os modelos algo quase impossível. O mesmo se aplica a impressoras de empresas exóticas (atualmente as maiores empresas disponibilizam drivers), scanners (mesmo as grandes empresas possuem certa dificul- dade de criar drivers para todos os seus modelos) e os modens por software, os softmodens12, também conhecidos como winmodens13.

Quanto aos programas disponíveis, a verdade é que existe um programa para o GNU/Linux que é equivalente a cada programa existente no Windows. Contudo, algumas vezes encontramos exigências profissionais que basicamente definem a escolha do sistema operacional.

Outro problema são os arquivos legados em formato proprietário. Por exemplo, quem tem um arquivo de texto do Word e abrir no OpenOffice vai perceber que alguns elementos não são bem convertidos (por exemplo, as equações matemáticas). Outro exemplo, os arquivos de AutoCAD. O formato padrão do AutoCAD não pode ser editado corretamente no GNU/Linux. Contudo, o AutoCAD exporta seus arquivos para um formato livre que é reconhecido pelos programas CADs existentes no GNU/Linux (não entrando aqui, no mérito da questão sobre a qualidade das alternativas). De uma forma ou de outra, os arquivos legados salvos em formato proprietário vão exigir um tempo para serem convertidos em formatos livres. Seja por simples exportação no programa original (como no caso do AutoCAD), seja por reeditoração no programa importado (como no caso de um documento Word com equações matemáticas).

Por fim, existem os programas criados para tarefas muito específicas, como os que gerenciam equi- pamentos de análise química/física, de controle de engenharia, etc., que a rigor não funcionam no GNU/Linux. Em todo caso, é possível utilizar um programa Windows no GNU/Linux, seja por vir- tualização ou com o uso da API (Application Programming Interface, ou Interface de Programação de Aplicativos) Windows alternativa, criada para executar programas do Windows no GNU/Linux.

A virtualização consiste executar um outro sistema operacional dentro do seu sistema operacional 12Não confundir com os hardmodens, modens por hardware. Esses funcionam muito bem no Linux. 13Por que somente funcionam no Windows.

2.5. Vantagens e Desvantagens do GNU/Linux 15

atual. É possível, até mesmo, modificar a arquitetura do computador, ou seja, instalar a uma versão PC 64-bits em computador PC 32-bits ou mesmo instalar um sistema operacional para PowerPC em um computador PC 32-bits. A conseqüência é que é possível instalar o Windows como se fosse um programa para GNU/Linux e dentro desse Windows, é possível instalar qualquer programa Windows (como se estivesse no Windows mesmo). A desvantagem disso é uma perda de desempenho e a necessidade de memória em quantidade suficiente para rodar “dois” sistemas operacionais e seus aplicativos.

A vantagem é que o problema de compatibilidade do programa Windows com o GNU/Linux desapa- rece. A grande questão deixa de ser “vai ou não funcionar” para ser “em qual programa funciona e qual será a dificuldade em fazer tudo corretamente”.

É evidente de que existem diversos tipos de virtualização, alguns são de fácil implementação, outros não. Depois de uma breve análise, pode-se chegar à conclusão que manter o Windows para gerenciar um equipamento específico é o que fornece o melhor benefício, ou que a técnica de virtualização X ou Y é a que fornece melhor benefício.

Um vantagem associada a compatibilidade (ou a falta de compatibilidade) nativa dos programa Win- dows com o GNU/Linux é que este não irá executar os vírus, os malwares e outras pragas digitais criadas para o Windows.

Capítulo 3

Conceitos Básicos do GNU/Linux

O capítulo anterior descreveu o universo GNU/Linux, sua origem, os conceito de distribuição e seus principais representantes, alguns esclarecimentos quanto a licenças e uma breve análise das vantagens e desvantagens. Desse ponto em diante, será apresentado o sistema propriamente dito. Nesse capítulo, serão apresentados os conceitos básicos do funcionamento do GNU/Linux que o usuário deve ter em mente ao usar o sistema.

Antes de qualquer apresentação do sistema é necessário ter em mente que o GNU/Linux é Case Sensitive. Ou seja, os caracteres maiúsculos e minúsculos são diferenciados, de forma que a palavra Teste é interpretada diferente de teste e TESTE.

Dito isso, esse capítulo aprentará os demais conceitos básicos do sistema, que incluem o sistema de arquivos, os conceitos usuários e grupos, de permissões de arquivos, concluindo sobre estrutura de diretórios típica de um sistema GNU/Linux.

3.1 O Sistema de Arquivos

O sistema de arquivos é a forma com que os dados são organizados em um dispositivo de armazenamento, como o HD. Pode ser interpretado como a prateleira de uma estante que receberá os livros, que são os dados.

Portanto, a primeira tarefa de quem instala um computador novo, seja qual for o sistema operacional, é dividir o HD e selecionar o sistema de arquivos (processo conhecido como formatação). No Windows, para formatar um HD é necessário escolher entre dois tipos de sistema de arquivos: o FAT (File Allocation Table) e o NTFS (NT(New Tecnology) File System).

16

3.1. O Sistema de Arquivos 17

O GNU/Linux consegue ler e escrever nestes dois sistemas de arquivo, mas não é possível realizar a instalação neles1. É necessário escolher entre um dos sistemas de arquivo nativos. E é claro que existem vários sistemas de arquivo, dos quais podemos destacar:

• ext2 - second extended file system - é o sistema de arquivos mais tradicional que existe, mas não o mais usado. Ele fornece alta velocidade de leitura, mas baixa confiabilidade. Dessa forma, não é indicado para computadores pessoais. Atualmente, apenas alguns grandes servidores internet utilizam esses sistema de arquivos e contam com um grande número de redundâncias para evitar a queda na disponibilidade de acesso. Ainda é utilizado (e recomendado) em pendrives e outros dispositivos de dados que não requeiram alta confiabilidade.

• ext3 - third extended file system - esse é o sistema de arquivos mais utilizado atualmente. Ele resolve o problema de confiabilidade do ext2 inserindo o recurso de journaling2 no sistema. Por causa do journaling, ele não apresenta o mesmo desempenho do ext2.

• ext4 - fourth extended filesystem - recém desenvolvido para se tornar o sucessor do ext3. Foi incorporado ao Linux em dezembro de 2008. E acredita-se que até 2010 todos as distribuições uti- lizarão esse sistema de arquivos como padrão. Ele corrigiu alguns problemas do ext3, aumentando a confiabilidade do sistema de arquivos. Mas não apenas isso, visto que ext3 é um sistema antigo, criado em uma época de pouca capacidade de processamento e baixo volume de armazenamento. Dessa forma, ext4 obtém melhor desempenho, mesmo aumentando a confiabilidade.

• ReiserFS - sistema de arquivo criado por Hans Reiser. É uma opção muito usada para compensar os problemas do ext3, mas com uma pequena perda de desempenho. Com o desenvolvimento do ext4, não se sabe ao certo o que acontecerá com esse sistema de arquivos. Aposta-se que ele irá cair no lugar comum de ser mais um entre tantos sistemas de arquivos existentes3.

Existem vários outros sistemas de arquivos para uso pessoal e/ou que possuem finalidades específicas, como os sistemas de arquivos que se mantem mesmo com falhas, os sistemas de arquivos específicos para quem deseja armazenar arquivos com tamanho elevado, etc. Para o usuário iniciante, conhecer a lista mencionada, saber que é possível acessar o FAT e o NTFS e ter ciência de que existem vários outros sistemas de arquivos é suficiente.

1No caso do FAT, além de ser uma tecnologia ultrapassada, pesa o fato de não ser compatível com o nível de segurança exigido pelo GNU/Linux. Contra o NTFS pesa a questão da licença. Até pouco tempo sequer era possível escrever na versão 5.x do NTFS a partir do GNU/Linux.

2Que consiste em criar um registro das alterações que serão realizadas nos arquivos, antes de realizá-las efetivamente. Isso diminui o risco de corromper o sistema de arquivos em uma queda de luz, por exemplo.

3Veja uma lista mais completa dos sistemas de arquivo em: http://en.wikipedia.org/wiki/List_of_file_systems.

3.2. Usuários e Grupos 18

3.2 Usuários e Grupos

Para acessar um sistema GNU/Linux é necessário uma conta, composta por um login de acesso e sua respectiva senha. Há três tipos básicos de usuários:

• Usuário root ou superusuário - é o administrador do sistema e seu login é root. Possui acesso pleno e poderes ilimitados sobre o sistema GNU/Linux (inclusive para cometer erros graves). So- mente deve ser utilizado na hora de administrar o sistema (configurar a internet, instalar um programa, realizar manutenção preventiva, etc). Não é adequado acessar o computador como root para realizar tarefas de usuário comum, como navegar na internet, escrever um texto, etc4.

• Usuários comuns - são os usuários do computador propriamente dito. Está relacionado com a existência de uma pessoa real que utiliza aquela máquina. O login foi normalmente escolhido por alguém, tipo joao, jose, jsilva, etc. Todo login deve ser escrito em letras minúsculas com, no máximo, caracteres como “.” e “_” e não deve utilizar acentos, espaços ou caracteres diferenciados5

Os usuários comuns somente podem realizar tarefas que o administrador (root) determinou que ele pode realizar.

• Usuários de sistemas - são usuários que são utilizados por programas. Não estão associados a pessoas reais, portanto, não possuem arquivos pessoais. São fundamentais para o funcionamento do sistema, por exemplo, o usuário www é um usuário utilizado pelo servidor de internet para executar sua função.

Cada usuário está contido em pelo menos um grupo. Segundo o dicionário, um grupo pode ser definido como um “conjunto de pessoas que têm os mesmos sentimentos, representações e juízos de valor e apresentam os mesmos tipos de comportamento”. Essa definição também pode ser aplicada no contexto do GNU/Linux, excetuando o fato de que nesse contexto um grupo pode ser formado por apenas um único usuário. Em algumas distribuições, como o Ubuntu, o grupo principal de cada usuário é igual ao login. Dessa forma, o usuário “joao” tem como grupo principal o grupo “joao” e inicialmente nenhum outro usuário fará parte de grupo. Em outras distribuições, como no openSUSE, o grupo principal de cada usuário é o mesmo, denominado “users”.

Normalmente, um usuário pode estar contido em alguns outros grupos, como por exemplo, cdrom e video. O primeiro grupo permite que o usuário tenha acesso a dispositivos de CD (o que incluí gravadores de DVD) e o segundo que o usuário tenha acesso ao vídeo do sistema.

É o administrador do sistema que define quais grupos o usuário terá acesso. O grupos tem duas funções, uma foi mencionada que é autorizar o usuário a acessar dispositivos e funções do sistema. A função está associada a idéia de grupos como é usual imaginar, ou seja, grupo de pessoas que possuem

4Lembre-se que “com grandes poderes, vêm grandes responsabilidades”. 5Em teoria o root pode criar uma conta com qualquer caractere no login, mas o usuário vai ter problemas se esse

conselho não for obedecido.

3.3. Permissões de arquivos 19

interesses comuns. Dessa forma, se um certo arquivo possuí permissão de leitura e/ou escrita apenas ao dono do arquivo e ao usuários de um certo grupo, os demais usuários do sistema que não fizerem parte daquele grupo não terão acesso ao arquivo. Essa segunda e importante função dos grupos fica em segundo plano em computadores que possuem um pequeno número de usuários.

Ao criar a conta no sistema será necessário o login e uma senha (em computadores pessoais não faz sentido preocupar-se com a política de grupos, então deixa-a tal qual foi definida pela distribuição). Não esqueça a senha. Sem ela, em princípio, usuário não fará muita coisa. Sem a senha de root, o administrador não faz nada. Embora seja quase sempre possível alterar a senha de root e/ou de usuário do sistema, mesmo que tenha esquecido ambas6.

Cada usuário e grupo existente (seja ele de que tipo for) possui um número de identificação, um ID, os usuários possuem o UID, os grupos possuem um GID. Na prática, o GNU/Linux não se importa com o nome dado ao usuário ou grupo, mas apenas com os seus números de identificação. Dessa forma, dois usuários de logins distintos que tenham o mesmo ID são, para todos os efeitos, o mesmo usuário.

3.3 Permissões de arquivos

Há três tipos básicos de permissões de arquivos: escrita, leitura e execução.

Se um diretório é marcado com permissão de leitura, significa que o conteúdo do diretório pode ser listado, ou não. Sim, isso parece confuso, mas ocorre que o usuário só pode executar algum comando dentro de um diretório se ele tiver permissão de execução. Do contrário, não é possível listar o conteúdo do diretório, mesmo que ele tenha permissão de leitura. Da mesma forma se um diretório tiver permissão de escrita é possível modificar o conteúdo dele (apagando, criando e modificando arquivos), ou não. Nesse caso, assim como no primeiro, existe a questão do diretório ter permissão de execução, mas também tem o fato de que o diretório necessita de permissão de leitura e a permissão do arquivo a ser modificado deve ter permissão de escrita (no mínimo, mas usualmente deve ter permissão de leitura e escrita).

Se um diretório for marcado com permissão de execução, é possível executar comandos dentro dele (ou no mínimo, acessar seu conteúdo), ou não. Porque se o diretório não tiver permissão de leitura (condição mínima) não é possível que o usuário execute algo nele. A mesma lógica se aplica a todos os arquivos. Para simplificar, considere que um arquivo regular está contido em um diretório que possui permissão de leitura, escrita e execução.

Dessa forma, se o arquivo regular estiver marcado com permissão de leitura, é possível ler o arquivo. Se ele estiver marcado com permissão de escrita, é possível escrever no arquivo, muito embora se o arquivo

6O sistema GNU/Linux somente é inacessível a terceiros quando é fisicamente protegido ou quando está encriptado. Se um usuário qualquer com conhecimento suficiente tiver acesso físico ao computador e o sistema não estiver encriptado, não há como impedir uma troca de senha. O mesmo vale a outros sistemas operacionais.

3.3. Permissões de arquivos 20

não estiver marcado como permissão de leitura, o usuário não pode abrir o arquivo para ver o que está escrevendo/modificando nele, o que torna essa possibilidade algo muito pouco útil. Normalmente, para modificar um arquivo é necessário que ele tenha permissão de leitura e escrita.

Se um arquivo regular estiver marcado com permissão de execução, significa que é possível executar o arquivo, ou não. Esse arquivos são os programas/scripts. Se o arquivo não tiver permissão de leitura, ele continua sendo executável, mas não pode ser executado porque não há acesso ao arquivo. Não há sentido em ter um arquivo que não seja um programa ou script marcado com a permissão de execução. Até existe a possibilidade de executar programas sem a permissão de execução, mas apenas pelo terminal de comando e inserindo alguns argumentos.

As partições FAT não possuem controle de permissões de arquivo, portanto, todo arquivo que passa por esses dispositivos são marcados com permissão de leitura, escrita e execução de forma indiferente a finalidade do arquivo.

Há uma outra questão, mencionada superficialmente antes, que é o dono do arquivo. Todo arquivo pertence a um dono (usuário) e a um grupo. Se o arquivo do usuário jose tiver um arquivo marcado com permissão de leitura e escrita apenas para o dono do arquivo, não há como o usuário joao acessar esse arquivo, mesmo que ele pertença ao mesmo grupo. Porque para tal o arquivo deve ser marcado com permissão de leitura e escrita para os usuários grupo, sendo indiferente ao que estiver marcado para o dono do arquivo. Se o usuário joao nem mesmo estiver no mesmo grupo, somente terá acesso se o arquivo estiver marcado com permissão de leitura e escrita para todos os usuários do computador. A figura 3.1 apresenta uma visão geral da permissões de arquivos.

Figura 3.1: Visão dos tipos de permissão de arquivos

3.4. Tipos de Arquivos e A Estrutura de Diretórios 21

Percebe-se na imagem que existem outras modificações de arquivos que aparecem em indicadores especiais. Essas permissões especiais são conhecidas como SUID, SGID e StickBit, traduzidos na imagem para “Definir ID do Usuário”, “Definir ID do Grupo” e “Pegajoso”. O SUID, quando ativo, mantém as mesmas permissões do dono do arquivo quando este arquivo estiver em execução, não produz efeitos em diretórios. O SGID são como o SUID, mas para o grupo. Nos diretórios possui o interessante efeito de forçar os arquivos criados dentro dele a terem o mesmo grupo. StickBit, em arquivos, acelera o seu carregamento. Em diretórios, força que apenas o dono do arquivo ou diretório contido nele possa alterar o seu conteúdo. Raramente um usuário iniciante fará uso dessas opções avançadas.

3.4 Tipos de Arquivos e A Estrutura de Diretórios

No GNU/Linux, tudo é arquivo. O arquivo, também chamado de arquivo regular ou arquivo comum, é arquivo, o diretório é arquivo, o dispositivo de hardware é visto como um arquivo, etc.

O diretório é um arquivo que contém referências a outros arquivos, sendo utilizado para organizar os arquivos em um computador e mídias de armazenamento. Sendo assim, é possível organizar um diretório dentro de outro diretório, criando o que chamamos de estrutura de diretórios ou árvore do sistema de arquivos.

O sistema operacional Windows popularizou o termo “pasta” para representar o diretório. Isso acon- teceu porque o ícone que representa graficamente um diretório é uma pasta, mas a origem do diretório é muito mais antiga que a representação de gráfica na forma de pasta7.

No GNU/Linux existe apenas uma única estrutura de diretórios, não importando quantos HDs ou dispositivos externos existam. O diretório principal é conhecido como diretório raiz (“root”, no original em inglês) e representado por uma barra invertida, /. 8

Todos os demais diretórios são ramificações do diretório raiz e são representados na forma /exemplo1, onde a barra faz referência ao diretório raiz e a palavra “exemplo1” é nome do diretório que está contido no diretório raiz. Lê-se barra-exemplo1. Um diretório existente dentro do diretório “exemplo1” de nome “exemplo2” é representado por “/exemplo1/exemplo2”. Lê-se barra-exemplo1-barra-exemplo2.

O GNU/Linux segue uma estrutura de diretórios familiar entre diversas distribuições. Eventualmente, é possível ver um diretório a “mais ou a menos” na lista, mas alguns diretórios são “obrigatórios” em um sistema, são eles:

7Não é adequado utilizar a palavra “pasta” no modo de terminal, porque nele não existe uma pasta, a palavra aplica-se apenas ao modo gráfico.

8No Windows o diretório principal da estrutura de arquivos tem um nome especial de uma letra, usualmente “C:”. Dentro dele, tem-se diretórios como “Arquivos de programas”, “Windows”, etc. Além disso, nele é possível estabelecer mais de um ponto principal para estrutura diretórios, por exemplo, um segundo HD seria visto como “D:”, adicionando um gravador de DVD, teremos a letra “E:”, e assim por diante.

3.4. Tipos de Arquivos e A Estrutura de Diretórios 22

• /bin - aqui estão os arquivos de programas mais importantes. São programas básicos e fundamentais para o funcionamento do sistema.

• /boot - é onde estão os arquivos de inicialização, ou seja, onde estão os arquivos que fazem o computador ligar e carregar o sistema.

• /dev - “dev” vem de device, dispositivo, é onde estão relacionados todos os dispositivos do sistema.

• /etc - é onde estão os arquivos de configuração dos programas instalados.

• /home - é onde ficam os diretórios dos usuários. Se o login for joao, o diretório do usuário usualmente é /home/joao. O usuário joao terá acesso de leitura e escrita a todos os arquivos que estejam dentro desse diretório9. Em sistemas de grande porte, é possível que o diretório do usuário esteja algo parecido como /home/j/joao ou /home/GRUPO/joao, onde GRUPO é o grupo principal do usuário joao escolhido de acordo com alguma política administrativa interna.

• /lib - arquivos de bibliotecas do sistema.

• /media - diretório onde serão montadas as estruturas de arquivos de mídias externas e outros dispositivos que não estão ligados à estrutura do funcionamento do sistema.

• /mnt - caiu em desuso, sendo gradativamente substituído pelo /media. Ele ainda está disponível nos sistemas e ainda é utilizado por alguns aplicativos que não se atualizaram.

• /opt - fornece um local para aplicativos a serem instalados. Normalmente é utilizado por programas que não fazem parte da distribuição (mas isso é uma escolha do administrador do sistema).

• /proc - é um diretório especial do sistema. Seu conteúdo é dinâmico e mantém informações sobre o sistema, incluindo quais são os programas abertos.

• /root - é o diretório pessoal do usuário root. É o único diretório de um usuário que não fica dentro do /home por padrão. Em algumas distribuições existe o /home/root, que é um atalho para para o diretório /root.

• /sbin - nesse diretório existem programas muito importantes para o funcionamento do sistema que, em princípio, apenas o /root devia utilizar.

• /srv - não existe em todas as distribuições. Nele ficariam os arquivos que serão disponibilizados, acessados e/ou criados por algum servidor (como servidor de páginas web, de e-mail ou de ftp). Em grande parte das distribuições, esse conteúdo fica em /var.

• /sys - contém informações sobre o sistema.

• /tmp - diretório para arquivos temporários.

• /usr - contém a maior parte dos programas. 9Salvo uma intervenção do usuário root que pode negar o acesso do usuário a qualquer momento. Lembre-se, ele possuí

poderes ilimitados.

3.4. Tipos de Arquivos e A Estrutura de Diretórios 23

• /var - contém dados variáveis. É onde estão os logs do sistema, os caches dos diversos aplicativos que utilizam esse tipo de característica como administrador (ou como usuário comum autorizado via grupo) e registros de quais programas estão instalados. É onde estão os arquivos públicos de internet na maioria das distribuições.

Dentro do diretório /usr/ é possível encontrar uma lista de diretórios muito parecida com essa acima. Nele observa-se (com pequenas variações entre distribuições):

• /usr/bin - onde estão a grande maioria programas instalados.

• /usr/include - onde são guardados cabeçalhos de arquivos. Existem mais ou menos arquivos em função do que têm-se instalado no sistema. No computador de um programador nesse diretório pode ter mil arquivos.

• /usr/lib - são onde ficam as bibliotecas associadas a programas que estão em /usr/bin.

• /usr/local - dentro dele tem uma estrutura idêntica a /usr. Onde são instalados os aplicativos compilados e que não fazem parte da distribuição original (função similar ao /opt/). É opcional.

• /usr/man - nele ficam os manuais do comandos.

• /usr/sbin - similar ao /sbin, porém os aplicativos não são importantes para o computador inici- alizar.

• /usr/share - aqui temos um pouco de tudo: arquivo de tradução, temas para configuração da aparência, aplicativos (que são acessados via /usr/bin mas na verdade estão localizados nesse diretório), etc.

• /usr/src - é onde deviam estar ficam todos os códigos fontes do sistema. Para o usuário típico do sistema, o mais importante é o código fonte do núcleo do GNU/Linux, ou seja, o Linux.

• /usr/tmp - diretório de arquivos temporários.

• /usr/X11R6 - o nome desse diretório pode variar entre distribuições, é onde estão os aplicativos que são responsáveis por ativar o modo gráfico no GNU/Linux.

Outro diretório notável é o /dev. Nele estão os arquivos que são os dispositivos do computador.

Os dispositivos são divididos em vários tipos, sendo eles: o arquivo socket10, os dispositivos de carac- tere com e sem buffer11, o dispositivo de bloco e o arquivo “FIFO”12.

Dentre os principais, temos: 10É um meio de comunicação por software entre um computador e outro. É uma combinação de um endereço IP, um

protocolo e um número de porta do protocolo. 11É uma região de memória temporária, usada para escrita e leitura de dados. É usado como um equalizador entre a

velocidade de leitura e velocidade de escrita. 12First In, First Out, em português, primeiro a entrar, primeiro a sair. São utilizados para implementar filas de espera.

3.4. Tipos de Arquivos e A Estrutura de Diretórios 24

• /dev/sda - HD localizado na primeira interface SATA (em distribuições recentes, também pode ser a interface ATA). O /dev/sdb é o HD localizado na segunda interface SATA, o /dev/sdc é o HD conectado na terceira interface SATA, e sucessivamente, tal que /dev/sdX é a representação genérica de um HD onde “X” é uma letra de “a” em diante.

• /dev/hda - também representa um dispositivo de armazenamento, mas nesse caso pode ser tanto HD quanto um dispositivo de CD/DVD. A diferença é que ela representa a interface ATA (IDE). Está entrando em desuso.

• /dev/fd0 - é o dispositivo de disquete.

• /dev/cdrom - sempre existe, mas é apenas um atalho para o dispositivo real que pode ser uma /dev/hdX ou /dev/srX. Existem vários atalhos similares, como o /dev/dvd, /dev/cdrw, etc., que são apenas variantes necessárias para acessar o mesmo dispositivos de acordo com o programa utilizado.

• /dev/psaux - é o mouse.

• /dev/mem - é a memória RAM.

• /dev/null - é a saída nula do sistema. É um dispositivo virtual, visto que não é um equipamento físico de hardware. Funciona como um triturador de arquivo. Deletar um arquivo é mover um arquivo para esse dispositivo.

É claro que existem muito mais dispositivos nesse diretório, mas essa pequena lista é apenas para for- necer uma idéia geral do sistema. No primeiro momento, tenha em mente que terá de conhecer/descobrir quem é o HD e lembrar que existe um /dev/cdrom, para o caso de algum dia algum programa perguntar isso. Entretanto, não há necessidade do usuário iniciante do GNU/Linux saber diferenciar entre os quatro tipos de dispositivos.

O arquivo regular ou arquivo comum é o arquivo de texto, de imagem, de apresentação, de vídeo, de música, etc.

O atalho, mencionado anteriormente no texto, é exatamente o que o senso comum diz, um atalho. Existem dois tipos de atalhos, os “atalhos simbólicos” e os “atalhos físicos” (mais conhecido como hard links).

Os atalhos simbólicos são arquivos individuais que possuem vínculos com algum outro arquivo no computador, seja ele de que tipo for. Eles consomem pouco espaço e podem ser eliminados sem correr o risco de eliminar o arquivo original. Eles não possuem permissões de acesso próprias, possuindo as permissões do arquivo original.

Os atalhos físicos são na verdade um mesmo arquivo, porém pode ter um outro nome e/ou estar em outro diretório. Esse tipo de atalho apenas pode ser criado para arquivos regulares.

3.4. Tipos de Arquivos e A Estrutura de Diretórios 25

E por fim, existe um tipo de arquivo que é uma variação dos arquivos supracitados, chamados arquivos ocultos. Eles não são um tipo de arquivo ao rigor da palavra, mas uma variação dos tipos de arquivos existentes. Para o GNU/Linux, o arquivo oculto é todo arquivo cujo nome comece com um ponto, seja ele um arquivo comum, um diretório, um dispositivo, etc. Não é possível ter um arquivo oculto cujo o nome não comece com um ponto.

A figura 3.2 apresenta a estrutura de diretórios do Ubuntu quando este está rodando pelo live CD (ou seja, não está instalado). É possível observar na lateral esquerda, a existência de um diretório chamado ubuntu dentro do diretório home. Esse é o diretório home do usuário ubuntu.

Figura 3.2: Visão ampla da estrutura de diretório do Ubuntu.

A figura 3.3 apresenta o conteúdo do diretório /usr/bin. Observe a existência de ícones com uma seta sob ele (logo o primeiro arquivo, o X11, possuí uma dessas). Essa é a representação gráfica de atalho nessa interface gráfica (será detalhada no próximo capítulo).

Definido os conceitos de permissão e estrutura de arquivos, veja o que acontece quando um usuário tenta acessar um diretório para o qual ele não possui permissão de acesso na figura 3.4.

3.4. Tipos de Arquivos e A Estrutura de Diretórios 26

Figura 3.3: Visão dos arquivos contidos no diretório /usr/bin/.

Figura 3.4: Demonstração do que ocorre quando um usuário tenta abrir um diretório de acesso restrito.

Capítulo 4

O Gerenciador de Janelas

Normalmente, os textos sobre o GNU/Linux são muito parecidos até esse ponto. Entretanto, agora seria a hora de apresentar o terminal ou console ou modo texto que é como o GNU/Linux nasceu e criou-se. O terminal é uma tela, onde todos os comandos são realizados a partir do teclado.

Pode imaginar alguma coisa parecida visualmente com o DOS. Mas dizer que são similares chega a ser uma ofensa, uma vez que o terminal do GNU/Linux (do UNIX, em geral) é extremamente poderoso comparado com o DOS. Chega a ser mais poderoso que a maioria dos programas com interface gráfica (pois esses são, na verdade, uma interface entre o usuário e os comandos de terminal), mas também tem uma curva de aprendizado mais lenta.

Esse documento inicia a apresentação do GNU/Linux utilizando a interface gráfica, também conhecido como modo gráfico. Hoje, até é possível que um usuário do GNU/Linux não precise abrir o terminal. O usuário buscará o terminal naturalmente quando perceber que algumas coisas são mais fáceis e mais simples de se fazer pelo terminal do que utilizando uma interface gráfica ou quando acessar um sistema GNU/Linux que não possuí interface gráfica.

Para abrir um programa com interface gráfica, é necessário um gerenciador de janelas, onde se vê os programas representados por janelas na “Área de Trabalho”.

No GNU/Linux existem vários programas para gerenciar janelas. Para um gerenciador de janelas funcionar é necessário um servidor de janelas ou servidor gráfico. Atualmente o servidor de janelas mais popular é o X.org (escrito assim mesmo, como se fosse uma url) ele é uma ramificação do XFree86, que ainda pode ser encontrado em distribuições mais antigas. Toda a configuração de placa de vídeo, mouse, a fonte do sistema, a resolução que irá trabalhar, a definição do monitor e a configuração do teclado devem ser configurados apenas nesse servidor. As versões mais novas do X.org não requerem tantos ajustes, mas ainda assim a idéia geral permanece.

27

4.1. Qual o Melhor Gerenciador de Janelas ? 28

Algumas distribuições fazem isso automaticamente (como o Ubuntu), porém podem necessitar de alguns ajustes e existem aquelas que vão requerer que o usuário especifique manualmente tudo sobre o sistema.

Quando apenas um servidor servidor gráfico é executado, cria-se o ambiente gráfico. Cada programa que seja executado nesse ambiente gráfico estará em canto, sem barra de título, não é possível maximizar ou minimizar a janela ou tirar uma janela da frente de outra, nem mesmo é possível fechar a janela. Por isso, o servidor gráfico não é utilizado sozinho. Para fornecer as configurações das janelas é que existe o gerenciador de janelas.

O gerenciador de janelas permite executar uma série de operações básicas, como maximizar, minimizar, fechar uma janela, entre outras. Também são responsáveis pelo aspecto visual das janelas que utilizam suas bibliotecas. Mas note que um gerenciador de janelas é independente do gerenciador de arquivos, do navegador de internet, etc..

Dentre os gerenciadores de janelas do GNU/Linux destacam-se os seguintes:

• GNOME

• KDE

• XFCE

• Enlightenment

• FluxBox

• BlackBox

Dentre esses, o GNOME e o KDE destacam-se como os dois mais utilizados e mais completos geren- ciadores de janelas. São mais completos porque GNOME e o KDE possuem gerenciadores de arquivos, editores de texto, calculadores integrados ao chamados projeto GNOME e projeto KDE (muitos desses aplicativos são opcionais na instalação, mas estão disponíveis). Outros gerenciados como o FluxBox com- põem apenas o mínimo, ou seja, fornecem as ações necessárias para gerenciar as janelas (incluindo o seu visual) e uma ou outra função adicional, nada mais.

4.1 Qual o Melhor Gerenciador de Janelas ?

Não é muito diferente de perguntar qual é a melhor distribuição. Boa parte da escolha está relacionada ao gosto do usuário, mas aqui nós podemos traçar alguns pontos relevantes.

4.1. Qual o Melhor Gerenciador de Janelas ? 29

O GNOME e o KDE são os mais completos, os mais utilizados, mas também os mais pesados (não que eles consumam muitos recursos, mas comparativamente eles consomem muito mais do que os demais) e os mais amigáveis (não que não tenha outros amigáveis, mas existem aqueles que são completamente diferentes de tudo que um usuário de outro sistema operacional esteja acostumado). Escolher um desses dois gerenciadores de janelas é escolher um gerenciador de janelas completo. Ambos requerem um Pentium III ou superior e pelo menos 512 MB de memória RAM para uma experiência agradável ao utilizar (a rigor, os requisitos mínimos são inferiores a esses, aqui existe uma definição pessoal do que seria uma “experiência agradável”).

Por outro lado, a discussão sobre a preferência entre o GNOME e o KDE normalmente não leva a lugar algum. Deixa de ser algo técnico para ser algo extremamente passional. Os defensores do GNOME dizem que ele é melhor por ser mais simples e com uma interface mais limpa, deixando o sistema menos confuso e com mais usabilidade. Os defensores do KDE dizem que ele é melhor porque sua interface contém acesso fácil a todas as opções possíveis para alterar o que for desejado, fornecendo maior poder e controle sobre o sistema.

A verdade é que é prudente instalar os dois gerenciadores de janelas (supondo que não tenha limitações com o espaço no HD). Muito dessa verdade é porque é necessário que o usuário escolha por si mesmo o gerenciador de janelas. Experimentar os dois é pré-requisito para obter uma conclusão. O outro ponto é porque existem programas que compõem o KDE que são melhores que os programas que compõem o GNOME. E o usuário pode executar um programa do KDE mesmo que ele esteja utilizando o GNOME e vice-versa, ao custo de alguns megabytes extras e um leve retardo na execução que somente será percebido em máquinas modestas.

Os demais gerenciadores de janelas, sejam eles completos (com gerenciador de arquivos e diversas outras funcionalidades) ou básicos (apenas com o mínimo necessário) são para os usuários que experi- mentaram os dois acima e sentiram falta de alguma coisa ou querem algo diferente. É comum usuários que queixam-se da velocidade do GNOME e/ou do KDE ou que não possuem os requisitos mínimos de hardware migrarem para o XFCE ou para o Enlightenment.

O FluxBox, o BlackBox e vários outros gerenciadores de janelas são ainda mais leves, mas também são menos intuitivos e tendem a deixar o usuário iniciante mais perdido. Especialmente porque eles são muito dependentes do conhecimento do usuário sobre o uso do terminal de comando.

Note que existem várias versões dos gerenciadores de janelas disponíveis atualmente, mas a versão que será utilizada é definida pelo tipo e versão da distribuição que foi escolhida.

Esse documento irá detalhar o GNOME, que será apresentado através do Ubuntu, e fará uma des- crição superficial do KDE, que será apresentado através do Kubuntu. A idéia é permitir que o usuário entenda o gerenciador de janelas antes de abordar os aplicativos que compõem o sistema. Muito em- bora, os principais aplicativos que compõem a estrutura do projeto GNOME e KDE serão apresentados concomitantemente.

4.1. Qual o Melhor Gerenciador de Janelas ? 30

A razão para detalhar o GNOME e apresentar o KDE de forma superficial está relacionada com o momento histórico que o projeto KDE passa. A menos de 1 ano o KDE oficial era o KDE 3. Isso mudou e atualmente utiliza-se o KDE 4. A grande questão é que essa foi uma das mais conturbadas mudanças de versão já vista pelos usuários do GNU/Linux. Os inúmeros problemas encontrados nas primeiras versões do KDE 4 fizeram com que este não fosse uma versão usável em um computador produtivo. De fato, na data de publicação desse texto, vive-se o fim dessa era conturbada. Ainda assim, os problemas ainda não terminaram, mas não justifica o esforço em aprender o KDE 3.

Por tudo isso, foi feito a escolha de apresentar o KDE 4 de forma superficial. Especialmente con- siderando que esse texto é voltado para o público que nunca teve contado com o GNU/Linux. Esses usuários são os que mais sofrem com eventuais problemas e também são os que menos condições possuem de contornar os problemas com o vários “jeitinhos” de resolver as coisas.

Capítulo 5

O GNOME

O GNOME é uma interface gráfica que utiliza o GTK+, uma caixa de ferramentas para criação de interfaces muito popular e criada originalmente para o GIMP (programa de edição de imagens que será apresentado no próximo capítulo). Esse detalhe técnico é interessante, pois quando se menciona “ajustar a configuração visual do GNOME”, na prática significa ajustar a configuração visual do GTK+. Isso significa que todo aplicativo que não utilizar o GTK+ pode exigir uma configuração adicional com outro aplicativo, a exemplo dos aplicativos que utilizam o QT, o concorrente do GTK+ que é utilizado pelo KDE e seus aplicativos.

Nesse texto, o GNOME será apresentado pelo ponto de vista do Ubuntu. A versão do Ubuntu utilizada nesse documento é a 9.04. A visão do GNOME logo após o boot é a observada na figura 5.2. Veja o Anexo E para obter detalhes de como iniciar o Ubuntu pelo CD e o Anexo F para saber como instalar o Ubuntu no computador.

Observe na figura 5.1 que os quatro cantos da tela apresentam algum objeto. Aproximando esses objetos, obtemos a figura 5.3.

No canto superior esquerdo da figura 5.2 temos dois ícones no desktop e alguns elementos na barra de tarefas. O primeiro elemento é o menu, que na forma padrão é dividido em três regiões: “Aplicativos”, local onde estão os aplicativos em si, “Locais”, imagine esse menu como uma forma de acesso rápido aos seus diretórios e “Sistema” que é onde estão os aplicativos de gerenciamento do sistema e configurações de preferências e também onde está a ajuda do GNOME. Após o menu, existem três ícones, um é o clássico ícone do Firefox (navegador de internet), o segundo é uma representação de um e-mail (no primeiro momento não é possível dizer qual é esse aplicativo, mas se colocar o mouse sobre ele, verá que é o Evolution) e o terceiro ícone que consiste em um ponto de interrogação, é a ajuda do GNOME.

No canto superior direito da figura 5.2 observa-se um ícone com dois computadores sobrepostos (re-

31

32

Figura 5.1: Tela do GNOME logo após o boot do CD.

Figura 5.2: Detalhe da tela inicial do GNOME.

33

presentação clássica do ícone de rede), um ícone de um alto falante (outra representação clássica, mas agora para o controle de som), um texto informando o dia, data e hora e outro texto acompanhado de um pequeno ícone, onde o texto diz Live session user e o ícone representa que aquele local é onde acessa comandos para reiniciar, deslogar e desligar o computador. O texto Live session user informa que essa é uma execução realizada através de um live CD, ou seja, o sistema não foi instalado no computador.

No canto inferior esquerdo da figura 5.2, observa-se um ícone que representa a área de trabalho. Esse ícone é um aplicativo que minimiza todas as janelas que estiverem encobrindo a área de trabalho. Se observar atentamente, verá três pequenos traços ao lado desse ícone. Eles são a representação de um miniaplicativo que tem como função listar as janelas abertas. É o local para onde vão ser minimizadas as janelas quando essa ação for executada.

No canto inferior direito da figura 5.2 observa-se duas representações gráficas. A primeira é composta por dois quadrados. Cada quadrado é a representação de uma área de trabalho independente. Histori- camente, o GNU/Linux usa múltiplas áreas de trabalho praticamente desde que o conceito de interface gráfica existe. O Ubuntu opta por pré-configurar apenas duas áreas de trabalho. A segunda representação icônica é a lixeira do computador. É o “local” para onde serão enviados os arquivos deletados. Escrevo “local” entre aspas, porque não é apenas um local, mas sim, múltiplos locais representados e unidos em um único ponto. Na verdade, existe uma lixeira para cada partição do sistema. Quando um arquivo é eliminado no ambiente gráfico, ele é enviado para a lixeira que pertence a sua partição física. Isso acelera muito a eliminação do arquivo, pois o ato de movimentar arquivos em uma mesma partição é instantâneo enquanto o de movimentar arquivos entre partições distintas consiste em copiar o arquivo para aquela partição e depois eliminar da partição original. E isso não é tão rápido.

Para o usuário basta acessar o menu que contém a lixeira. O ponto a ser lembrado é que a mesma regra é válida para pendrives, ou seja, ao remover um arquivo do pendrive, ele é realocado na lixeira que será criada no pendrive e dele será removido quando a lixeira for esvaziada (veremos como fazer isso adiante).

O próximo passo é explorar os menus do GNOME. Isso permite conhecer quais são os aplicativos gráficos que estão instalados atualmente no sistema e como ele estão dispostos no menu. Note que a disposição do menu é um ponto que varia de distribuição para distribuição e mesmo entre versões de uma mesma distribuição. A figura 5.3 apresenta o conteúdo do menu “Aplicativos”.

A primeira observação é que os aplicativos estão divididos em categorias. Essa versão básica e padrão do Ubuntu é divida em 6 categorias: Acessórios, Escritório, Gráficos, Internet, Jogos e Som e Vídeo. Como pode-se imaginar, cada categoria reuni os aplicativos associados ao contexto associado ao nome da categoria. Note apenas que essa classificação não é unânime.

Na mesma figura 5.3 é possível ver quais são os aplicativos que estão disponíveis na categoria “Acessó- rios”. Nas figuras 5.4 a 5.8 é possível observar quais são os aplicativos em cada uma das demais categorias.

34

Figura 5.3: Menu “Aplicativos”, categoria “Acessórios”.

Figura 5.4: Menu “Aplicativos”, categoria “Escritório”.

35

Figura 5.5: Menu “Aplicativos”, categoria “Gráficos”.

Figura 5.6: Menu “Aplicativos”, categoria “Internet”.

36

Figura 5.7: Menu “Aplicativos”, categoria “Jogos”.

37

Figura 5.8: Menu “Aplicativos”, categoria “Som e Vídeo”.

Seguindo a exploração do menu do GNOME, observa-se o conteúdo do menu “Locais”. A figura 5.9 apresenta o conteúdo desse menu.

Observe que ele contém vários elementos. O primeiro da lista é “Pasta Pessoal” que é a forma mais prática de abrir o navegador de arquivo diretamente no diretório home do usuário. Abaixo, temos “Mostra Área de Trabalho”, e ao clicar nesse item, abre-se o gerenciador de arquivos no diretório “Desktop”, seja ele qual for. Em seguida observamos quatro “marcadores”, que são atalhos para os respectivos diretórios e serve para acelerar e facilitar a abertura de um certo diretório. O padrão do Ubuntu inclui quatro marcadores que são “Documentos”, “Músicas”, “Imagens” e “Vídeos”. Se usado com moderação, os marcadores são particularmente úteis ao salvar ou abrir um arquivo no computador a partir de qualquer programa que use o GNOME para selecionar o nome do arquivo, se usado com moderação. Criar 50 marcadores tende a ser tão contra-produtivo quanto não ter qualquer marcador ou pior.

Ainda na figura 5.9, seguindo o menu observa-se a descrição “Computador”. Trata-se de um diretório virtual (não é um diretório real, ele existe apenas do ponto de vista lógico) que permite acessar os dispositivos do computador, incluindo pendrive, CD-Rom e HD. Contudo, adiante será fácil perceber que não é um ícone muito utilizado. Abaixo de “Computador”, temos “Mídia removível”, cujo nome diz tudo que se precisa saber sobre esse item, que se expande em um submenu permitindo acessar as mídias diretamente. Em seguida, observa-se “Rede” e “Conectar ao servidor...”. Ambos possuem funções similares. A distinção é que o item “Rede” apenas permite acessar computadores e serviços que estão na mesma máscara de rede do computador, ou seja, na rede interna. Já o segundo item, “Conectar ao servidor...”, permite acessar os mesmos recursos de qualquer parte da internet ou da rede (ou seja, faz tudo que o item “Rede” faz, mas é menos intuitivo, por requerer a identificação prévia da máquina que

38

Figura 5.9: Menu “Locais”.

5.1. O painel do GNOME 39

contém o serviço).

Seguindo a exploração do menu do GNOME, observa-se na figura 5.10 o conteúdo do menu “Sistema” e na mesma figura o conteúdo do item “Preferências”. Adiante veremos a utilidade de vários desses itens.

Figura 5.10: Menu “Sistema”.

O conteúdo do item “Administração” do menu “Sistema” pode ser observado na figura 5.11.

5.1 O painel do GNOME

Até esse ponto, explorávamos o conteúdo do painel (definido pelas barras que são visíveis na tela) que foi originalmente estabelecido pela distribuição Ubuntu. Tudo é configurável, tanto no painel superior, quanto no inferior. Inclusive, é possível remover os dois painéis do ambiente.

5.1. O painel do GNOME 40

Figura 5.11: Menu “Sistema”.

5.1. O painel do GNOME 41

Observe na figura 5.12 o menu que surge ao clicar com o botão direito do mouse no painel. Distingui- se quatro ações, a ajuda e o “Sobre o Painel”. De baixo para cima, lê-se “Novo painel”. No Ubuntu existem originalmente dois painéis, porém, pode-se criar tantos quantos desejado. Inclusive, é até possível posicioná-los nas laterais da área de trabalho. Em alguns sistemas, é possível encontrar uma quinta ação é que “Bloquear posição do painel” para evitar que acidentalmente o usuário arraste o painel para uma posição lateral, por exemplo. Outra opção presente na figura 5.12 é “Excluir esse painel”, o nome dessa opção é a função do que ela executa. Acima, lê-se “Propriedades”. A figura 5.13 mostra as duas da janela que podem ser acessadas quando seleciona-se essa opção. Na figura 5.13(a) apresenta a aba “Geral” e a figura 5.13(b) apresenta a aba “Plano de fundo”

Figura 5.12: Menu que surge ao clicar com o botão direito no painel.

(a) (b)

Figura 5.13: Abas da janela acessível pelo item “Propriedades” do menu de opções do painel, (a) a aba “Geral” e (b) a aba “Plano de fundo”.

Na aba “Geral”, mostrada na figura 5.13(a), é possível configurar a posição do painel (opções em “Orientação”), o Tamanho do painel (em pixels), e três outros tipos de comportamento. Se “Expandir” estiver selecionado, o painel será visto como na figura 5.12, ou seja, terá o tamanho horizontal igual ao tamanho horizontal da tela. Note que o tamanho “horizontal” é definido para painéis posicionados na

5.1. O painel do GNOME 42

parte superior e inferior da tela e “vertical” para painéis posicionados na lateral da tela. Se essa opção não estiver selecionada, o painel inicial possuirá uns poucos pixels de tamanho na horizontal e crescerá com a adição de elementos no painel. Ou seja, o tamanho “horizontal” é dinâmico. A opção “Ocultar automaticamente” oculta o painel quando ele não estiver em uso. E a opção “Mostrar botões de ocultação” faz ser visível a opção de ocultar manualmente o painel.

Na aba “Plano de fundo”, mostrada na figura 5.13(b), é possível configurar o visual estético do painel. O visual pode estar relacionado com tema utilizado no ambiente, com uma cor sólida ou com uma imagem de fundo. Se cor sólida for selecionada, é possível tornar o painel transparente.

Por fim, no primeiro item da figura 5.12 existe a opção “Adicionar ao painel...” que é a opção que permite adicionar e remover o conteúdo que se viu até o momento nesses painéis entre outros elementos. A tela que surge ao selecionar essa opção está na figura 5.14

Figura 5.14: Janela acionada pela opção “Adicionar ao painel...” contida no menu que surge ao clicar com o botão direito no painel.

A figura 5.15 expõem todos os elementos que podem ser adicionados em um painel.

5.1. O painel do GNOME 43

(a) (b)

(c) (d)

(e)

Figura 5.15: Janela da opção “Adicionar ao painel...”. Da figura (a) até a (e) é possível visualizar todos os elementos que podem ser adicionados em um painel, segundo a configuração padrão do Ubuntu.

5.1. O painel do GNOME 44

Como exemplo, adicionaremos os “Olhos” ao painel. Esse miniaplicativo é um inutilitário que consiste em um par de olhos que companham o mouse onde quer que ele esteja. Para adicionar esse miniaplicativo, selecione ele e clique com o botão esquerdo do mouse em “Adicione” (vide figura 5.16).

Figura 5.16: Adicionando um par de olhos ao painel.

Como resultado, obtém-se o visual da figura 5.17. Observe que a posição dele é muito pouco elegante.

Figura 5.17: Assim fica o par de olhos logo após ter sido adicionado ao painel.

É possível ajustar a posição desses olhos clicando com o botão direito do mouse sob miniaplicativo (ou seja, o par de olhos) e selecionado “Mover” no menu que surge (figura 5.18).

Depois de selecionado o “Mover”, basta movimentar o mouse sobre o painel para a direita ou esquerda

5.1. O painel do GNOME 45

Figura 5.18: Ajustando a posição dos olhos no painel.

com o objetivo de levar o elemento à posição desejada. O resultado é visto na figura 5.19.

Figura 5.19: Os “Olhos” no painel, posição final.

Todos os miniaplicativos (elementos) que estão sob os painéis permitem esse ajuste. Além dele, é possível “Bloquear a movimentação” que é justamente o que impede de mover o item de um lado para o outro. Observe essa opção habilitada nas opções da data (menu direito sob o miniaplicativo de data/hora) na figura 5.20.

Figura 5.20: Opções do miniaplicativo de data/hora. Observe que a posição desse elemento está travada.

Ainda sob a figura 5.20, é possível observar a existência de outras opções, como copiar a data, copiar a hora, ajustar a data e hora, preferências. Esta última opção permite configurar o visual do elemento,

5.1. O painel do GNOME 46

como tipo de fonte e formato da data e do relógio, além de permitir adicionar informações meteorológicas ao painel.

Se clicar com o botão esquerdo do mouse sobre data/hora, abre-se um miniaplicativo de calendário, como visto na figura 5.21. A opção “Locais” que surge nesse miniaplicativo permite verificar como estão as condições meteorológicas (se tiver internet ativa) e se é dia ou noite em qualquer parte do mundo.

Figura 5.21: Calendário. Repare que os Olhos estão “olhando” para o mouse.

A figura 5.22 mostra um painel com um número maior de elementos. Observe que foi adicionado um segundo menu principal, exatamente igual ao que já existe. Ou seja, é possível adicionar elementos duplicados em um mesmo painel (e, claro, em painéis distintos também).

Figura 5.22: Observe o menu de programas duplicado no painel.

Ainda falta apresentar como adicionar um certo programa ao painel (tal qual estão o Firefox, o Evolution e a Ajuda na figura 5.2). Para tal, selecione a opção “Lançador de aplicativo...” na janela “Adicionar ao painel”, representada na figura 5.23, e clique em “Avançar”.

A tela seguinte, colocada na figura 5.24, consiste em uma reprodução do que existe no menu de programas, nas seções “Aplicativos” e “Sistema”. Se, por exemplo, deseja adicionar a calculadora ao painel, abra o item “Acessórios”, selecione a “Calculadora” e clique em “Adicione” (figura 5.25). Ao concluir, ou seja, ao terminar de adicionar todos os programas de interesse, clique em “Fechar”. É interessante observar

5.1. O painel do GNOME 47

Figura 5.23: Adicionando programas ao painel.

5.1. O painel do GNOME 48

que além dos programas, também é possível adicionar um submenu inteiro. Para tal, basta selecionar um dos itens principais (por exemplo, “Acessórios”) e clicar em “Adicione”.

Figura 5.24: Adicionando programas ao painel.

O resultado desse processo e da adição do terminal de comandos do GNOME pode ser visto na figura 5.26.

A mesma coisa que foi feita no painel superior, pode ser feito no painel inferior. Apenas por exemplo, considere a adição do “Menu principal” que é o concorrente direto da “Barra de menu” (aquela que está na parte superior que é chamada nesse texto até aqui de “menu de programas”). A diferença entre os dois é uma questão de estilo. Veja a adição desse elemento no painel inferior na figura 5.27.

Ajustando a posição desse menu no canto inferior esquerdo, e clicando nele, obtemos a figura 5.28. Não é difícil sentir que esse menu, nessa posição, torna o sistema mais similar ao sistema operacional concorrente de maior número de usuários (Windows). De fato, também o torna mais parecido com o KDE, que será visto posteriormente. Cada usuário escolhe a barra de menus que melhor se encaixar com o seu perfil. Contudo, esse texto continuará a utilizar a barra de menus padrão do Ubuntu para manter a uniformidade das explicações.

5.1. O painel do GNOME 49

Figura 5.25: Adicionando a calculadora ao painel.

Figura 5.26: Painel superior configurado.

5.1. O painel do GNOME 50

Figura 5.27: Adicionando o “Menu principal” ao painel inferior do ambiente.

5.1. O painel do GNOME 51

Figura 5.28: Estilo do “Menu principal” (ele é mais parecido com a concorrência).

5.2. O gerenciador de arquivos 52

5.2 O gerenciador de arquivos

A principal função de um sistema operacional é “gerenciar arquivos”. Portanto, um dos principais apli- cativos é o gerenciador de arquivos. O GNU/Linux possui uma farta variedade de gerenciadores de arquivos independentes, mas usualmente aquele que se comporta melhor em uma certa interface gráfica é o gerenciador de arquivos padrão, ou seja, o que foi criado para aquela interface1.

O gerenciador de arquivos do GNOME é o Nautilus2. Para abrir esse programa, basta clicar em “Locais” e em seguida selecionar “Pasta Pessoal”. O seu aspecto é visto na figura 5.29.

Figura 5.29: Nautilus, o gerenciador de arquivos do GNOME. Barra lateral em modo “Locais”.

O Nautilus é dividido em três regiões, (i) a parte superior, que contém as barras de ferramentas, (ii) a parte lateral direita, que na figura 5.29 é representada pelos “Locais”, e (iii) a região central, de maior dimensão que é a região onde são apresentados os arquivos.

Como dito, a região lateral a direita do Nautilus da figura 5.29 está representada pela região “Locais”. Além dela, é possível observar alguns outros tipos de barra lateral, dos quais destacam-se “Informações”, “Árvore” e “Histórico”. Essas três opções são visíveis nas figuras 5.30, 5.31 e 5.32.

1Observe que existem interfaces gráficas que não possuem um gerenciador de arquivos padrão. Nessas, usualmente o desempenho do aplicativo e a opinião pessoal sobressai sobre características técnicas.

2Referência ao submarino do livro “Vinte mil léguas submarinas” de “Júlio Verne”, 1870.

5.2. O gerenciador de arquivos 53

Figura 5.30: Nautilus, o gerenciador de arquivos do GNOME. Barra lateral em modo “Informações”.

Figura 5.31: Nautilus, o gerenciador de arquivos do GNOME. Barra lateral em modo “Árvore”.

5.2. O gerenciador de arquivos 54

Figura 5.32: Nautilus, o gerenciador de arquivos do GNOME. Barra lateral em modo “Histórico”.

Observe nas figuras 5.29 e 5.30 que abaixo dos botões de navegação e acima das áreas principal e lateral existem alguns botões que referem-se ao diretório atual. O ícone mais a esquerda na mesma linha permite alterar esse visual entre esse modelo, com botões, e o modelo visto nas figuras 5.31 e 5.32, onde possível ler o nome do diretório em texto apenas, no caso, /home/ubuntu3.

Quanto às barras laterais, na figura 5.29 observa-se os “Locais”, e é quase a mesma coisa que se observa no menu “Locais” do menu de programas4. Como diferença observa-se a “Lixeira”, que tem o mesmo conceito do ícone visível no canto inferior direito da figura 5.2. Na figura 5.30 observa-se a barra lateral de informações, no caso, informações sobre o diretório aberto. Em um sistema com um número maior de aplicativos instalados será possível listar nessa coluna todos os aplicativos que podem abrir aquele diretório (tem o mesmo efeito de um “Abrir com”). Na figura 5.31 observa-se a “Árvore” do sistema. Neste caso, divido em dois pontos: o espaço do usuário, iniciado pela “Pasta pessoal”, e o “Sistema de arquivos”, que na verdade é o diretório raiz, “/”. Por fim, a figura 5.32 apresenta a barra lateral no modo “Histórico”. Nela é possível verificar quais são os diretórios previamente visitados.

Explorando os itens do menu superior do Nautilus, encontra-se no menu “Arquivos”, representado na figura 5.33, itens como “Nova Janela”, que abre uma nova janela do Nautilus, normalmente no diretório home do usuário, e “Nova Aba”, que abre o diretório atual em uma nova aba do Nautilus. A figura 5.34

3O login da sessão do Ubuntu quando rodando de um CD-ROM é ubuntu 4O número excessivo de HDs (na verdade, de partições) que são apresentados nessa figura está relacionado com configu-

ração particular do computador utilizado para esse teste

5.2. O gerenciador de arquivos 55

mostra como fica o Nautilus com duas abas abertas em uma mesma Janela. Pelo título da aba, sabe-se que são dois diretórios diferentes, contudo, dois diretórios com o mesmo nome estabelecido em posições diferentes da estrutura de arquivos pareceria ser o mesmo diretório quando sob essa avaliação.

Figura 5.33: Menu “Arquivos” do Nautilus.

No menu “Editar” encontra-se opções como copiar e colar (e similares) e a opção “Preferências”, esse menu encontra-se na figura 5.35.

Ao selecionar a opção “Preferências” abre-se a janela vista na na figura 5.36(a), cujas abas são explo- radas nas imagens da figura 5.36.

A figura 5.36(a) configura as “Visões” do Nautilus (em modo padrão), se os arquivos serão ícones ou listas, como é a organização dos arquivos (por nome, data, etc), e outras questões associadas a estética dos arquivos e diretórios.

A figura 5.36(b) configura o “Comportamento”. Com quantos cliques um arquivo deve ser aberto? Um ou dois? Sempre abrir os diretórios em janelas de um mesmo navegador ou cada diretório deve ser aberto em uma nova janela? Se o arquivo é executável, qual o comportamento desejado ao clicar nele? E como deve ser a integração entre a Lixeira e o Nautilus? Toda essas perguntas estão relacionadas à hábitos muito pessoais, de forma que qualquer sugestão também é uma impressão pessoal.

A figura 5.36(c) configura algumas questões de exibição. Na prática é a aba menos utilizada. A aba

5.2. O gerenciador de arquivos 56

Figura 5.34: Nautilus com duas abas abertas.

Figura 5.35: Menu “Editar” do Nautilus.

5.2. O gerenciador de arquivos 57

(a) (b) (c)

(d) (e) (f)

Figura 5.36: Abas da opção “Preferências” do Nautilus.

5.2. O gerenciador de arquivos 58

na figura 5.36(d) também é pouco utilizada, sendo que esta configura as opções que são visíveis quando os arquivos são listados em modo de “lista” (veja figura 5.37) e não de “ícones” (tal qual visto nas demais figuras, como por exemplo, a figura 5.34) ou na compacta (veja figura 5.38).

Figura 5.37: Modo de “Visão em lista” do Nautilus.

A aba da figura 5.36(e) controla algumas configurações da visualização preliminar dos arquivos. Ha- bilitar ou não habilitar essas configurações retarda ou acelera o processo de listagem dos arquivos. Isto é algo imperceptível em uma máquina boa, mas pode ser muito lento em uma máquina antiga quando, por exemplo, em um diretório com muitas imagens. Além disso, habilitar esse item significa manter um pequeno cache da impressão visual dos arquivos em um diretório específico para essa função. Imagine então se o arquivo ou a imagem for confidencial. Certamente não haveria o desejo de manter uma cópia desse arquivos no sistema, ainda que de pequenas proporções. A configuração padrão oferece um bom custo/benefício para a grande maioria dos usuários. Um exemplo do comportamento esperado é visto nas figuras 5.39, 5.40 e 5.41, sendo respectivamente a pré-visualização com arquivos de imagem, imagem e vídeo (o arquivo .ogv é o vídeo, o .ogg é arquivo de áudio) e arquivos pdf.

Por fim, concluindo a explicação da figura 5.36, temos a figura 5.36(f). Essa aba controla o que acontece quando conecta-se/insere uma mídia externa no computador. A configuração padrão “Perguntar o que fazer” é uma opção realmente inteligente, desde de que não exista hábitos muito fortes para forçar a uma modificação imediata dessas configurações. Além de “Perguntar o que fazer” existe a opção de “Fazer nada” ou de abrir algum programa específico, que pode ser o Nautilus (a fim de navegar pelos arquivos da mídia) ou um programa que, por exemplo, toca um CD de áudio (no caso do “Áudio CD”).

5.2. O gerenciador de arquivos 59

Figura 5.38: Modo de “Visão compacta” do Nautilus.

Figura 5.39: Pré-visualização de imagens no Nautilus.

5.2. O gerenciador de arquivos 60

Figura 5.40: Pré-visualização de imagem e de vídeo no Nautilus. O arquivo de áudio somente é acionado quando está selecionado.

Figura 5.41: Pré-visualização de documentos PDF. O PDF não é o único arquivo que possibilita esse tipo de recurso.

5.2. O gerenciador de arquivos 61

Seguindo a exploração do menu do Nautilus, temos a figura 5.42, que apresenta o menu “Ver”. Além dos modos de visão que já foram apresentados é possível adicionar ou remover elementos do gerenciador de arquivos, com a barra de status, por exemplo, e “Mostrar os arquivos ocultos”, que são aqueles arquivos cujo nome começa com um ponto (veja como fica o Nautilus com essa opção acionada na figura 5.43).

Figura 5.42: Opção “Ver” menu do Nautilus

Um detalhe que pode ser facilmente percebido pelas figuras 5.42 e 5.43 é a função da barra de status. Note na figura 5.42 que a barra de status apresenta dicas sobre a ferramenta apontada pelo mouse no menu. Enquanto a figura 5.43 ela menciona qual é a quantidade de arquivos naquele diretório e qual é o espaço livre no sistema5.

Voltando ao menu do Nautilus, observe na figura 5.44 o conteúdo da opção “Marcadores”. Nele é possível editar e adicionar marcadores.

A figura 5.45 mostra o conteúdo da opção Abas. Trata-se de simples ferramentas para gerenciar várias abas facilmente.

Note que nessa descrição de Menus, não foi apresentado o menu “Ir” isso é porque o seu conteúdo envolve os elementos que são apresentados na barra de ferramentas (a barra que está entre o menu

5Lembre-se que isso é uma sessão executada a partir do CD. O espaço disponível é a quantidade de memória RAM que ainda está livre. No caso de sistemas instalados essa informação está associada ao espaço livre na partição do HD no qual o diretório aberto está contido.

5.2. O gerenciador de arquivos 62

Figura 5.43: Exibindo os arquivos ocultos. Esses arquivos estão relacionados com as configurações dos programas executados, incluindo o próprio GNOME

Figura 5.44: Opção “Marcadores” do menu do Nautilus.

5.2. O gerenciador de arquivos 63

Figura 5.45: Opção “Abas” do menu do Nautilus.

principal do Nautilus e a barra de localização).

Assim, clicando com o botão direito do mouse sob o ícone nomeado “Computador”, apresenta-se a tela mostrada na figura 5.46 (com óbvias modificações entre configurações de computadores, como o número de HDs/partições e de dispositivos). Nesse ambiente é possível acessar dispositivos de CD/DVD e pendrives. Eles também será notados na barra lateral no modo “Locais” e no menu principal, em “Locais”.

Figura 5.46: Exibindo o conteúdo de “Computador”, ícone na barra de ferramentas.

A figura 5.47 apresenta o aspecto da opção “Localizar” da mesma barra de ferramentas. Nessa figura,

5.2. O gerenciador de arquivos 64

foi feita uma pesquisa pela expressão “001” e obteve-se um único retorno. Essa pesquisa foi restrita ao local “imagens”, ou desse diretório e em seus subdiretórios recursivamente.

Figura 5.47: Realizando buscas com o Nautilus.

É possível adicionar mais de um campo de restrição na pesquisa. Observe, na figura 5.47, no canto direito da imagem, abaixo de “Visão em Ícones” está escrito “Recarregar” para refazer a pesquisa e existe um sinal de soma. Clicando nesse sinal obtém-se o que está na figura 5.48. Portanto é possível adicionar uma definição para o “Local” e para o “Tipo de Arquivo”, mas não apenas uma definição para cada item. É possível pesquisar por imagens e documentos adicionando duas restrições por “Tipos de Arquivos” em dois diretórios específicos (desconexos por hierarquia imediata) adicionando duas restrições de “Locais”. Menciono duas restrições, mas na verdade podem ser tantas quantas forem desejadas.

Outra localização especial do Nautilus é o diretório virtual de “Rede” que pode ser vista na figura 5.49. O acesso a esse diretório virtual é dado pela barra lateral no modo “Locais” ou através do menu no item “Ir”. Esse diretório virtual localiza todos os computadores que compõem a rede interna. No caso, ele localizou uma rede Windows, um computador chamado “galileu” (uma distribuição GNU/Linux com o samba habilitado) e um compartilhamento em SFTP (na verdade, é o SSH, porém no modo de gerenciamento de arquivos não existe acesso ao shell, logo, o SSH transforma-se em SFTP apenas). Nesse exemplo, o serviço galileu não existe. Foi uma identificação errada do serviço que localizou galileu como se nele existisse um servidor samba (implementação livre do protocolo de comunicação de redes utilizado pelo Windows) em execução. Não existe. O acesso a essa rede Windows é demasiadamente simples, basta clicar no ícone referente e tratá-lo como se ele fosse um diretório. Portanto, resta discutir como acessar

5.2. O gerenciador de arquivos 65

Figura 5.48: Realizando buscas com o Nautilus, recursos adicionais.

um computador por SFTP através dessa região.

Figura 5.49: Acesso a rede interna pelo Nautilus.

Primeiro clique no ícone que se apresenta. Se for a primeira vez, deve aparecer uma mensagem informando que é a primeira conexão e pedindo confirmação para prosseguir. Aceite prosseguir. Em

5.2. O gerenciador de arquivos 66

seguida, aparecerá uma pequena caixa para a inclusão do login e da senha de acesso, como mostra a figura 5.50. Preencha esses campos e selecione “Conectar”.

Figura 5.50: Requisição de login e senha para acesso a um computador compartilhado por SSH.

Note na figura 5.50 que é possível memorizar o login e senha para sempre, até o fim da sessão, ou seja, até o usuário deslogar ou nunca memorizar, ou seja, esquecer a senha imediatamente. Recomenda-se que não memorize a senha de forma permanente.

Observe na figura 5.51 o resultado desse acesso. Note, particularmente, a barra de localização. Ela informa de maneira clara que se trata de um outro computador (note o stp:// no começo do endereço). Note também que existe uma menção a essa conexão na barra lateral (em modo de “Locais”). É possível desconectar esse login clicando com o botão direito nessa região e selecionando “Desmontar”, como mostra a figura 5.52.

O último diretório virtual a ser mencionado é a “Lixeira”. Esse diretório pode ser visto na figura 5.53. Caso exista algum arquivo na lixeira, pode-se clicar com o botão direito do mouse nele e selecionar “Restaurar”. Para eliminar os arquivos definitivamente, pode-se usar o “Esvaziar lixeira”, que está no canto superior direito da lixeira ou através do miniaplicativo que está no painel (no nosso caso, no painel inferior), conforme apresentado na figura 5.54. O acesso a esse menu é feito utilizando o botão esquerdo do mouse.

É possível acessar várias funções de gerenciamento dos arquivos utilizando clicando no arquivo com o botão direito do mouse. Ao clicar com o botão direito do mouse sobre um diretório observa-se um

5.2. O gerenciador de arquivos 67

Figura 5.51: Diretório raiz do computador galileu, compartilhado por SSH.

Figura 5.52: Desconectando o acesso ao computador galileu

5.2. O gerenciador de arquivos 68

Figura 5.53: Lixeira vista do Nautilus

Figura 5.54: Limpando a lixeira pelo mini aplicativo do painel

5.2. O gerenciador de arquivos 69

menu similar ao apresentado na figura 5.55 (difere-se com relação aos programas que estejam instalados no GNOME). A maior parte das funções são bem conhecidas dos usuários de computador, “Abrir”, “Copiar”, “Colar”, “Renomear”, “Propriedades”, “Abrir com outro aplicativo...” (que também é encontrado como “Abrir com...”) e “Mover para a lixeira” (também conhecido como “delete”). O item “Opções de compartilhamento” consiste em com compartilhar o diretório na rede. Compartilhar algo no GNU/Linux exige a instalação de um servidor de arquivos (nesse caso, o “samba” que uma versão livre do protocolo de redes utilizado pelo Windows). O item “Criar pacote...” consiste em criar um arquivo compactado (um .zip, por exemplo, muito embora no GNU/Linux sejam mais populares os formatos .tar.gz e .tar.bz2). O item “Criar link” consiste em criar um atalho para aquele item. Os itens “Criptografar” e “Assinar” estão relacionados a segurança pessoal do usuário (por exemplo, para quem quer esconder alguma coisa do root). E o item “Enviar para...” serve para enviar o arquivo por e-mail, mensagem instantânea, etc.

Ao clicar com o botão direito do mouse sobre um aquivo comum, encontra-se um menu similar ao apresentado na figura 5.56 (difere-se com relação ao tipo de arquivo que foi selecionado). Em princípio o menu é o mesmo apresentado na figura 5.55, as diferenças estão associadas ao tipo de arquivo que foi selecionado. Nesse exemplo, usa-se uma imagem, logo, a opção padrão para abrir a imagem é a visualização. Também existem programas pré-configurados no “Abrir com”, como o GIMP, o Firefox e o F-Spot (esses programas serão apresentados no próximo capítulo).

A ação de copiar certos arquivos e diretórios selecionados do diretório /usr/share/example-content para /home/ubuntu/Documentos é registrada na figura 5.57.

Ao selecionar a opção “Propriedades” que surge quando clica-se com o botão direito do mouse, surgem duas possibilidades distintas. A primeira é quando a ação é executada após selecionar um único aquivo. Essa situação é apresentada na figura 5.58.

A figura 5.58(a) apresenta a primeira aba da janela que contém o nome (que inclusive pode ser modificado) e as informações de quando foi acessado e modificado pela última vez, localização, o tipo e o tamanho do arquivo. No caso de um diretório, ao invés do tamanho do arquivo aparecem informações sobre o número e o tamanho total dos arquivos que o diretório contém.

A figura 5.58(b), contém informações sobre o dono e as propriedades do arquivo (quem pode ler, escrever e/ou executar o arquivo6).

A figura 5.58(c) contém a lista de programas que pode abrir aquele arquivo. É a lista que surge quando selecionamos “Abrir com...” desde que exista mais de dois itens nessa lista (até dois itens, o “Abrir com...” não é usado como o apresentado na figura 5.56). Também é nessa região que se define qual é o aplicativo padrão que é aberto, ou seja, quando se clica duas vezes7 no arquivo com o botão esquerdo do mouse.

6Note que a tela que a figura 5.58(b) seria a mesma que é apresentada na figura 3.1. De fato, é a mesma figura, porém na figura 3.1 foi habilitado o modo avançado de edição de propriedades, algo didático ao explicar as permissões de arquivos, mas nem tanto ao realizar a modificação em si.

7Lembrando que isso é uma configuração realizada pelo usuário. No modo padrão do GNOME do Ubuntu, usam-se dois

5.2. O gerenciador de arquivos 70

Figura 5.55: Menu acessível com o botão direito do mouse sob um diretório.

5.3. Opções de configuração do GNOME através do Ubuntu 71

Figura 5.56: Menu acessível com o botão direito do mouse sob um arquivo comum (com exemplo, um arquivo de imagem).

Nesse exemplo, existe apenas um aplicativo, portanto, esse é o aplicativo padrão, mas percebe-se que ele está selecionado. A figura 5.59 apresenta um exemplo que possuí duas opções.

Por fim, a figura 5.58(d) apresenta a última aba da caixa de propriedades que é uma região que permite adicionar notas pessoais sobre o arquivo.

5.3 Opções de configuração do GNOME através do Ubuntu

Antes de prosseguir, é necessário definir o que são as opções de configuração do GNOME. Define-se, nesse texto, opções do GNOME como tudo aquilo que pode afetar o visual ou o funcionamento do GNOME por ele mesmo (ou seja, excluindo-se programas modificadores do comportamento). A expressão “através do Ubuntu” serve para destacar que existem outras opções, mas isso não significa que elas estejam instaladas.

Outro ponto é que algumas configurações são intrínsecas da administração do sistema, ou seja, são tarefas do administrador. Nesse ponto do texto, as configurações abordadas estão associadas as ações de usuários comuns para usuários comuns.

Todas as opções podem ser acessadas através do item “Sistema” do menu principal (vide figura 5.10).

A primeira configuração a ser ajustada é a aparência do GNOME. Selecionado a partir do menu principal, “Sistema” >> “Preferências” >> “Aparência”, obtém-se a janela da figura 5.60. A primeira aba

cliques, em outras distribuições ou após a modificação do usuário, pode ser apenas um clique.

5.3. Opções de configuração do GNOME através do Ubuntu 72

(a) (b)

(c)

Figura 5.57: Copiando arquivos de um diretório para o outro.

5.3. Opções de configuração do GNOME através do Ubuntu 73

(a) (b)

(c) (d)

Figura 5.58: Propriedades de um único arquivo.

5.3. Opções de configuração do GNOME através do Ubuntu 74

Figura 5.59: Configurando o aplicativo preferencial para abrir um certo arquivo.

5.3. Opções de configuração do GNOME através do Ubuntu 75

dessa janela consiste na seleção do tema. Para trocar o tema, basta selecionar qualquer um da lista (cujos previews estão nessa janela), onde a troca ocorre instantaneamente e possibilita avaliar se deseja manter ou não o tema. Um exemplo é apresentado na figura 5.61. É possível personalizar o tema selecionando “Personalizar...”, dessa forma, é possível criar um novo tema pela combinação dos vários elementos de cada tema já instalado. Ou seja, ícones de um tema, formato de janela de outro tema e cor de um terceiro e assim sucessivamente.

Figura 5.60: Configurando a Aparência do GNOME.

A aba seguinte desse mesmo aplicativo configura a figura do plano fundo (conhecido como papel de parede) do computador, o que pode ser visto na figura 5.62. Seu uso é bem intuitivo e é fácil adicionar um novo papel de parede selecionando “Adicionar”. Para trocar o papel de parede basta selecionar a imagem desejada.

A figura 5.63 mostra a aba seguinte que configura as fontes que são utilizadas no sistema. Antes de fazer qualquer modificação anote quais são as fontes utilizadas e qual o tamanho. É muito fácil selecionar uma configuração (combinação de fonte e tamanho) que fica visualmente desagradável. Nota especial para a renderização. Muitos diriam que a utilização de uma renderização específica depende do gosto do usuário. Até é verdade, mas seguir a recomendação para monitores LCDs (“Suavização de subpixel”) tende a produzir o melhor aspecto para esses monitores.

5.3. Opções de configuração do GNOME através do Ubuntu 76

Figura 5.61: Experimentando novos temas.

Figura 5.62: Configurando o papel de parede.

5.3. Opções de configuração do GNOME através do Ubuntu 77

Figura 5.63: Configurando a fonte.

A tela seguinte representa a configuração da interface. Na figura 5.64 é possível perceber que essa tela possui poucas configurações. A configuração mais interessante é o “Rótulo dos botões na barra de ferramentas”. Por exemplo, a figura 5.65 mostra como fica o Nautilus se, ao invés de “Texto abaixo dos ícones”, for selecionado “Apenas ícones” (figura 5.66).

Contudo, o Nautilus não é o único programa afetado por essa configuração Todo programa que utiliza o GTK é alterado em concordância com essa configuração (tal qual nas outras abas).

Por fim, temos a aba que habilita os efeitos visuais (figura 5.67). Embora muito elegantes e bonitos, nem sempre são uma opção inteligente e requer uma placa de vídeo 3D adequadamente instalada.

Uma das principais questões de uma interface gráfica consiste em estabelecer o que se chama de comportamento padrão. Por exemplo, quando um programa solicita abrir o navegador, ele pergunta à interface gráfica qual é o navegador padrão. Isso é diferente de definir qual é o aplicativo que deve ser aberto ao clicar em um certo arquivo. O programa “Aplicativos preferenciais”, visível na figura 5.68 e acessível em “Sistema” >> “Preferências” >> “Aplicativos preferenciais”, permite definir quais são os aplicativos “padrão”. É interessante que o usuário deixe para realizar esse tipo de configuração quando tiver formado uma opinião sobre os aplicativos equivalentes. Cada distribuição tende a ter sua própria coletânea de aplicativos preferenciais.

5.3. Opções de configuração do GNOME através do Ubuntu 78

Figura 5.64: Configurando a interface.

Figura 5.65: Resultado da configuração de interface sob Nautilus.

5.3. Opções de configuração do GNOME através do Ubuntu 79

Figura 5.66: Selecionando “Apenas Ícones” na configuração dos “botões da barra de ferramentas”. Observe o preview da opção selecionada.

5.3. Opções de configuração do GNOME através do Ubuntu 80

Figura 5.67: Configurando os efeitos visuais.

Figura 5.68: Configurando os aplicativos preferenciais.

5.3. Opções de configuração do GNOME através do Ubuntu 81

Outra questão está associado aos atalhos de teclado. Por exemplo, ao digitar ALT+F2 abre-se uma caixa para executar aplicativos (esse atalho é muito utilizado pelos tutoriais encontrados na internet). Para personalizar esses atalhos, utilize o aplicativo “Atalhos de teclado” que encontra-se em “Sistema” >> “Preferências” e cuja imagem pode ser vista na figura 5.69. É possível, inclusive, criar novos atalhos. Caso queira utilizar a tecla “windows” do teclado, refira-se a ela como MOD4.

Figura 5.69: Configurando os atalhos de teclado.

Em “Menu Principal” encontrado em “Sistema” >> “Preferências”, aciona-se o programa conhecido como “Alacarte”. Nele é possível editar o que aparece no menu principal do GNOME (figure 5.70).

Em “Sistema” >> “Preferências” >> “Mouse” (figura 5.71) é possível configurar o mouse, ajustando a orientação (para destros ou canhotos) a velocidade de deslocamento, o rastro, a sensibilidade, etc. Além disso, é possível configurar opções de acessibilidade, para quem, por exemplo, deseja manipular o mouse a partir das teclas de navegação do teclado.

Na figura 5.72 observa-se o aplicativo de configuração do teclado, acessível em “Sistema” >> “Preferên- cias” >> “Teclado”. Nele configura-se o teclado do usuário no GNOME. Não é o mesmo que configurar o teclado para o sistema inteiro (todos os usuários, terminal e outras interfaces gráficas). A principal tela de configuração é apresentada na figura 5.72(b), embora, para algumas pessoas pode ser muito importante configurar a sensibilidade e o intervalo de digitação, que se não estiver corretamente ajustado pode fazer com que qualquer pequeno toque no teclado faça surgir inúmeros caracteres no texto.

A figura 5.73 apresenta o aplicativo acessível em “Sistema” >> “Preferências” >> “Proteção de Tela”, que permite configurar a proteção de tela. Qual a proteção de tela, intervalo para acionar a proteção e se deseja ou não que ela trave a tela quando for ativa, além da configuração particular que cada proteção de tela pode ter. Atenção especial ao configurar algumas proteções de tela que requerem a biblioteca GLX

5.3. Opções de configuração do GNOME através do Ubuntu 82

Figura 5.70: Configurando o menu.

ativa, ou seja, que requer aceleração 3D da placa de vídeo instalada. É fácil perceber esse tipo de proteção de tela, pois ela fica muito lenta quando roda em um sistema que não possua recursos necessários.

A figura 5.74 mostra uma imagem do aplicativo acessível em “Sistema” >> “Preferências” >> “Vídeo”. Esse aplicativo permite configurar o vídeo do computador8.

Um aplicativo importante para o bom uso do computador é o Monitor do sistema, acessível em “Sistema” >> “Administração” >> “Monitor do sistema”. Esse aplicativo permite acompanhar o uso do computador (recursos de CPU, memória, rede e HD) (figuras 5.75 e 5.76), lista e permite terminar de forma forçada os aplicativos que estão em execução no sistema (figuras 5.77), além de fornecer informações sobre a máquina (figura 5.70).

Também é possível ajustar a data e a hora com o aplicativo “Sistema” >> “Administração” >> “Data e hora”. Observa-se esse aplicativo na figura 5.79. É importante que apenas modifique a hora após acertar o fuso horário.

Muitas vezes o relógio do sistema está errado, mas não é o relógio que está errado, é o fuso horário. Para corrigir a configuração do fuso horário, clique na opção “Fuso horário” da figura 5.79, e aparecerá a tela da figura 5.80. O horário oficial de Brasília é o horário de “Sao_Paulo” nas distribuições GNU/Linux.

8A máquina que rodou esse sistema não possui recursos de vídeos satisfatórios, por isso, a “Taxa de renovação” com valor zero.

5.3. Opções de configuração do GNOME através do Ubuntu 83

Figura 5.71: Ajustando as configurações de mouse.

5.3. Opções de configuração do GNOME através do Ubuntu 84

(a) (b)

Figura 5.72: Configurando as preferências do teclado.

Figura 5.73: Definindo o protetor de tela.

5.3. Opções de configuração do GNOME através do Ubuntu 85

Figura 5.74: Ajustando as configurações de vídeo.

5.3. Opções de configuração do GNOME através do Ubuntu 86

Figura 5.75: Monitorando os recursos de forma gráfica.

Figura 5.76: Exibindo o espaço em HD.

5.3. Opções de configuração do GNOME através do Ubuntu 87

(a)

(b)

Figura 5.77: Listando e terminando processos ativos no computador.

5.3. Opções de configuração do GNOME através do Ubuntu 88

Figura 5.78: Aba “sistema”, fornece informações sobre o sistema e a máquina.

5.4. Conclusão 89

Figura 5.79: Configurando a “data e a hora”.

5.4 Conclusão

O GNOME tende a oferecer uma experiência agradável ao usuário iniciante. Sua interface limpa é considerado o principal ponto favorável a essa interface. De fato, nesse texto foram apresentadas todas as principais características do GNOME e seus principais programas de configuração não administrativos.

O que não foi escrito são os recursos avançados de edição de configurações, a forma de realizar funções administrativas do “jeito” GNOME e os aplicativos propriamente dito. Uma visão geral informativa de alguns dos principais aplicativos será apresentado em um capítulo seguinte. Em seguida, será apresentado um guia de sobrevivência e após uma introdução ao terminal de comando, volta-se a avaliar as principais questões de administração, onde o “jeito” GNOME realizar as funções administrativas mais importantes para um usuário será descrito.

5.4. Conclusão 90

Figura 5.80: Ajuste do fuso horário do computador.

Capítulo 6

O KDE

O KDE é uma interface gráfica que utiliza o QT, uma caixa de ferramentas para criação de interfaces. Esse detalhe técnico é interessante, pois quando se menciona “ajustar a configuração visual do KDE”, na prática significa ajustar a configuração visual do QT. Isso significa que todo aplicativo que não utilizar o QT pode exigir uma configuração adicional com outro aplicativo (a exemplo dos aplicativos que utilizam o GTK+, o concorrente do QT que é utilizado pelo GNOME e seus aplicativos)1.

O KDE 4 possuí uma visual extremamente elegante. Logo após a inicialização do Kubuntu, observa-se a tela da figura 6.1.

Observe no canto superior esquerdo uma região mais escura que contém dois ícones. No painel inferior é possível ver miniaplicativo para hora, menu, rede, som, entre outros. Os conceitos de miniaplicativo de painel introduzidos em detalhes no capítulo anterior são aplicáveis no KDE, embora existem outros miniaplicativos (os “Olhos” também podem ser adicionados no KDE). A configuração padrão do KDE contém um único painel, mas nada impede que seja adicionado outros.

Uma visão geral do menu pode ser obtida na figura 6.2. Ele composto por abas, onde cada aba possui funções específicas. Na aba inicial têm-se os programas “favoritos”, que são os programas que os desenvolvedores do Kubuntu consideram mais importantes.

A figura 6.3 apresenta a segunda aba, onde os programas são divididos em categorias definidas pelas suas funções. Clicando em uma categoria, por exemplo, “Multimedia” o menu muda para o que é visto na figura 6.3(b). Para voltar ao menu anterior, clique com o botão esquerdo do mouse na região que ficou destacada em azul2, no extremo esquerdo da figura. Esse menu pode ser um pouco confuso para os usuários que originam-se de outros sistemas operacionais, mas nada como um pouco de insistência para

1Note que esse texto é um espelho do texto introdutório do GNOME. Não poderia ser diferente, visto que são interfaces concorrentes e equivalentes.

2Ela estava nessa cor porque o mouse estava sobre ela.

91

92

Figura 6.1: Visão do KDE ao iniciá-lo.

Figura 6.2: O menu padrão do KDE 4.

6.1. O gerenciador de arquivos 93

superar essa pequena barreira.

(a) (b)

Figura 6.3: Aba “Aplicativos” do menu do KDE 4.

6.1 O gerenciador de arquivos

Anteriormente o Konqueror era o gerenciador de arquivos padrão do KDE. Hoje, utiliza-se o Dolphin e o Konqueror foi categorizado com um navegador para internet apenas. Digo “categorizado” porque na prática ele não perdeu recursos. Veja na figura 6.4 que ele pode tanto servir de navegador de internet, quanto de gerenciador de arquivos e pode executar as duas funções ao mesmo tempo.

O Dolphin é apresentado em sua forma básica na figura 6.5. Ele é acessível através do menu na aba “Favoritos” (vide figura 6.2).

Uma particularidade do KDE é que ele possui um significativo número de opções de configuração. Vê-se na figura 6.5 que só ela contém a barra de ferramentas, o menu, uma barra lateral com os locais no lado esquerdo e uma barra lateral com informações sobre o arquivo/diretório do lado direito. Mas isso é o básico. A figura 6.6 contém o mesmo programa com uma coleção significativa de opções ativas, onde percebe-se a árvore de navegação dos diretórios, o terminal na parte inferior da tela, duas áreas do diretório (poderiam ser três), sendo que uma dessas áreas foi configurada para ter o barra de localização

6.1. O gerenciador de arquivos 94

Figura 6.4: O Konqueror, o navegador de internet multifunções.

Figura 6.5: O Dolphin, o atual gerenciador de arquivos do KDE.

6.1. O gerenciador de arquivos 95

de forma que seja possível ler o nome do diretório de forma completa, e na outra área é utilizado o estilo de botões. Veja também, na parte de baixo da área da direita que existe um “Filtro” que permite escolher qual o conteúdo deseja-se ver naquela região (esse filtro pode ser utilizado nas duas áreas, se desejado). O KDE também permite que a barra de ferramentas seja completamente configurada, de forma que qualquer comando pode ser colocado na barra de ferramentas e, inclusive, os ícones podem ser modificados livremente.

Figura 6.6: O Dolphin em um modo mais completo.

Não deve ser difícil perceber que é mais demorado configurar o KDE do que configurar o GNOME. Muitos críticos do KDE consideram essa grande quantidade de opções como um problema, pois impõem limitações entre o usuário e o sistema. O defensores do KDE afirmam que ninguém necessita realizar qualquer modificação de configuração para o uso do computador e que os recursos de configuração estão ali para quem quer otimizar sua produtividade. É um consenso, entretanto, que o número de opções requer meticulosa e detalhada avaliação por parte do usuário, que não tem como adivinhar qual é a melhor solução que lhe agrada antes de começar a utilizar o sistema. Aqueles que optarem pelo KDE devem ser criteriosos quanto à ativação ou desativação de recursos, lembrando que existe um tempo necessário para que o indivíduo adapte-se a uma certa configuração e que a troca sucessiva e descontrolada do layout do sistema não permitirá essa adaptação. Se é um conselho útil para o usuário experiente, torna-se fundamental para o novato.

6.2. Configurando o KDE 96

6.2 Configurando o KDE

Apesar das inúmeras opções de configuração existentes no KDE, quase todas estão resumidas em uma única interface3, visível na figura 6.7.

Figura 6.7: Central de configuração do KDE.

Nessa interface (seja na guia geral ou na guia de recursos avançados) é possível fazer de tudo. Editar tema, configurar data e hora do sistema, configurar aplicativos preferências e os aplicativos associados a cada tipo de arquivo. O universo de opções é extraordinário. Os conceitos fundamentais descrito no GNOME, se mantém, mas o número de ajustes aumenta muito.

6.3 Conclusão

O KDE é uma interface muito poderosa. Todos os recursos, básicos ou avançados, estão acessíveis a quem desejar. A liberdade de configuração se manifesta no seu máximo. Mas o KDE passa por uma fase ruim.

Ainda na versão 9.04 do Kubuntu é possível ver mensagens com a representada pela figura 6.8. Essa fase está terminando. Esses bugs estão diminuindo cada vez mais, mas ainda existem. Não faz parte da filosofia do GNU/Linux esconder problemas, pelo contrário, divulga-se ao máximo para otimizar a resposta de uma solução.

3Uma curiosidade, o openSUSE e a Mandriva adotaram esse tipo de filosofia para suas distribuições. Nelas é possível encontrar um aplicativo que centraliza as chamadas de configuração em geral, que rodam tanto no KDE, quanto no GNOME.

6.3. Conclusão 97

Figura 6.8: Um bug comum, de uma fase que está terminando no KDE.

Acredita-se, sem falsa ideologia, que a versão do KDE que estará no Kubuntu 9.10 seja realmente estável e usável sem que seja observado qualquer tipo de problema.

Quanto a isso também é interessante observar que muitas distribuições que possuem um ciclo de vida menor ainda disponibilizam o KDE 3.x para a instalação oficial. Isso serve para que as pessoas que necessitam de trabalhar em um computador estável tenham acesso a essa estabilidade. O mesmo acontecerá quando o GNOME for para a versão 3 em 2010 (embora espere-se que não exista tantos problemas nessa migração quanto os que aconteceram na virada do KDE 3 para o 4).

Capítulo 7

Os Programas do GNU/Linux

A liberdade é o maior benefício do código livre. Entre outras coisas, promove o surgimento de inúmeros programas que possuem a mesma finalidade. Abaixo serão listados alguns dos principais aplicativos utilizados no GNU/Linux, mas nem de perto chega a ser uma lista completa ou unânime entre os usuários.

Aqui é feita uma escolha de limitar os programas existentes para certas funcionalidades, evitando que o usuário iniciante sinta-se perdido em meio a um número muito alto de opções. É altamente recomendado que, com o passar do tempo, o usuário experimente as opções existentes para criar sua própria lista de aplicativos prediletos.

Os programas foram divididos em categorias baseadas por funcionalidades que não envolvem aplica- tivos para a administração do sistema (esses serão vistos adiante). Todos os aplicativos apresentados serão acompanhados pelo seu endereço na internet. Sendo assim, para maiores esclarecimentos sobre os recursos de cada um (e até para visualização do programa, para os que não acompanharem figuras) recomenda-se uma visita às páginas listadas.

Outro ponto é que nem todos os aplicativos que são mencionados nesse texto estão instalados no sistema padrão do Ubuntu/Kubuntu. Alguns devem ser instalados posteriormente. A instalação de programas será apresentado adiante.

7.1 Criar, Editar e Ler Documentos

Existem diversos tipos de documentos de texto. Alguns são apenas texto puro e outros produtos gerados por editores de textos proprietários. Essa seção introduz os principais programa para edição e visualização de documentos.

98

7.1. Criar, Editar e Ler Documentos 99

7.1.1 Edição de Arquivo Texto Padrão

O arquivo de texto padrão contém apenas texto e são, usualmente, arquivos com extensão .txt. Contudo, a extensão nesse caso aplica-se mais como um diferencial dispensável do que como uma definição do tipo de arquivo. São arquivos textos aqueles que contém texto, independente da extensão que possua. Quase todos os arquivos de configuração do sistema são arquivos textos e muitos deles sequer possuem extensão, enquanto outros usam .conf. Um tipo de arquivo texto muito comum é o README, que contém informações que devem ser lidas pelo usuários.

Quase todos os editores de textos abrem esse tipo de arquivo básico e existem inúmeros programas nessa categoria. Há três programas gráficos que se destacam em meio aos demais.

No GNOME têm-se o gedit1. Esse pequeno programa de texto também é muito utilizado para criar e editar código fonte em quase todas as linguagens existentes (com aplicação de cores ao reconhecer o código fonte), sejam elas de programação ou de marcação2. A figura 7.1 apresenta o gedit. Note na figura 7.1(a) que ele reconhece sintaxe de programação. A figura 7.1(b) denota sua capacidade em realizar verificação ortográfica, a figura 7.1(c) é tela de preferência do gedit, acessível a partir do menu “Editar”. Destaque ainda para os plugins, visíveis na figura 7.1(d), e que acrescentam inúmeros recursos ao gedit.

Para o KDE seu equivalente é o Kate3. Ele possui as mesmas qualificações descritas para o gedit, embora seja visualmente diferente e tenha um interface com mais recursos à vista (seguindo a filosofia do KDE). Veja a figura 7.2.

7.1.2 Edição de Documentos Formatados

Esses documentos não são texto puro. O documento de texto desse tipo mais famoso é o .doc/.docx, gerado pelo Microsoft Word. O .doc é um formato de documento não livre. Portanto, toda a implemen- tação que é utilizada para ler/editar esse tipo de documento foi obtida através de engenharia reversa. O que não permite assegurar sua compatibilidade plena com um editor que não seja o Microsoft Word.

No GNU/Linux, o tipo de documento formatado mais comum é o .odt (OpenDocument Text) que é compatível com as principais suítes de escritório do GNU/Linux, das quais destacam-se o OpenOffice4

(figura 7.3) e o Koffice5. O fato é que o OpenOffice é a principal suíte de escritórios do mundo livre e o Koffice é apenas um coadjuvante (mesmo para quem vai usar apenas o KDE), assim como são as demais suítes que existem. O que não impede que alguém utilize o Koffice, ou outro editor, no lugar do

1gedit - http://projects.gnome.org/gedit/ 2A linguagem de marcação é um tipo de linguagem que permite escrever textos formatados a partir de texto puro. O

exemplo mais popular é o LATEX. 3Kate - http://kate-editor.org/ 4OpenOffice - http://www.openoffice.org 5Koffice - http://www.koffice.org

7.1. Criar, Editar e Ler Documentos 100

(a) (b)

(c) (d)

Figura 7.1: gedit, o editor de textos do GNOME.

7.1. Criar, Editar e Ler Documentos 101

Figura 7.2: Kate, o editor de textos do KDE.

OpenOffice. Ambas as suítes possuem compatibilidade com o .doc, mas infelizmente essa compatibilidade não é tão perfeita. Existe problemas com formulários e com a importação de fórmulas matemáticas.

As duas suítes permitem editar fórmulas matemáticas, veja a figura 7.4 para o caso do OpenOffice. Contudo, ao abrir o editor de fórmulas matemáticas, percebe-se grandes diferenças entre o editor do Microsoft Word e o das suítes livres. Há quem diga que essas fórmulas são feias e esse editores do OpenOffice e do Koffice são fracos nesse ponto. Não é muito difícil concordar com essa frase, mas também é possível dizer o mesmo do Microsoft Word quando comparado com as fórmulas matemáticas do LATEX.

Devido a questões de registro no Brasil, o OpenOffice teve de adotar outro nome e é conhecido como BrOffice6. Tanto o site oficial internacional quanto o Brasileiro possuem uma vasta quantidade de informações sobre como usar o programa.

7.1.3 Editores de LATEX

O LATEXé uma linguagem de marcação utilizada para escrever documentos formatados muito utilizada pelo meio acadêmico (embora não exista motivo para considerá-la limitada a textos científicos). Portanto, sua edição pode ser feita com qualquer programa que edite texto puro (como o gedit e Kate, por exemplo).

6BrOffice - http://www.broffice.org/

7.1. Criar, Editar e Ler Documentos 102

Figura 7.3: OpenOffice, esse texto sofreu alteração na direção da página.

Figura 7.4: OpenOffice.

7.1. Criar, Editar e Ler Documentos 103

O problema surge quando percebe-se que, para utilizar um editor de texto puro, é necessário conhecer uma grande quantidade de comandos.

Na verdade, o gedit possui um plugin7, desenvolvido por terceiros, que permite fazer essa edição com a ajuda de diferentes recursos no documento. Contudo, seu desenvolvimento ainda não está tão estável. O gedit também permite que sejam criados comandos que inserem pedaços de código no texto que está sendo escrito. Isso diminui muito o trabalho com o código, mas o comando deve ser personalizado e isso representa um grande trabalho de configuração que dificilmente irá incluir todos os comandos LATEXexistentes. Esse plugin está disponível na nova versão do Ubuntu através dos repositórios oficiais.

Para contornar essa questão com pouco esforço, é necessário que utilize-se uma IDE (Integrated Development Environment) compatível com o LATEX. A IDE mais desenvolvida com essa finalidade é o Kile8 (figura 7.5). O Kile é um programa KDE, mas mesmo quem utilize o GNOME terá de utilizar o Kile caso deseje uma rica interface visual para escrever em LATEX. A outra opção é escrever em LATEXsem utilizar um ambiente de desenvolvimento integrado.

Figura 7.5: Kile, versão KDE 3.

O Kile recentemente ganhou uma versão para o KDE 4, que pode ser observada na figura 7.6.

Infelizmente, não há como apresentar a linguagem LATEX nesse texto, mas o Apêndice G fornece links para acesso a guias completos de como escrever em LATEX.

7LaTeX para o gedit - http://live.gnome.org/Gedit/LaTeXPlugin 8Kile - http://kile.sourceforge.net/

7.1. Criar, Editar e Ler Documentos 104

Figura 7.6: Kile, versão KDE 4.

O código LATEX, quando compilado, gera um PDF (também pode gerar um PostScript, mas eles possuem muitos megabytes a mais do que o PDF).

7.1.4 Visualização e Edição de PostScript e PDF, entre outros

O PDF (Portable Document Format) é um formato de arquivo livre criado pela Adobe Systems em 1993 para permitir representar um documento de forma independente do sistema operacional, software ou hardware utilizado para criá-los. Contudo, apenas em 2008 a organização de padrões internacionais reconheceu o PDF como formato padrão.

O PostScript é ainda mais antigo. Data de 1983 e foi criado como uma linguagem de marcação. Foi um tipo de arquivo popular antes de criarem o PDF e ainda é muito utilizado em alguns meios.

O programa mais utilizado para visualizar PDF é o Adobe Reader9. Ele é um programa gratuito criado pela Adobe Systems, mas não é código livre. Questões filosóficas sempre interpõem-se entre esse programa ele o seu uso no GNU/Linux. Basicamente, uma distribuição GNU/Linux não pode distribuí-lo com o seu conjunto de programas por conta das questões de licença. A questão principal aqui é que o Adobe Reader é o único aplicativo compatível com todas as versões de PDF existentes.

9Adobe Reader - http://www.adobe.com/br/products/reader/

7.1. Criar, Editar e Ler Documentos 105

Dos programas livres, temos o Evince10 (figura 7.7). Um excelente visualizador de PDFs para o GNOME, que não lê apenas PDFs. Ele lê PostSripts (.ps), DVI (.dvi), DJVU (.djvu) entre outros formatos de arquivo da mesma categoria.

Figura 7.7: Evince, leitor de arquivos digitais, PDF inclusive.

No KDE, o equivalente ao Evince é o Okular11. Esse aplicativo é novo e ainda convive com oKPDF, entre outros, em uma mesma distribuição (dependendo da versão do KDE da distribuição, ele não estará disponível, sendo o KPDF o leitor padrão). A grande diferença entre o KPDF e o Okular é que o primeiro é um leitor de PDFs, enquanto o segundo segue a filosofia do Evince em agregar diversos formatos de arquivos como o PostScript, DVI, etc.

Curiosamente, quem utilizar o Kile 2.0 terá de ter o KPDF, KGhostView (para visualizar PostScrit) e o KDVI (para visualizar arquivo DVI). É possível modificar esse comportamento para que esse aplicativo utilize o Okular ou mesmo o Evince. Algumas distribuições já efeturam essa modificação, enquanto outras não. O Kile 2.1 usa o Okular como aplicativo padrão na maioria das distribuições que o contém. De qualquer forma não é nada que o usuário precise se preocupar, pois ao instalar o Kile todos os aplicativos necessários para o seu funcionamento serão instalados, apenas o Adobe Reader (que é um aplicativo recomendado, mas não obrigatório) não será instalado.

Para editar um PDF, pode-se utilizar o PDFedit12, que é o programa que mais se aproxima do 10Evince - http://projects.gnome.org/evince/ 11Okular - http://okular.kde.org 12PDFedit - http://pdfedit.petricek.net/index_e.html

7.1. Criar, Editar e Ler Documentos 106

programa proprietário e pago Adobe Write13.

Também é possível editar o PDF com o Kwrite (um dos programas da suíte Koffice). Mas não é uma solução tão elegante quanto o PDFEdit.

Outras opções seriam converter o arquivo PDF para inúmeros arquivos de imagens (um para cada página do PDF) e depois editar as imagens (seria até possível editar imagens em lote, caso deseje). Embora essa não seja a alternativa mais confortável (especialmente porque o texto não é mais texto e sim imagem), é uma alternativa que sempre funciona14.

Um outro tipo de arquivo comum entre o meio acadêmico é o Microsoft Compiled HTML Help (.chm). Apesar de ser um formato de arquivo originalmente criado para abrir arquivo de ajuda do Windows, ele é hoje muito utilizado na distribuição de documentação pela internet. Para visualizá-lo, pode-se utilizar o Okular ou ChmSee15. Existem outros, mas esses são os mais populares hoje.

7.1.5 Edição de Planilhas

As suítes de escritórios OpenOffice e o Koffice também possuem o editor de Planilhas. E novamente o Koffice é menos utilizado pela comunidade. O OpenOffice possui uma excelente compatibilidade com o formato proprietário .xls (do Microsoft Excel), salvo recursos avançados de soluções implícitas e implementação em visual basic que não são utilizados pela grande maioria dos usuários (o OpenOffice tem recursos alternativos, mas não consegue traduzir isso do .xls para o seu formato). A figura 7.8 mostra o editor de planilhas do OpenOffice editando um arquivo .xls.

O formato padrão de planilhas do OpenOffice é o .ods (OpenDocument Spreadsheet).

7.1.6 Edição de Apresentações

As mesmas suítes de escritório apresentadas também possuem seu editor de apresentações. E novamente o OpenOffice destaca-se entre os usuários.

Sua compatibilidade com o formato .ppt é boa, embora também exista alguns problemas de conversão (por exemplo, com equações matemáticas). Criar uma apresentação com o OpenOffice é mais interessante do que criar uma apresentação em Koffice. O motivo principal está associado ao fato de existir uma versão portável16 para o OpenOffice, o que permite transportar o arquivo de apresentação e editá-lo em qualquer

13Lembre-se, é possível utilizar um programa Windows no GNU/Linux, mas é algo que ninguém deseja como primeira opção.

14Note que apesar do PDF ser um formato livre, ele sofreu algumas modificações antes de atingir a maturidade em 2008. Os arquivos legados são um problema que existe.

15ChmSee - http://chmsee.gro.clinux.org, essa página está escrita em uma língua oriental. 16Versão portável é uma versão que funciona a partir de um pendrive.

7.1. Criar, Editar e Ler Documentos 107

Figura 7.8: Editor de planilhas do OpenOffice.

lugar, mesmo que não exista o OpenOffice instalado na máquina.

Não é incomum que, quem utilize programa livre para criar imagens e não tenha qualquer efeito especial em suas apresentações, exporte o arquivo de apresentação para o formato PDF. Isso assegura a compatibilidade visual da apresentação em qualquer meio que ela seja apresentada17.

Também é possível criar apresentações com o LATEX, o que assegura uma ótima qualidade das equações matemáticas.

7.1.7 Outros Arquivos de Documentos e Programas

O OpenOffice também conta com um banco de dados, um editor de imagem vetorial e um editor de fórmulas matemáticas. Uma questão interessante por trás do editor de fórmulas matemáticas é que é possível salvar um arquivo de fórmulas. O editor de imagens vetorial será visto adiante. O banco de dados lembra um pouco o Microsoft Acess. Ele é o mais novo dos programas do OpenOffice.

O Koffice também possui programas equivalentes para edição de imagens vetoriais, banco de dados e fórmulas matemáticas e possui outros aplicativos como um editor de imagens, entre outros.

17Infelizmente, é observado algumas diferenças visuais entre apresentações criadas no OpenOffice para Windows e para o GNU/Linux. Normalmente, isso não afeta o aspecto geral da apresentação.

7.2. Aplicativos de Internet 108

Figura 7.9: Editor de apresentações do OpenOffice.

7.2 Aplicativos de Internet

Usualmente, um computador pessoal acessa a internet para realizar cinco atividades básicas:

1. Navegar pelas páginas da web.

2. Receber e enviar e-mail.

3. Utilizar protocolos de para conversar na internet, como chat, MSN, Google Talk, Skype, etc.

4. Compartilhar arquivos, que entre inúmeras tecnologias temos o SCP/SFTP, FTP, Samba, P2P, etc.

5. Gerenciar máquinas remotas. Essa não é uma atividade de um computador pessoal típico, mas ainda pode ser uma atividade pessoal dependendo da atividade do usuário.

Usualmente, a atividade de gerenciar máquinas remotamente não é uma tarefa para ser feita por um aplicativo gráfico. Embora exista aplicativos gráficos utilizando vnc ou rdesktop que permitem isso, essa é uma tarefa típica de acesso por linha de comando (terminal) e por isso não será tratado nesse capítulo.

7.2. Aplicativos de Internet 109

7.2.1 Navegar Pelas Páginas da Web

A navegação pelas páginas da web é feita com um navegador de internet. O projeto GNOME possui o navegador Epiphany18, enquanto o projeto KDE tem o Konqueror19.

Contudo, nessa categoria o Mozilla Firefox20 (ou, simplesmente, Firefox) é imbatível, em ambos os ambientes (veja a figura 7.10). E em pouco tempo ele também será o mais utilizado entre todos os sistemas operacionais (em alguns lugares do mundo ele já atingiu essa marca).

Figura 7.10: Firefox, navegador de internet.

Existe uma vantagem no Epiphany relacionada ao fato de que ele é uma navegador que consome poucos recursos computacionais, portanto é um ótimo navegador para máquinas muito antigas.

Outro navegador que merece ser mencionado é o Opera Browser21. Um também leve navegador de internet que é gratuito, mas não é livre. E tal qual outros programas não livres, usualmente somente é possível tê-lo depois de ter instalado uma distribuição no computador.

Infelizmente, existem páginas na internet que não funcionam adequadamente em um navegador de internet. Criadas por pessoas com qualificações questionáveis, elas limitaram-se a desenvolver páginas

18Epiphany - http://projects.gnome.org/epiphany/ 19Konqueror - http://www.konqueror.org/ 20Mozilla Firefox - http://www.mozilla.com/firefox/ 21Opera Browser - http://www.opera.com/

7.2. Aplicativos de Internet 110

que funcionem apenas em um navegador de internet, o Internet Explorer, que felizmente não tem versão nativa para GNU/Linux. Sempre que possível, fuja dessas páginas. Quando não for possível, pode-se utilizar o IEs4Linux22. Esse projeto instala o Internet Explorer do Windows no GNU/Linux. Mas Atenção: Esse tipo de recurso é para situações incontornáveis ou para desenvolvedores de páginas Web que necessitam testar se seu produto é compatível com o esse navegador23. Note, entretanto, que ainda não é possível instalar as versões mais novas do navegador.

7.2.2 Receber e Enviar e-Mails

A popularização dos serviços de webmails estão induzindo a uma diminuição no volume de usuários que ainda possuem um cliente de e-mail local. Contudo, para aqueles que não desejam utilizar o webmail, podemos destacar alguns programas para o GNU/Linux.

Para o KDE temos o KMail24, que hoje faz parte do Kontact25. O Kmail é um cliente de e-mail tradicional, enquanto Kontact é um cliente de e-mail com suporte a calendário, contatos, agenda, etc.

Para o GNOME temos o Evolution26 que também fornece uma integração entre o e-mail e a agenda, contatos, calendário, etc.

Também temos Mozilla Thunderbird27, um cliente de e-mail desenvolvido pela fundação Mozilla, mas que não tem integração com a agenda e etc. Para tal existe o Mozilla Sunbird28 ou é possível adicionar os recursos do Sunbird ao Thunderbird utilizando a extensão Lightning29.

7.2.3 Aplicativos de Bate-Papo

Provavelmente é uma das categorias com o maior número de representantes. Um dos representantes mais populares atualmente é o Pidgin30. Com suporte aos protocolos AIM, Bonjour, Gadu-Gadu, Google Talk, Groupwise, ICQ, IRC, MSN, MySpaceIM, QQ, SILC, SIMPLE, Sametime, XMPP, Yahoo! e Zephyr. Adicionando plugins apropriados, ele permite conectar-se a outros protocolos. Há também os plugins associados a novas funcionalidades. Possui uma boa integração com o KDE e uma excelente integração com o GNOME.

22IEs4Linux - http://www.tatanka.com.br/ies4linux/ 23As instruções para instalação estão na página do IEs4Linux. 24KMail - http://kontact.kde.org/kmail 25Kontact - http://kontact.kde.org 26Evolution - http://projects.gnome.org/evolution/ 27Mozilla Thunderbird - http://br.mozdev.org/thunderbird/ 28Mozilla Sunbird - http://www.mozilla.org/projects/calendar/sunbird/ 29Lightning - http://br.mozdev.org/thunderbird/lightning 30Pidgin - http://www.pidgin.im

7.2. Aplicativos de Internet 111

O Kopete31 é programa do projeto KDE que possui características similares ao Pidgin, como uma lista igualmente de protocolos suportados e também com suporte a plugins.

Os dois programas são igualmente fáceis de usar e configurar. Veja um exemplo de configuração do Pidgin na figura 7.11.

Figura 7.11: Pidgin, comunicador instantâneo.

7.2.4 Compartilhar Arquivos

Aqui existe uma questão polêmica sobre a utilização desse tipo de recurso que não será abordado. A ferramenta existe e o que será feito com ela é de responsabilidade do usuário. O número de protocolos é grande, aqui descreveremos apenas os principais existentes.

FTP e SFTP/SCP

O FTP (File Transfer Protocol) é um dos primeiros protocolos da internet, há muito tempo utilizado para disponibilizar arquivos públicos.

31Kopete - http://kopete.kde.org/

7.2. Aplicativos de Internet 112

Há quem utilize o FTP para disponibilizar arquivos através de uma conta (com login e senha), mas isso é inseguro porque essas informações trafegam sem encriptação. Dessa forma, se é para ter um login e senha é melhor que se use o SFTP/SCP (Secure File Transfer Protocol/Secure Copy) que fazem o que o FTP faz, mas de forma encriptada.

Normalmente todo navegador de internet acessa o FTP, basta digitar o endereço no terminal. Contudo, esse tipo de acesso é apenas para obter o arquivo, para transferir o arquivo para o servidor normalmente é necessário utilizar um outro programa.

Disse “normalmente”, porque o Konqueror é polivalente nesse aspecto. Ele permite fazer o upload e o download de um arquivo por FTP. Basta digitar o endereço na barra de endereços. O mesmo vale para o protocolo SFTP (que na verdade é protocolo SSH, Secure Shell).

O endereço fica algo como sftp://maquina.dominio. Ao tentar acessar o dispositivo remoto será questionado o nome do usuário e o login. Após a conexão basta navegar pelo domínio como se estivesse acessando arquivos localmente.

No GNOME essa função é embutida nos serviços. Usualmente representada por um texto como “Conectar ao servidor...”. Esse aplicativo abre uma janela de configuração onde é possível conectar-se por SSH (ou SFTP ou SCP dependendo do tradutor da versão utilizada) ou por FTP (normalmente há duas opções, uma para conexão em servidor público e outro para conectar em servidor privado). Veja a configuração desse recurso na figura 7.12, sendo que no local onde aparece SSH existe uma lista de opções que inclui uma variedade de serviços.

Figura 7.12: Conectando a um servidor remoto no GNOME.

Depois de conectado ele aparecerá no Nautilus como um dispositivo montado (tal como foi apresentado

7.2. Aplicativos de Internet 113

na conexão em rede local).

Pode-se perceber por esse aplicativo que existem outros tipos de conexão. Eles não serão abordados aqui, mas podem ser úteis algum dia.

Rede eDonkey/Kad

Embora sejam conhecidos por ser um lugar onde encontra-se material copiado de forma irregular, sua utilidade na transferência de dados é inegavelmente eficiente. Permite acelerar a cópia de arquivos da internet, especialmente quando o servidor está saturado com muitas conexões. O aplicativo mais popular atualmente é o aMule32.

Bittorrent

Outro protocolo de comunicação P2P. Todas as distribuições GNU/Linux são disponibilizadas por esse protocolo, que é recomendado como padrão por quase todos os representantes. Os distribuidores procuram atender os picos de alta demanda que existe durante o lançamento de uma nova versão, e muitas vezes o bittorrent é a única forma de baixar uma distribuição nas primeiras 48 horas após seu lançamento.

O aplicativo mais desenvolvido nessa categoria com suporte nativo ao GNU/Linux é o Vuze (mais conhecido como Azureus)33. O Azureus também é conhecido pelo alto consumo de recursos de hardware (memória, em especial). Sua interface, com centenas de opções de configuração, pode ter um impacto desagradável no usuário esporádico desse tipo de tecnologia.

O Transmission34 (figura 7.13), no GNOME, e o Ktorrent35, no KDE, são mais econômicos nos recursos consumidos quando executados em seus respectivos gerenciadores de janelas.

Existe uma quantidade extraordinária de material em domínio público ou licenciados pela Creative Commons que estão disponíveis por bittorrent. O portal Public Domain Torrent36 disponibiliza uma quantidade realmente grande de filmes que já estão em domínio público e podem ser baixados livremente. O Projeto Guntenberg37 também disponibiliza seu conteúdo (livros em domínio público) em DVDs/CDs por bittorrent. No Jamendo38 é possível encontrar uma vasta coleção de músicas de alta qualidade produzidas por artistas independentes e disponibilizada legalmente sem qualquer custo. Nele é possível ouvir uma música pela web e baixar álbuns completos por bittorrent (em geral os artistas não são famosos,

32aMule - http://www.amule.org/ 33Azureus - http://azureus.sourceforge.net/ 34Transmission - http://www.transmissionbt.com/ 35Ktorrent - http://ktorrent.org/ 36Public Domain Torrent - http://www.publicdomaintorrents.com/ 37Projeto Guntenberg - http://www.gutenberg.org/ 38Jamendo - http://ogg.jamendo.com/

7.3. Programas Multimídia 114

Figura 7.13: Transmission, um cliente bittorrent.

mas são competentes). E basta uma breve busca pela internet para descobrir que existem centenas de artistas de todos os gêneros disponibilizando legalmente suas músicas, vídeos, livros, etc. pelo protocolo torrent.

7.3 Programas Multimídia

Categoria que envolve player de vídeo e música, editores e visualizadores de imagens. Algumas coisas são mais fáceis de fazer pelo terminal, mas as dicas para o terminal ficaram para depois.

7.3.1 Players de Vídeo

Uma categoria bem extensa, onde surge a questão relacionada ao vídeo que será visualizado. Se for um formato livre, não haverá qualquer problema. Para um formato não livre, é necessário instalar os codecs que permitem visualizar esse formato. A instalação dos codecs serão vistas adiante (junto com as dicas de instalação em geral). Aqui, ficaremos apenas com a apresentação dos programas.

O mais famoso e versátil é sem dúvida alguma o MPlayer39. O MPlayer é, a rigor, uma versão para ser executada a partir de um terminal (isso pode ser diferente entre distribuições). Há mais de uma interface gráfica, sendo o gmplayer, para o GNOME, e o kmplayer, para o KDE, são as mais conhecidas.

39MPlayer - http://www.mplayerhq.hu

7.3. Programas Multimídia 115

Temos também o VLC40. Um aplicativo multiplataforma (e também com uma versão portável) am- plamente utilizado.

Normalmente o GNOME tem o Totem41 (figura 7.14) com player de vídeo padrão. E o KDE tem o Kaffeine como player padrão. Esses dois aplicativos possuem seus fãs, não são unanimidades.

Figura 7.14: Totem, um player de áudio e vídeo.

7.3.2 Players de Música

Outra categoria com inúmeros representantes. Há player até para o terminal. Dos programas gráficos, temos o Amarok42, para KDE, e o Rhythmbox43 (figura 7.15), para o GNOME, como os dois maiores representantes. O Amarok é mais evoluído e possui excelentes recursos para o gerenciamento de grandes coleções. E também é o mais utilizado atualmente (inclusive entre os usuários GNOME). O Rhythmbox também possui o suporte a coleções, mas seus recursos são menores e, não seria incorreto dizer, é para usuários com uma pequena coleção.

Note que todos os players de vídeo permitem a execução de áudio, o que normalmente não é possível é um gerenciamento sofisticado de coleções.

40VLC - http://www.videolan.org/vlc 41Totem http://www.gnome.org/projects/totem/ 42Amarok - http://amarok.kde.org 43Rhythmbox - http://projects.gnome.org/rhythmbox/

7.3. Programas Multimídia 116

Figura 7.15: Rhythmbox, um player de áudio.

7.3.3 Editores de Vídeo

Algumas vezes é necessário editar um vídeo, extrair uma imagem, unir dois vídeos, etc. A edição de vídeos em GNU/Linux conta, inclusive, com programas profissionais. A nível de usuário básico, a recomendação fica entre o Avidemux44 (para o GNOME) e o Kdenlive45 (para o KDE). Apesar de ter interface gráfica, não espere que seja fácil editar um vídeo.

7.3.4 Editores de Imagens

O GIMP46 (figura 7.16) destaca-se entre os editores de imagens do GNU/Linux. É conhecido como o “Photoshop” do GNU/Linux. Trata-se de um editor de imagens completo, que conta com um vídeo curso completo e em português, produzido pelo LedStyle47. Ainda que para alguns profissionais de algumas áreas, ele não seja tudo isso.

Correndo atrás do tempo perdido, temos o Krita48, um software da suíte KDE que não é tão antigo, nem tão usado quanto ao GIMP. O interessante é que esse programa é muito similar em recursos oferecidos quando comparado ao GIMP, mas não no visual da interface, que lembra mais os programas de imagem

44Avidemux - http://avidemux.org/ 45Kdenlive - http://www.kdenlive.org 46GIMP - http://www.gimp.org 47Vídeo curso completo de GIMP - http://www.tuxresources.org/blog/archives/183 48Krita - http://www.koffice.org/krita

7.3. Programas Multimídia 117

Figura 7.16: GIMP, editor de imagens.

mais conhecidos de outros sistemas operacionais.

Não pode-se deixar de mencionar os aplicativos de terminal aglomerados pelo programa ImageMa- gick49. São inúmeros aplicativos que permitem agilizar a execução de atividades de edição de imagens. Esses comandos não serão apresentados no capítulo 8, mas são de extrema importância para quem precisa editar imagens.

7.3.5 Editores de Imagens Vetoriais

O OpenOffice e o Koffice possuem dois bons editores de imagens vetoriais. Mas para um trabalho mais avançado pode ser necessário utilizar o Inkscape50 ou o Sodipodi51.

7.3.6 Visualizadores de Imagens

Ao clicar em um arquivo de imagens qualquer em uma certa distribuição, a imagem vai abrir em um programa básico de visualização de imagens. No GNOME, o programa padrão é o EOG, Eye of

49ImageMagick - http://www.imagemagick.org 50Inkscape - http://www.inkscape.org 51Sodipodi - http://sourceforge.net/projects/sodipodi/

7.4. Gerenciamento de Arquivos 118

GNOME52 (nas distribuições mais recentes). No KDE, programa padrão é o Gwenview53. São dois ótimos visualizadores de imagens. Para o GNOME também podemos destacar o GThumb54.

7.3.7 Gerenciamento de Câmeras Fotográficas

Sua máquina fotográfica digital pode ser acessada através do digiKam55, para KDE, ou do F-Spot56

(figura 7.17), para GNOME. Cumprem o papel básico de baixar de copiar as fotos para o computador e de eliminar as fotos da câmera. E também possuem recursos para gerenciar coleções de imagens.

Figura 7.17: F-Spot, software de gerenciamento de câmeras fotográficas.

Vale notar que o Picasa57 (visualizador de imagens do Google) também possui uma versão gratuita, porém, de código fechado, para o GNU/Linux.

7.4 Gerenciamento de Arquivos

Há algumas questões sobre o gerenciamento de arquivos que não foram comentadas como a gravação de CD/DVD e os compactadores de arquivos.

52EOG - http://www.gnome.org/projects/eog/ 53Gwenview - http://gwenview.sourceforge.net 54GThumb - http://gthumb.sourceforge.net 55digiKam - http://www.digikam.org 56F-Spot - http://f-spot.org 57Picasa - http://picasa.google.com.br

7.4. Gerenciamento de Arquivos 119

7.4.1 Compactadores de Arquivos

Para compactar e descompactar arquivos, a melhor forma é usar o terminal de comando. Contudo, aqueles que não querem utilizar o terminal de comando podem escolher entre duas ótimas opções, o File Roller58 (figura 7.18, padrão do GNOME, e Ark59, padrão do KDE. Esses aplicativos possuem um comportamento muito parecido entre eles e entre versões de outros programas de compactação de outros sistemas operacionais. Note que os aplicativos do GNU/Linux manipulam um número significativamente maior e formatos de arquivos.

Figura 7.18: File Roller, aplicativo para compactar e descompactar arquivos.

7.4.2 Programas para Gravação de CD/DVD

As duas interfaces básicas para gravação de CD/DVD são o K3B60, para KDE, e o Brasero61, para o GNOME. A versão 9.04 do Ubuntu passou a utilizar o próprio Nautilus para gravar CDs/DVDs. O K3B é um programa mais antigo, mais estável, mais completo e o mais utilizado. Mas os demais aplicativos também funcionam bem em tarefas mais simples

58File Roller - http://fileroller.sourceforge.net/ 59Ark - http://userbase.kde.org/Ark 60K3B - http://k3b.plainblack.com/ 61Brasero - http://projects.gnome.org/brasero

7.5. Programação 120

7.5 Programação

O GNU/Linux dispõem de ferramentas para programação em qualquer linguagem, Fortran, C/C++, Python, Java, Assembly, etc. E todas essas ferramentas estão disponíveis de forma fácil em qualquer distribuição GNU/Linux.

Entretanto, o mesmo não pode-se dizer de ferramentas gráficas para programação. Muitos dos que usam ferramentas gráficas para programar, usam aplicativos como GNU Emacs62 ou Gedit/Kate. Em- bora exista algumas IDEs muito boas, elas apenas não são tão populares como as ferramentas mais simples.

7.5.1 Ambiente de Desenvolvimento Integrado

Duas grandes interfaces dividem o posto de IDEs multipropósito: o Eclipse63 e o Netbeans64 (fi- gura 7.19).

Figura 7.19: Netbeans, ambiente integrado de desenvolvimento. 62GNU Emacs - http://www.gnu.org/software/emacs/. A rigor é um editor de textos, mas na prática é um sistema

operacional disfarçado de editor de textos. Diz-se que ele é usado por todos os grandes programadores do mundo. Não é um programa para iniciantes. Há uma versão dele que é apenas para terminal.

63Eclipse - http://www.eclipse.org 64Netbeans - http://www.netbeans.org

7.5. Programação 121

A figura 7.19 mostra um simples programa em Fortran 90 na IDE NetBeans. Ambos são, idealmente, programas para desenvolvimento em Java. Mas ganharam inúmeros recursos (nativos e por extensões) e hoje podem ser utilizadas para inúmeras linguagens de programação (como C/C++, Fortran65, Python66, entre outras). O Eclipse leva vantagem pelo número de extensões disponíveis, sendo possível transformar a IDE em navegador de internet, gerenciador de arquivos, cliente de e-mail, adicionar jogos, conversar pela internet, escrever em LATEX, além do suporte a um número superior de linguagens de programação, etc67. O Netbeans destaca-se pela simplicidade.

Essas interfaces contam com um boa e simples ferramenta de depuração de código (conhecido como debugger) e com um gerenciador de projetos. Possuem uma boa organização nos diretórios formados.

Outra IDE multilinguagem que existe é o Kdevelop68, do projeto KDE. Sua instalação básica conta com suporte a doze linguagens de programação, incluindo C/C++, Fortran 7769 e Python.

O Kdevelop possui uma interface clara, mas sua estrutura de projeto e dos diretórios formados são muito pouco amigáveis. Por exemplo, para um simples “Olá Mundo!” ele gera 41 arquivos auxiliares. Diz-se que é a interface ideal para o desenvolvimento de programas com o QT em C/C++, pois ele gera automaticamente o check list de dependências para a compilação do programa KDE. Ele também possui uma boa integração com o QT Designer (será visto adiante).

Para o desenvolvimento em GTK+, o programa mais adequado é oAnjuta70. Ao contrário dos demais citados até aqui, ele é um programa para desenvolvimento em C/C++ apenas. Possui uma excelente integração com o Glade (que também será visto adiante).

Para desenvolvimento apenas em Python, o Eric71 aparece em vantagem, sendo uma interface com- pleta projetada para o desenvolvimento em Python. Portanto, possui um visual otimizado para essa linguagem.

7.5.2 Desenho de Interfaces

Para quem precisa desenhar uma interface, existem dois programas básicos: o Glade72 e o QT Desig- ner73. O primeiro fornece ferramentas para criar interfaces para o GTK+ e o segundo tem a mesma função, mas é voltado ao QT.

65No eclipse o suporte é por extensão. 66Através de extensões nas duas IDEs. 67Lembre-se que a idéia do programa é programar ... 68Kdevelop - http://www.kdevelop.org 69Não há suporte ao fortran 90/95 70Anjuta - http://www.anjuta.org 71Eric - http://eric-ide.python-projects.org 72Glade - http://glade.gnome.org 73QT Designer - http://www.qtsoftware.com

7.6. Aplicativos Científicos 122

7.5.3 Comparação entre Dois Arquivos

Muitas vezes é necessário comparar duas versões de dois arquivos diferentes para determinar o que foi modificado entre as duas versões. Uma opção é fazer isso manualmente, outra é utilizando aplicativos de terminal ou escolhendo entre as interfaces gráficas para os aplicativos de terminal existentes. Duas das que se destacam são o Meld74 (estilo GNOME) e o Kompare75 (estilo KDE).

7.5.4 Desenvolvimento Web

O desenvolvimento de páginas web também cai na situação onde a maioria dos programadores utilizam programas “simples” para executar a tarefa. Em todo caso, o GNU/Linux dispõem de um número satisfatório de programas para desenvolvimento de páginas web. Dentre eles destacam-se oKompoZer76

(que apesar do “K”, possui o estilo GNOME) e o Quanta77 (para KDE).

Também é possível salvar documentos do OpenOffice ou do Koffice como páginas da Web.

7.6 Aplicativos Científicos

Não são poucos os programas com objetivo científico no GNU/Linux. Contudo, não são muitos os que possuem interface gráfica.

Tanto o KDE quanto o GNOME possuem uma calculadora básica com funções científicas. Existem outras calculadoras, inclusive um emulador da calculadora científica da HP. As opções são várias, mas para quem quer apenas fazer contas simples com algumas operações científicas, o básico é suficiente, como apresentado na figura 7.20.

Apesar de existir uma versão do Matlab para o GNU/Linux78, ela é paga. Duas soluções alternativas prometem realizar aquilo que é básico no Matlab, o Octave79 e o Scilab80.

Da mesma forma, existe uma versão completa do Maple para o GNU/Linux, que também é paga. Sua alternativa principal é o Maxima81, mas os recursos existentes ainda são muito inferiores.

74Meld - http://meld.sourceforge.net 75Kompare - http://www.caffeinated.me.uk/kompare/ 76KompoZer - http://www.kompozer.net 77Quanta - http://quanta.kdewebdev.org 78A versão do Matlab para o GNU/Linux não conta com o mesmo número de módulos existentes na versão Windows 79Octave - http://www.gnu.org/software/octave 80Scilab - http://www.scilab.org 81Maxima - http://maxima.sourceforge.net

7.6. Aplicativos Científicos 123

(a) (b)

(c) (d)

Figura 7.20: Calcularoda, versão GNOME.

7.6. Aplicativos Científicos 124

Para análise estatísticas existe o completo e complexo projeto R82.

Para construir gráficos científicos83, nenhum programa que chega ao nível do gnuplot84,85 (embora seja para terminal, é interessante que ele fique nessa sessão para o melhor entendimento). Entre os programas gráficos, destacam-se o Grace86, o Labplot87 e o QtiPlot88. Esse último é um clone do Origin89 (inclusive com suporte aos arquivos do Origin).

Os programas Chemtool90 e XDrawChem91 destacam-se entre os programas de desenho de molé- culas orgânicas.

O programa G3DATA92 permite realizar uma interpolação dos valores de um um certo gráfico digitalizado. É uma forma eletrônica de contornar o problema de determinação do valor presente em uma curva, cujo gráfico 2D foi digitalizado como uma imagem.

Para desenho CAD profissional, muitos dizem que não há nada igual ao AutoCAD, que não possui versão GNU/Linux. Contudo, para a grande maioria dos profissionais, o QCad93, o FreeCAD94 e o Archimedes95 são programas alternativas satisfatórios. O Archimedes é desenvolvido através de um projeto incubado da FAPESP.

Para construção de diagramas, temos o Dia96 e o Kivio97 (parte do Koffice). O Kivio é um programa de organograma clássico, enquanto o Dia permite construir diagramas envolvendo instalações elétricas, válvula, reatores, etc. Infelizmente, ele ainda não conta com biblioteca do nível que existe no Visio, programa pago da Microsoft.

Para construção de malhas para simulação CFD, temos o Gmsh98 e o Salome99. Esse último é uma grande promessa que ainda não se concretizou completamente, mas que está em desenvolvimento.

Para simulação CFD, tem-se o OpenFOAM100, um excelente código para manipulação e operação de campos escalares e vetoriais. Este encontra na fluidodinâmica computacional sua principal aplicação.

82R - http://www.r-project.org, sim, o nome do programa é uma única letra. 83Assume-se aqui que gráficos científicos não são feitos em planilhas como a do OpenOffice. 84gnuplot - página oficial - http://www.gnuplot.info/ 85gnuplot - página com dicas muito úteis - http://t16web.lanl.gov/Kawano/gnuplot/index-e.html 86Grace - http://plasma-gate.weizmann.ac.il/Grace/ 87Labplot - http://labplot.sourceforge.net 88QtiPlot - http://soft.proindependent.com/qtiplot.html 89Não seria absurdo dizer que é um clone melhorado do Origin. 90Chemtool - http://ruby.chemie.uni-freiburg.de/~martin/chemtool/ 91XDrawChem - http://xdrawchem.sourceforge.net 92G3DATA - http://www.frantz.fi/software/g3data.php 93QCad - http://www.qcad.org 94FreeCAD - http://www.freecad.com 95Archimedes - http://archimedes.incubadora.fapesp.br 96Dia - http://projects.gnome.org/dia/ 97Kivio - http://www.koffice.org/kivio/ 98Gmsh - http://geuz.org/gmsh 99Salome - http://www.salome-platform.org/

100OpenFOAM - http://www.opencfd.co.uk/openfoam

7.7. Jogos 125

Embora o OpenFOAM seja o mais evoluído dessa categoria de aplicativos, não é o único, sendo possível encontrar um número significativo de produtos similares101.

7.7 Jogos

Em uma instalação básica, há pelo menos 5 jogos instalados em um GNU/Linux. Não é incomum que se localize centenas para instalação. Alguns são simples jogos de cartas (ok, alguns não tão simples), outros são verdadeiros simuladores de corrida ou vôo. Há jogos 3D em primeira pessoa e clones das primeiras versões do “Super Mario Bros” (o SuperTux). Veja alguns dos jogos disponíveis na figura 7.21

Figura 7.21: Alguns jogos que acompanham o Ubuntu

Quem gosta de jogar estará bem servido de opções, mas não serão as mesmas opções que existem no Windows. Pode-se conseguir boas informações sobre jogos no GNU/Linux no Ubuntu Games102. 101Vide, http://www.cfd-online.com/Links/soft.html 102Ubuntu Games - http://www.ubuntugames.org

7.8. Outros programas 126

7.8 Outros programas

Com uma coleção da ordem de 20 mil programas, é óbvio que muito programa bom não foi comentado. Alguns úteis são

• O “Mapa de caracteres”. Ele é nativo do gerenciador de janelas.

• O Planner, que é um programa para criar gráficos de planejamento estratégico.

• O GNUCash, que é um programa para gerenciamento financeiro (veja também o simples, porém eficiente, MoneyLog103).

• O Google Earth, que é o programa do Google para ver o mundo de cima.

• Os programas da “Receita Federal”. Não que alguém realmente queira usá-los, mas é necessário, e existe para o GNU/Linux.

Nos capítulos seguintes serão apresentadas as técnicas de instalação de novos programas, como loca- lizar e instalar um programa disponível para a sua distribuição ou existente mas que não está disponível para sua distribuição. Lembre-se de que o Google é o melhor amigo do usuário do GNU/Linux, se existe uma resposta para uma pergunta que esse texto nem cogitou em colocar, ele conhece.

7.9 Utilização de Programas Windows no GNU/Linux

Algumas vezes é necessário utilizar um programa Windows. Nesses casos, pode-se utilizar um de duas abordagens. A instalação do programa em um API Windows para GNU/Linux ou a virtualização.

A API Windows para o GNU/Linux tem o nome de WinefootnoteWine - http://www.winehq.org (Wine Is Not an Emulator). O wine é um programa de código livre, que não funciona de forma tão brilhante quanto se deseja (é possível ver quais são os programas suportados e quais não são na página do programa).

Existe uma outra implementação do Wine conhecida como Crossover Office. Essa, apesar de barata, não é gratuita104, pois incluí alguns recursos licenciados diretamente da Microsoft e por esse motivo, funciona melhor. Inclui suporte oficial (ou seja, eles asseguram que vai funcionar) ao Microsoft Office e vários outros programas. Mas extraoficialmente vários programas funcionam, como o Visio, por exemplo. Alguns, como o AutoCAD, não funcionam de forma alguma. 103MoneyLog - http://aurelio.net/moneylog 104Há algum tempo, por conta de uma meta que o governo dos EUA alcançaram, a CodeWeavers distribuiu várias cópias gratuitamente aos usuários durante um dia.

7.9. Utilização de Programas Windows no GNU/Linux 127

Para os programas que não funcionam de forma alguma utilizando um API Windows implementada para GNU/Linux, a alternativa é utilizar o VirtualBox105 ou VMWare106. Ambos são gratuitos, porém apenas o primeiro é de código livre. Um emulador é um programa capaz de enganar um segundo sistema operacional se passando por um hardware (com direito a placa de vídeo, rede, usb, som, HD, etc.). Dessa forma é possível instalar uma versão Windows dentro do GNU/Linux e rodá-lo como se ele fosse um programa qualquer. Dentro desse Windows é possível instalar e rodar quase todos os programas (qualquer mesmo, desde que exista memória suficiente designada para a máquina virtual).

E quando se diz quase, quer dizer todos, menos aqueles que necessitam de comunicação com hardware não suportado pelo GNU/Linux. Isso é devido ao fato de que essa técnica consiste em utilizar uma máquina virtual que não se comunica diretamente com o hardware, e sim se comunica com o GNU/Linux que passa a instrução ao hardware. Dessa forma, é necessário que o GNU/Linux reconheça o dispositivo e que ele seja um dispositivo encontrado pela máquina virtual.

Quando caímos na situação de necessitar de um programa específico demais para rodar no GNU/Linux, a alternativa seria utilizar uma virtualização direta. Contudo, essa técnica ainda está em desenvolvimento. A alternativa de hoje é utilizar o Windows diretamente instalado a máquina107.

105VirtualBox - http://www.virtualbox.org 106VMWare - http://www.vmware.com 107Veja o Anexo F para instruções de como proceder para instalar o Windows e o GNU/Linux em uma mesma máquina.

Capítulo 8

Utilizando o Terminal

É possível utilizar o Linux usar o terminal. Mas isso, muitas vezes significa perda de produtividade, pois algo que é muito simples de ser feito pelo terminal fica exageradamente complexo no modo gráfico.

Esse capítulo apresenta os principais comandos do terminal ou, como comumente chamado, shell. Não é objetivo desse documento esgotar o assunto sobre comandos de terminal. Muito pelo contrário, o mais experiente dos usuários do GNU/Linux descobrem novos comandos, ou novas formas de usar um mesmo comando, a cada dia. Para um referência mais completa, sugere-se a leitura do guia Foca GNU/Linux1. Um extenso documento (em português) que apresenta a grande maioria dos comandos de terminal que um usuário tende a necessitar.

O hábito transformará o uso do terminal em algo simples e sem complicações. Não tente decorar esses comandos de uma única vez. E não se impressione com a quantidade de comandos que existem.

8.1 Considerações preliminares

O terminal de comando ou, no popular, a “tela preta” é acessada pelo comando CTRL+ALT+F1. Na maioria das distribuições, a tela gráfica está em CTRL+ALT+F7, portanto, CTRL+ALT+F1 até CTRL+ALT+F6 é um terminal de comando.

De dentro do modo gráfico, o que acessamos é o emulador de terminal. Não pense que a palavra “emulador” transforma esse recurso menos poderoso. Alguns podem até dizer que o emulador de terminal seja mais poderoso, visto que dele é possível acionar um programa gráfico qualquer, enquanto do terminal de comandos isso não é possível. Em todo caso, daqui por diante, o emulador de terminal será o “terminal

1Foca GNU/Linux - http://focalinux.cipsga.org.br/

128

8.1. Considerações preliminares 129

de comando” ou simplesmente “terminal”. O GNU/Linux possui vários programas que são terminais de comando. No KDE usa-se o Konsole, enquanto no GNOME, usa-se o Terminal do GNOME (figura 8.1).

Figura 8.1: Terminal de comandos do GNOME.

Note que o terminal de comandos não é, necessariamente, uma tela preta. Ela pode ser branca ou mesmo transparente (veja a figura 8.2), tudo pode ser modificado nas preferências do aplicativo (acessível pelo menu “Editar”). As mesmas considerações valem para o Konsole.

(a) (b)

Figura 8.2: Terminal de comandos do GNOME em várias cores.

O terminal é programa chamado “bash”. Atualmente, o bash é o shell tradicional do GNU/Linux, mas existem outros terminais, por exemplo, o sh, o csh e o ksh. Nesse documento, apenas o bash será

8.1. Considerações preliminares 130

estudado.

Ao abrir um terminal (e daqui por diante entenda sempre que é um programa e esse programa chama- se bash), percebe-se uma linha que contém um caractere piscando. Esse é o prompt de comando, o ponto é onde o comando será escrito. Antes desse caractere, existe uma informação similar a essa:

luig@reynolds:~$

luig é o nome do usuário, o arroba, @ indica que o luig “está em” reynolds, que o nome do compu- tador. Os dois pontos são um caractere separador, o til indica, na verdade, o diretório atual. O til é a representação do diretório home, ou seja, /home/luig. O dólar no final da linha indica que esse usuário é um usuário comum. Caso existe um hash no lugar, #, então esse é um usuário administrativo, ou seja, o root.

Desse ponto em diante, todas as vezes que for indicado $ no texto, refere-se a comando executado por um usuário comum e um # indica que é um comando executado pelo root.

Outro ponto importante é que cada comando possui argumentos. Alguns argumentos são obrigatórios ou são opcionais. Os argumentos opcionais normalmente alteram as opções padrões do programa. Alguns comandos possuem centenas de argumentos opcionais, outros apenas dois ou três ou mesmo nenhum. Al- guns argumentos opcionais são muito importantes, pois alteram o comportamento do programa, sem o qual a atividade desejada não é possível, outros não, são estéticos, ou mesmo redundantes. Em con- junto com os comandos, serão apresentados também os principais argumentos opcionais ou modificadores associados ao programa.

Ainda sobre o uso do terminal, é interessante observar dois recursos. O primeiro é a tecla TAB. A tecla TAB tem a capacidade de completar o comando ou o nome do arquivo que deseja-se digitar. Dessa forma, não é necessário digitar todos os caracteres, apenas o mínimo necessário para tornar a identidade do comando/nome de arquivo ou diretório, únicas. A tecla TAB também pode ser utilizada para completar opções de alguns comandos. O outro recurso interessante está associado à tecla de navegação do teclado. É possível ver o comando anterior utilizando a tecla “seta para cima” da região de navegação. Para voltar na lista de comandos, utilize a tecla “seta para baixo” da mesma região.

Atente também para os redirecionadores de comandos. Esse são arquivos de dispositivo FIFO e permitem que a saída de um comando seja redirecionada como argumento de um segundo programa ou para dentro de um arquivo de texto.

Os principais arquivos FIFO são:

• | (pipe) - permite redirecionar a saída de um comando na entrada de outro comando.

• > (stdout) - permite direcionar a saída, sem eventuais erros, de um comando para um arquivo,

8.2. Arquivos fundamentais 131

por exemplo.

• >> - permite direcionar a saída, sem eventuais erros, de um comando para um arquivo adicionando o conteúdo nesse arquivo.

• 2> (stderr) - permite direcionar apenas o erros na execução de um programa para um arquivo.

• &> (stderr e stdout) - permite direcionar toda a saída (com ou sem erros) da execução de um programa para um arquivo.

• < (stdin) - faz o caminho inverso do arquivo do stdout

Por fim, porém não menos interessante, tenha em mente que o comando CTRL+c não tem a capacidade de copiar informações, mas sim de interromper execuções ou de abandonar o prompt atual e passar a um novo sem qualquer instrução nele.

8.2 Arquivos fundamentais

O bash possui alguns arquivos de configuração que permitem ajustar e ampliar os recursos do terminal. Esses arquivos são executados/criados/modificados ao iniciar o terminal e são eles:

• ∼/.bash_history: onde são registrados os comandos executados pelo usuário. Não é para o usuário modificar, mas para estar ciente de que tudo que escreveu no terminal está registrado nesse arquivo.

• ∼/.bashrc: arquivo de configuração pessoal do bash.

• ∼/.profile: também é um arquivo de configuração pessoal do bash. Em teoria o anterior con- figuraria as opção do bash enquanto aqui seriam registrados as personalizações de usuário. Essa diferenciação não é necessária.

• /etc/bash.bashrc: idem que o ∼/.bashrc, porém é uma configuração pertinente a todos os usuários.

• /etc/profile: idem que o ∼/.profile, e novamente é uma configuração pertinente a todos os usuários

Existem outros arquivos de configuração, mas os listados acima são os principais. De fato, todas as modificações, personalizações, etc, podem ser feitas no arquivo ∼/.bashrc.

8.3. Comandos básicos 132

8.3 Comandos básicos

Define-se comandos básicos nesse texto como os comandos que todos os usuários devem conhecer para a utilização adequada do terminal. É claro que uma definição dessa natureza possui um perfil pessoal. Todos esses comandos podem ser utilizados por qualquer usuário. São aqui definidos como comandos básicos:

• ls - lista os arquivos no diretório atual.

• clear - limpa a tela.

• cp - copia um arquivo de um diretório para outro.

• mv - move um arquivo de um diretório para outro ou renomeia o arquivo no mesmo local.

• rm - remove o arquivo do computador. Não existe uma forma de reverter essa ação.

• mkdir - cria um novo diretório.

• cd - comando que permite navegar pela estrutura de diretórios.

• man - acessa o manual de um comando, ou seja, é a ajuda.

Na sequência do texto, os comandos descritos acima são detalhados.

8.3.1 Comando ls

Seu uso básico é muito simples. Digite ls no terminal e será listado o conteúdo desse terminal. Seus argumentos mais interessante são:

• ls -l - lista, com formato longo, os arquivos no diretório atual.

• ls -lh - a opção “-h” atua sob a opção “-l” modificando a unidade utilizada no tamanho. Sem a opção “-h”, o tamanho listado junto com o arquivo está em bytes, com a opção “-h”, o tamanho é listado na “melhor” unidade possível, ou seja, kilobytes, megabytes ou gigabytes. Os símbolos K, M e G representam essas unidades respectivamente.

• ls -a - a opção “-a” mostra os arquivos ocultos. Pode ser utilizada junto com a opção “-l” (e como conseqüência, junto com a opção “-h”). Lembre-se que todo arquivo oculto é um arquivo cujo o nome começa com um ponto. Ao usar o comando ls -a aparecem informações sobre dois diretórios que são nomeados com um único ponto ( . ) e com dois pontos ( .. ). Esses diretórios representam, respectivamente, o diretório atual e o diretório pai do diretório atual. Por exemplo: se o usuário está em /home/luig/ o diretório “.” é /home/luig/ e o diretório “..” é /home/

8.3. Comandos básicos 133

• ls “nome_de_arquivo” ou “diretorio” - se o seu desejo é obter informações sobre um único arquivo, então pode usar o nome desse arquivo como argumento. O mais usual é utilizar o nome de um diretório como argumento. Nesse caso, entende-se que deseja listar o conteúdo de um diretório que não é o diretório atual. Exemplo: ls /usr, que lista os arquivos contidos no diretório /usr/ independente de onde o usuário se encontre. Todos os argumentos supracitados podem ser utilizados em conjunto com esse argumento. Por exemplo: ls -lha /usr/ (a barra no final, no caso de diretórios, é opcional).

Quando não utilizar nenhum tipo de argumento, o comando ls executa ls ./. Ou seja, o diretório atual é a opção padrão subentendida nesse tipo de problema. Também é possível utilizar mais de um diretório ou arquivo na lista de comandos, por exemplo: ls ./ /usr /.bashrc.

• ls -R - lista um diretório recursivamente.

Se quiser guardar a lista dos arquivos em um arquivo, use um redirecionador. Por exemplo, ls >listadosmeusarquivos.txt. Todas as opções utilizadas podem ser empregadas aqui.

Veja a figura 8.3 que representa a aplicação desses comandos no terminal do GNOME.

(a) (b)

Figura 8.3: Terminal de comandos do GNOME, usando o comando ls.

8.3.2 Comando clear

Mais simples é impossível. Seu uso não possui argumentos de qualquer espécie. Apenas digite-o no terminal é a tela será limpa.

8.3. Comandos básicos 134

8.3.3 Comando cp

O comando cp copia um arquivo de um lugar para outro lugar ou para o mesmo diretório com outro nome. Seu uso básico consiste em: cp nomedoarquivo.txt /diretorio/para/onde/vai/o/arquivo/ ou cp nomedoarquivo.txt novonome.txt.

No primeiro exemplo, um arquivo (nomedoarquivo.txt) é copiado para um outro diretório (que deve existir). No segundo exemplo o mesmo arquivo é copiado para o mesmo diretório, mas com um novo nome (novonome.txt).

Note que, da mesma forma que no comando ls, é subentendido que o arquivo está no diretório atual. Nada impede, contudo, que seja copiado um arquivo de um outro diretório qualquer. Por exemplo, cp /etc/fstab ./, que copia o arquivo /etc/fstab para o diretório atual, e cp /etc/fstab ./backup/fstab.bak que copia o arquivo /etc/fstab para o diretório backup, contido no diretório atual (./) com um novo nome (fstab.bak).

Embora existam vários argumentos interessantes, apenas um merece destaque imediato. É o opção “-r”. O comando “cp”, sem a opção “-r”, não permite copiar diretórios. Para isso é necessário utilizar a opção -r para que a cópia seja aplicada também ao diretório (o uso deste argumento com arquivos é desnecessário). Por exemplo: cp -r ∼/Documentos ./backup/, que copia o diretório Documentos dentro do diretório backup. Note que o diretório Documentos está dentro do diretório home ∼ e o diretório backup está dentro do diretório atual.

8.3.4 Comando mv

Muito parecido com o comando cp. Contudo esse comando move um arquivo ou diretório, ou seja, ele copia o conteúdo e depois remove o original. Não requer opções em seu uso básico. Também é utilizado para renomear arquivo ou diretório.

8.3.5 Comando rm

O comando rm apaga um arquivo do computador. Utilizando a opção “-r” é possível remover diretório (que podem estar cheios). Não há como recuperar um arquivo eliminado por esse comando (ou seja, não existe um “undo remove”). Há duas outras opções interessantes:

• rm -i - a opção “-i” faz com que antes de eliminar um arquivo apareça a pergunta se deseja ou não realmente eliminar o arquivo, exigindo uma confirmação.

• rm -f - em oposição ao -i, existe o “-f”. Essa opção faz com que o arquivo seja eliminado sem mais

8.3. Comandos básicos 135

perguntas. Se usar a opção “-i” junto com a opção “-f”, prevalece a “-f”.

Muito cuidado ao utilizar esse comando, especialmente quando estiver utilizando o usuário root.

8.3.6 Comando mkdir

O comando mkdir cria um diretório. Por exemplo: mkdir ∼/meusdocs, cria um diretório com o nome meusdocs dentro do diretório home ( ∼/ ).

Se ao tentar criar o diretório ∼/meusdocs/downloads com o mkdir ∼/meusdocs/downloads e o diretório ∼/meusdocs não existir, o comando retornará um erro. Para criar uma estrutura de diretórios, é necessário utilizar a opção “-p”. Assim, teríamos: mkdir -p ∼/meusdocs/downloads

8.3.7 Comando cd

O comando cd é utilizado para modificar o diretório no qual o usuário se encontra. Por exemplo, cd meusdocs. Nesse comando, está implícito o diretório corrente2, ou seja, é o mesmo que o comando cd ./meusdocs. Caso deseje entrar em um diretório qualquer do sistema, pode-se utilizar o caminho completo. Por exemplo, cd /usr/bin.

Note que:

• cd .. - muda para o diretório pai do diretório atual, ou seja, sob um degrau na hierarquia da estrutura de diretórios. É possível fazer: cd ../fotos, isso faz com que suba um degrau na estru- tura de diretórios e entre no diretório jose contido daquele diretório. Exemplificando, se estamos dentro no diretório /home/luig/docs e existe um diretório chamado fotos em /home/luig/, ou seja, /home/luig/fotos. É possível sair do diretório atual diretamente para o mencionado diretório fotos com o comando cd ../fotos.

A mesma lógica aplica-se nos outros comandos, quando esses referem-se a arquivos ou diretórios.

• cd - sem argumento algum. Esse comando faz com que o usuário retorne ao diretório home.

• cd - - utilizando o traço, “-”, indica que o usuário deseja voltar para o diretório anterior.

Utilizando o exemplo acima, se foi feito cd ../fotos e deseja-se voltar a /home/luig/docs, pode-se utilizar o comando cd -, que é o mesmo que cd /home/luig/docs ou cd ../docs

2Isso somente é verdade em sistemas que não sofreram modificações na configuração

8.4. Comandos para leitura de arquivos texto 136

8.3.8 Comando man

O comando man permite acessar as páginas de manuais. É provavelmente o comando mais importante do terminal, pois todas as vezes que não se lembrar como usar o programa X ou Y, poderá acessar o man para ler a documentação do programa. Para iniciar a consulta use man nomedocomando, onde nomedocomando é o nome do comando que deseja consultar. Suponha que o usuário deseje obter mais informações sobre o comando ls. Então, bastaria executar no terminal o comando man ls.

Uma vez iniciado a página do manual, utilize as teclas de navegação para baixo e para cima para movimentar o texto. Quando acabar de ler, utilize tecle a letra q. Normalmente, isso é suficiente para a utilização básica do sistema. Caso deseje desfrutar das inúmeras opções da página de manual, tecle a letra h. Será aberta uma nova página de manual, sobre a primeira página, mas indicando quais são os comandos que o man aceita.

8.4 Comandos para leitura de arquivos texto

8.4.1 Comando cat

O comando cat exibe todo o conteúdo de um arquivo. Claro que se o arquivo não tiver apenas texto como conteúdo, o que será exibido é uma grande variedade de caracteres exóticos. Um exemplo: cat ∼/.bashrc.

Esse comando também pode ser utilizado para unificar dois arquivos com a ajuda de um redireciona- dor. Por exemplo: cat arquivo1 arquivo2 > arquivocompleto, nesse exemplo, uni-se o conteúdo dos dois arquivos em um terceiro arquivo (a ordem da listagem dos arquivos é importante, pois é a ordem que eles vão possuir no novo arquivo). Dessa forma, os arquivos originais não são modificados.

Outro exemplo: cat arquivo2 >> arquivo1, dessa forma coloca-se o conteúdo do arquivo2 dentro do arquivo1, que ficaria igual ao arquivocompleto do exemplo anterior, mas o arquivo1 não existe mais da forma original. Isso pode ser um problema, imagine se trocar o >> por > . Se usar cat arquivo2 > arquivo1, o conteúdo do arquivo2 será colocado dentro do arquivo1 e o arquivo1 original será perdido.

8.4.2 Comando head

Ao contrário do comando cat que exibe o arquivo inteiro, o comando head exibe apenas as primeiras linhas de um certo arquivo. Exemplo, head ∼/.bashrc. Nessa forma, sem opções adicionais, ele mostra as 10 primeiras linhas do arquivo e ignora as demais. Para modificar o número de linhas que ele irá exibir, utiliza-se a opção “-n”. Exemplo, head -n2 ∼/.bashrc, que exibe apenas as duas primeiras linhas do

8.5. Comandos para compactação e descompactação de arquivos 137

arquivo.

8.4.3 Comando tail

Muito parecido com o comando head, mas ao invés de mostrar as primeiras linhas de um arquivo, mostra as últimas linhas. Da mesma forma que o comando head, a opção “-n” modifica o número de linhas que será exibido.

Uma opção adicional interessante é a opção “-f”. Essa opção permite acompanhar o processo de escrita no arquivo que foi selecionado. Por exemplo, tail -f /var/log/messages permite monitorar tudo que será escrito no arquivo /var/log/messages (veremos quem é esse arquivo no próximo capítulo).

8.4.4 Comandos more e less

Ambos são utilizados para ler o conteúdo de um arquivo texto. Eles são úteis onde o comando cat falha, em arquivo muito grandes. Assim, é possível abrir os arquivos aos poucos. De fato, o comando less é o paginador utilizado pelo comando man na grande maioria das distribuições. O comando more é mais simples, mas a escolha entre eles depende muito do gosto do usuário e das funções necessárias ao usar esse comando. Seu uso é more nomedoarquivo ou less nomedoarquivo.

Lembre-se que nada impede que o usuário abra um editor de textos como o gedit ou o kate para ler um arquivo texto. De fato, o uso do terminal de comandos para essa função tende a ser mais simples em algumas funções e mais complicado em outras.

8.5 Comandos para compactação e descompactação de arquivos

8.5.1 Comando tar

Esse é o comando de compactação mais utilizado do sistema (mais até do que as interfaces gráficas de mesma função). Muito presente em vários tutoriais da internet.

Existe basicamente três tipos de arquivos que são diretamente utilizados com esse utilitário: .tar, .tar.gz (por vezes .tgz) e .tar.bz2.

O .tar é uma cópia sem compactação dos arquivos contido nele. É o mesmo que juntar todos os arquivos em um único sem compactar. O .tar.gz consiste em dois processo distintos, porém interligados. Primeiro é criado um arquivo .tar em seguida é feita uma compactação utilizando no formato .gz. O

8.5. Comandos para compactação e descompactação de arquivos 138

.tar.bz2 é um arquivo .tar compactado com o formato .bz2, mais eficiente que o .gz, porém mais lento na hora de produzir a cópia.

Para criar um arquivo .tar, usa-se:

tar cvf nomefinal\texttt{.tar} lista_dos_arquivos

onde lista_dos_arquivos são todos os arquivos e diretórios que se deseja adicionar ao pacote.

Para criar um arquivo .tar.gz, usa-se:

tar zcvf nomefinal\texttt{.tar}\texttt{.gz} lista_dos_arquivos

Para criar um arquivo .tar..bz2, usa-se:

tar jcvf nomefinal\texttt{.tar}.\texttt{\texttt{.bz2}} lista_dos_arquivos

Para realizar o processo inverso, ou seja, descompactar um arquivo .tar, usa-se:

tar xvf nomefinal\texttt{.tar}

no caso de um .tar.gz, usa-se:

tar zxvf nomefinal\texttt{.tar}\texttt{.gz}

e para um .tar..bz2, usa-se:

tar jxvf nomefinal\texttt{.tar}.\texttt{\texttt{.bz2}}

Note que a opção x é utilizada para descompactar o arquivo, enquanto a opção c é utilizada para compactar o arquivo. A opção j está associada ao formato de arquivo .tar.bz2 enquanto a opção z ao formato de arquivo .tar.gz. Para adicionar novos arquivos dentro do arquivo compactado, basta repetir o comando.

8.5.2 Comando gzip/gunzip

Se o arquivo for apenas .gz, o ideal é utilizar o gzip/gunzip (para compactar e descompactar, respecti- vamente).

8.6. Comandos com funções administrativas 139

Para compactar os arquivos no formato .gz, usa-se

gzip -c -r listadearquivos > nomefinal\texttt{.gz}

a opção -c informa que quer criar um arquivo, enquanto -r informa que deseja-se realizar uma compac- tação recursiva nos diretórios.

Para adicionar outros arquivos no arquivo compactado, usa-se:

gzip -c -r listadearquivos > nomefinal\texttt{.gz}

gzip -c -r arquivo_esquecidos >> nomefinal\texttt{.gz}

Para descompactar, usa-se:

gunzip nomefinal\texttt{.gz}

8.5.3 Comando zip/unzip

O comando zip cria arquivo um arquivo .zip enquanto o comando unzip descompacta o arquivo zip.

Seu uso é extremamente simples:

gzip -r nomefinal.zip listadearquivos

onde a opção -r permite adicionar diretórios ao arquivo compactado.

Para descompactar, usa-se:

unzip nomefinal.zip

Deve-se ter um cuidado especial para não trocar o comando gzip com o zip e o gunzip com o unzip.

8.6 Comandos com funções administrativas

São comandos que “apenas” o usuário root pode executar. Entretanto, existem alguns comandos que podem ser executados por usuários comuns, porém, com restrições. A principal diferença aqui é que em algumas distribuições é necessário utilizar o caminho completo de alguns dos programas.

8.6. Comandos com funções administrativas 140

8.6.1 Comando ifconfig

O comando ifconfig permite acessar as informações de rede quando executado como usuário comum e modificar as informações de rede quando utilizado pelo root. Para o usuário iniciante, o uso mais comum consiste em digitar apenas /sbin/ifconfig.

8.6.2 Comando su

Normalmente, o usuário root não loga no modo gráfico. Isso é feito por medida de segurança. Dessa forma, para executar comandos no terminal como root é necessário utilizar o comando su

• Para tornar-se root, use: su -

• Para se transformar em um outro usuário qualquer, use: su - login, onde login é o login do outro usuário.

Obviamente, será requerido a senha da conta que se está tentando logar.

8.6.3 Comando shutdown

O comando shutdown permite desligar ou reiniciar o computador. Apenas o root pode usar esse comando.

Para desligar o computador imediatamente, usa-se: shutdown -h now

Para reiniciar o computador imediatamente, usa-se: shutdown -r now

8.6.4 Comando exit

Possui duas funções: fechar a janela do terminal ou retornar o uso de seu próprio login após ter utilizado o comando su. No terminal de comandos propriamente dito, o ato de fechar a janela consiste em deslogar do computador.

8.6.5 Comando passwd

Esse comando permite alterar a senha do usuário. Utilizando da forma mais simples, ou seja: passwd, é possível que o usuário comum troque sua própria senha (e para isso a antiga senha será requerida).

8.6. Comandos com funções administrativas 141

O usuário root pode utilizar o comando na forma passwd outrousuario, onde outrousuario é o login de qualquer usuário do sistema. O root não precisa de conhecer a senha do usuário em questão3.

8.6.6 Comando lspci e lshw

Esses dois comandos permitem obter informações sobre o hardware instalado. O lspci lista informações simplificadas sobre placa de rede, vídeo, entre outras. O lshw, que preferencialmente deve ser executado como root, fornece quase todas as informações possíveis sobre o hardware do computador.

Esses dois comandos são muito referenciados em listas de discussão e fóruns como uma forma de fornecer e obter a ajuda para configurar um certo hardware.

8.6.7 Comando sudo

No Ubuntu e em várias distribuições é usual que exista o comando sudo. O comportamento desse programa é definido pelo arquivo /etc/sudores e é diferente em cada distribuição.

O comando sudo permite executar um comando qualquer como se fosse o root. Na grande maioria das distribuições, executar o comando sudo ifconfig permite executar o ifconfig como root caso saiba qual é a senha de root. Em outras distribuições, como o Ubuntu, o comando é configurado para que ao ser executado seja pedido a senha do usuário que executou o comando, caso ele seja um usuário autorizado para isso.

O Ubuntu (e suas variantes) não configuram a senha de administrador durante a instalação. A única forma de acessar os recursos administrativos do sistema é utilizando o sudo pela primeira conta criada.

O comando sudo su - permite ao usuário com acesso ao comando sudo tornar-se administrador do sistema. O comando sudo shutdown -r now permite ao usuário com acesso ao comando sudo reiniciar o computador. No primeiro momento, qualquer comando pode ser executado como root utilizando o sudo no Ubuntu. Para detalhes de como alterar a configuração padrão, pode-se ler o artigo de NASCI- MENTO [5] (pule a etapa de instalação). MORIMOTO [6] e [7] também apresenta detalhes interessantes e complementares para esse comando.

Com isso denota-se uma característica específica do Ubuntu. Não é possível logar-se como root no sistema enquanto a configuração original se mantiver. Para logar como root é necessário logar como um usuário comum e utilizar o comando sudo para tornar-se um usuário administrativo no terminal.

3O root possui pleno acesso a qualquer parte do sistema. Portanto, se deseja proteger seus dados do administrador, aprenda a encriptar seus documentos.

8.7. Comandos de SSH/SCP 142

8.7 Comandos de SSH/SCP

8.7.1 Comando ssh

O comando ssh (Secure SHell) permite ter acesso ao terminal de comando de um computador remoto. Seu uso na forma mais simples consiste em:

ssh nomedeusuario@dominio.da.maquina.remota.br

onde nomedeusuario é o nome do usuário na máquina remota, essa especificação é opcional caso o usuário da máquina remota seja o mesmo da máquina de onde se faz o login (nesse caso o comando fica apenas ssh dominio.da.maquina.remota.br) e dominio.da.maquina.remota.br é o domínio da máquina remota, ou seja, o endereço da máquina.

Existem duas opções interessantes para o ssh. A opção -C, que serve para compactar os dados durante a transmissão. E a opção -X, que permite executar um aplicativo gráfico na máquina remota por ssh. Por exemplo,

ssh -C -X nomedeusuario@dominio.da.maquina.remota.br

Após o login é possível digitar “gedit &” para abrir o gedit da máquina remota. Um detalhe especial para o caractere &, ele é responsável por liberar o prompt de comando (enviando o processo atual para background) para a execução de um outro comando no mesmo terminal. Sem esse caractere, o “gedit” prenderia o terminal impedindo a execução de um segundo programa nele. É usual ao executar um programa gráfico no terminal, e usar esse caractere para antever a necessidade de uso do terminal, sem necessidade de um novo login em um segundo terminal.

Para encerrar uma sessão remota, basta utilizar o comando exit. Caso exista algum programa gráfico remoto em execução, a tela do terminal ficará sem resposta até que esse programa seja encerrado. Claro que, para executar um programa gráfico em um terminal remoto, é necessário que na máquina local exista um servidor gráfico, ou seja, que a interface gráfica esteja ativa e que o comando seja executado a partir de um emulador de terminal.

Na primeira que se conecta a um servidor com o comando ssh (seja no modo gráfico ou terminal) o sistema irá perguntar se deseja adicionar a impressão digital desse servidor no seu sistema. Essa é uma forma de verificar a autenticidade do sistema remoto. Quando e se o computador remoto sofrer uma reinstalação (no cenário não pessimista), pode ser necessário editar o arquivo ∼/.ssh/known_hosts removendo a linha indicada na mensagem de erro que surge.

8.8. Outros comandos de terminal 143

8.7.2 Comando scp

O comando scp é possui a função de transferir arquivos pelo terminal entre dois computadores.

Para copiar um diretório de um servidor remoto para o computador local, no diretório local, usa-se:

scp -r nomedeusuario@dominio.da.maquina.remota.br:/caminho/completo/diretorio ./

e para efetuar o caminho inverso, usa-se:

scp -r ./diretoriolocal nomedeusuario@dominio.da.maquina.remota.br:/caminho/

Há alguns pontos interessantes nesse comando, o primeiro é que da forma que foi escrito, o diretório da máquina remota não pode conter espaços. Para incluir espaço é necessário uma dupla proteção no caminho. Assumindo que o nome do usuário da máquina remota e local são idênticos, podemos escrever algo como:

scp -r "dominio.da.maquina.remota.br:/caminho/completo\ diretorio" ./

Repare que existem aspas e uma barra invertida no local onde deveria estar o espaço (o nome do diretório é “completo diretorio”). Esse tipo de preocupação não existe ao transferir arquivos pelo modo gráfico.

8.8 Outros comandos de terminal

8.8.1 Comando echo

O comando echo escreve na tela uma certa mensagem. Por exemplo, echo ’Hello World’. No primeiro momento esse comando parecerá pouco importante, mas conforme for desenvolvendo o aprendizado, verificará que ele permite facilitar muito a vida do usuário.

8.8.2 Comando grep

O comando grep permite encontrar um certo conteúdo dentro de um arquivo. Também pode ser utilizado em conjunto com os redirecionador “pipe”.

8.8. Outros comandos de terminal 144

Exemplo básico:

grep “expressao” nome_do_arquivo

ou

cat nome_do_arquivo| grep “expressao”

As aspas servem para proteger a existência de espaços na expressão. Também pode-se utilizar após- trofos. Da forma que foi apresentado, o comando irá procurar por todas as ocorrências de “expressao” no arquivo mencionado. Se dentro do arquivo tiver “Expressao”, o comando o ignorará, pois ele considera que letras maiúsculas e minúsculas são diferentes. Se o usuário não desejar essa diferenciação, deve utilizar a opção “-i”.

A “expressao” referida pode ser uma simples palavra, frase ou o que se chama de “expressão regular”. Para entender melhor sobre expressões regulares veja o Guia-ER4 ou o Portal Brasileiro de Expressões Regulares5.

8.8.3 Comando sed

O comando sed é uma forma de editar arquivos em linha. Seu uso mais frequente consiste em substituir uma certa expressão por outra dentro de um arquivo. Por exemplo:

$ sed -i “s/expressao1/expressao2/g” meuarquivo.txt

ou

$ sed “s/expressao1/expressao2/g” meuarquivo.txt > meuarquivoeditado.txt

No primeiro exemplo, utiliza-se a opção “-i” para editar o arquivo original. No segundo exemplo, não utiliza-se a opção “-i” para editar o arquivo e redireciona-se a saída do comando para um novo arquivo. Se o usuário quiser ver o que vai ser feito antes de executar a ação, basta executar o comando sem a opção “-i” e sem redirecionamento da saída do comando.

O comando sed é muito poderoso. Para maiores detalhes, veja o Portal Brasileiro do SED6

4Guia-ER - http://guia-er.sourceforge.net/ 5Portal Brasileiro de Expressões Regulares - http://aurelio.net/er/ 6Portal Brasileiro do SED - http://aurelio.net/sed/

8.8. Outros comandos de terminal 145

8.8.4 Comando ps

É um comando que permite listar os processos em execução do sistema. A forma mais usada é: ps aux, mas não sozinho, e sim, conjugado com o comando grep, ou seja, ps aux|grep -i expressao.

Por exemplo, desejando saber se o GNOME tem ou não algum processo ativo, usaria ps aux|grep -i gnome. A informação mais interessante para se obter é a que está representada na segunda coluna, o número de identificação do processo (PID).

8.8.5 Comando kill/killall

Os comandos kill e killall são utilizados para interromper um processo.

Com o número de identificação do processo (veja o comando ps acima), faz-se: kill “PID”, onde PID é o número identificado. Esse comando interromperá o processo de forma mais ou menos educada. Caso deseje-se interromper o processo imediatamente, usa-se a opção “-9”, ficando: kill -9 “PID”.

Por outro lado, caso não tenha o número do processo do processo, pode usar o comando killall. Por exemplo, desejando encerrar imediatamente o firefox, usa-se killall -9 firefox. A tecla TAB ajuda a completar o nome do processo quando esse não for muito lógico, por exemplo, killall -9 firefox-bin (esse processo existe e se não encerrar ele, o firefox não é encerrado como um todo).

8.8.6 Comando locate

Permite localizar arquivos no computador. Funciona percorrendo um banco de dados que é construído pelo sistema de tempos em tempos ou apenas manualmente. O comando de atulaização deste banco de dados é o updatedb, que deve ser executado como root.

Se o banco de dados não estiver construído ou estiver muito desatualizado, o comando locate infor- mará quando ele for acionado.

O uso do locate é muito simples, basta digitar: locate expressao, onde expressao é uma expres- são regular (tal qual no comando grep, e que inclusive pode ser uma simples palavra). A opção mais interessante desse aplicativo é a -i, que permite ignorar as diferenças entre letras maiúsculas e minúsculas.

8.8. Outros comandos de terminal 146

8.8.7 Comando find

O find é um aplicativo de terminal para busca arquivos, mas ao contrário do locate, não requer um banco de dados atualizado. Ele possui centenas de opções, a melhor forma de aprender a usar esse programa é lendo exemplos. Seu artigo na Wikipédia7 é um excelente ponto inicial para o estudo desse comando.

8.8.8 Comando vim

O vim8 não é um simples comando, mas um editor de textos completo para terminal. Permite fazer quase tudo que as grandes IDEs fazem, inclusive com o suporte a plugins. Seu aprendizado, entretanto, não é trivial. Longe disso, pois além das centenas de comandos nativos é possível criar “macros” pré-configuradas para executar qualquer tipo de função desejada.

Para quem utiliza cluster ou servidores em GNU/Linux é indispensável o seu aprendizado. Para tal, existe um livro, que é um projeto de código livre, chamado 9vimbook10, criado por Sérgio Luiz Araújo Silva11 que fornece toda informação necessária (e algo mais) sobre esse programa.

8.8.9 Comando startx

Em alguns sistemas, para iniciar o modo gráfico, é necessário digitar um comando no terminal. Esse comando é o startx. Esse é um comportamento comum em servidores e muito pouco comum nos dias de hoje em computadores pessoais.

8.8.10 Comando df

O comando df fornece o espaço ocupado/livre em disco. Sua opção mais comum é a “-h” que faz com que a saida do comando df -h utilize a melhor unidade para representar o espaço em disco (megabytes, gigabytes, etc).

7find na Wikipédia - http://pt.wikipedia.org/wiki/Find 8Vim - http://www.vim.org/ 9http://code.google.com/p/vimbook/

10vimbook - http://code.google.com/p/vimbook/ 11Nosso livro sobre vim - http://vivaotux.blogspot.com/2009/01/nosso-livro-sobre-o-vim.html

8.8. Outros comandos de terminal 147

8.8.11 Comando free

O comando free permite obter informações sobre a memória do sistema. A opção mais comum é a “-m” que faz com que a unidade utilizada para descrever a memória seja megabytes.

Uma saída típica do comando free -m é apresentada abaixo.

total used free shared buffers cached

Mem: 3995 3872 122 0 357 2856

-/+ buffers/cache: 658 3336

Swap: 2078 0 2078

A primeira linha lista a memória total, a memória “usada” a memória livre, a memória compartilhada, os buffers de memória e a memória utilizada para cache. A memória realmente utilizada é a memória usada menos a quantidade de memória utilizada para buffer e cache. Essa conta é feita e apresentada na segunda linha, onde a quantidade de memória realmente usada e livre é listada.

A última linha fornece detalhes sobre a memória swapp, verifique o Anexo F para mais detalhes sobre essa memória.

8.8.12 Comando top

O comando top lista todos os processos ativos no computador. Após digitar top no terminal, digite “h” para ajuda e “q” para sair do ambiente (essas duas opções não são argumentos).

8.8.13 Comando rsync

O comando rsync permite manter um backup sincronizado/atualizado sobre de um certo diretório do computador em outro diretório (que pode estar em outro HD) ou em um servidor remoto.

Suas principais opções são:

• -a : cópia fiel e recursiva

• -v : modo verbose, ou seja, o programa mostra o que está fazendo na tela

• -z : ativa a compressão na transferência de dados

• -P : habilita a possibilidade de continuar a transferência de um arquivo do ponto onde ele foi interrompido

8.8. Outros comandos de terminal 148

• -u : apenas atuliza e não sobrescreve arquivos mais novos (cuidado especial com a configuração de data do sistema)

• –delete : deleta arquivos no destino que não existam na origem

• –rsh : permite realizar uma cópia através de um servidor ssh.

• –exclude : permite excluir da cópia um certo diretório ou arquivo que obedece a chave especificada

Exemplos:

• Copiar o conteúdo do diretório ∼/documentos para dentro do diretório /media/disk (que prova- velmente é um pendrive/HD Externo).

rsync -av –delete ∼/documentos/ /media/disk/

Com a opção –delete, os direstórios serão sincronizados.

• Copiar o diretório ∼/documentos para dentro do diretório /media/disk (note a sutileza do efeito de uma simples barra após o nome do diretório de origem.

rsync -av –delete ∼/documentos /media/disk/

• Para realizar uma cópia entre dois computadores

rsync -avzP –delete –rsh=“ssh -C -l luig” ∼/documentos destino:/dir_desejado/

Nesse caso o segundo computador deve ter um servidor ssh ativo e o usuário luig deve existir nesse servidor. Pode-se usar o nome ou o ip do computador remoto (no comando referenciado pela palavra destino).

• Para realizar uma cópia entre dois computadores, excluindo tudo que esteja sobre o diretório “Fotos” dentro desse diretório ∼/doc

rsync -avzP –exclude=’Fotos’ –rsh=“ssh -C -l luig” ∼/doc destino:/dir_desejado/

Para restaurar uma certa cópia, basta utilizar o mesmo comando, porém revertendo a ordem de origem e destino, por exemplo:

rsync -avzP –delete –rsh=“ssh -C -l luig” destino:/diretoriodesejado/documentos ∼/

Note um apropriado pequeno ajuste nos nomes dos diretórios para evitar erros. É muito important que utilize a barra, “/”, no final do nome do diretório de origem com cautela adequada. Um erro pode produzir resultados muito desagradáveis (como a perda de dados no destino ou grande desordem no diretório destino). Vide diferentes efeitos nos dois primeiros exemplos.

Pode-se utilizar o rsync para copiar apenas um arquivo. Essa opção é particularmente útil quando o arquivo é muito grande, pois permite que ao utilizar a opção “-P” exista uma forma de resumir a transferência do arquivo caso ocorra alguma interrupção na conexão.

8.8. Outros comandos de terminal 149

8.8.14 Comando alias

O comando alias permite criar um novo nome para um comando e suas opções. Por exemplo,

alias cls=’clear’

permite chamar o comando clear digitando cls no terminal. Se antes digitar:

alias cp=’cp -r’

faz com que todas as vezes que digitar cp no terminal, tenha implícito a opção -r.

Na maior parte dos casos, isso representa um ganho extraordinário de produtividade, pois abrevia a digitação de comandos e argumentos.

Algumas dicas e exemplos seguem abaixo (muitas não são básicas):

alias clc=’clear’

alias cls=’clear’

alias rm=’rm’

alias rmr=’rm -r’

alias rmf=’rm -rf’

alias cp=’cp -r’

alias psa=’ps aux’

alias psas=’ps aux|grep -i’

alias kill=’kill -9’

alias ls=’ls --color=auto’

alias l=’ls -F’

alias ll=’ls -lh’

alias la=’ls -lha’

alias see=’eog’

alias nautilush="nautilus --no-desktop ."

alias mon-men="watch -d \"free -mt\""

alias mounted=’mount|column -t|sed /mapper/d’

alias mapper=’mount|column -t|grep mapper ’

alias sinuca=’foobillard &>/dev/null’

alias browser=’epiphany &>/dev/null &’

alias shutdown=’sudo shutdown’

alias desligar=’shutdown -h now’

alias reiniciar=’shutdown -r now’

alias apt-get=’sudo apt-get -u’

8.8. Outros comandos de terminal 150

alias hora=’date +%H:%M:terminal’

alias data=’date +%H:%M:terminal’

alias ..=’cd ..’

alias ...=’cd ../../’

alias ~=’cd’

alias mount=’sudo mount’

alias miso=’sudo mount -t iso9660 -o ro,loop’

alias umount=’sudo umount’

alias u,=’umount’

alias cputemp=’sensors| grep "CPU"| cut -b -55’

alias systemp=’sensors| grep "Sys"| cut -b -55’

alias temperaturas=’cputemp;systemp’

alias hdtemp=’sudo hddtemp /dev/sd[a-f]’

alias sem-comentarios=’sed "/^#/d"’

alias ssh=’ssh -C -X’

alias scp=’scp -r’

alias ssh,="ssh -p 21"

alias srm=’sudo rm’

alias srmr=’sudo rm -r’

alias srmf=’sudo rm -rf’

alias clamscan=’nice --adjustment=+19 clamscan’

alias iso2utf=’iconv -f iso-8859-1 -t utf-8’

alias utf2iso=’iconv -f utf-8 -t iso-8859-1’

alias iso2utfnames=’convmv -f iso-8859-1 -t utf-8’

alias utf2isonames=’convmv -f utf-8 -t iso-8859-1’

alias fat2linux="find ./ -type f -exec chmod -x ’{}’ \;"

alias tartar="tar cvf"

alias targz="tar zcvf"

alias tarbz2="tar jcvf"

alias zipe=’zip -re’

alias zip=’zip -r’

alias tarlist="tar tf"

alias targzlist="tar ztf"

alias tarbz2list="tar jtf"

alias limlogs="sudo find /var/log/ -iname \*.gz -exec rm -fv ’{}’ \;"

alias tilremove="find ./ -maxdepth 1 -type f -iname \*~ -exec rm -v ’{}’ \;"

A regra é não utilizar nenhuma das dicas que não saiba para que serve ou o que ela faz. Entretanto, muitas dessas dicas estão relacionadas a comandos apresentados nesse capítulo e representam visões pessoais sobre como usar um ou outro comando.

8.8. Outros comandos de terminal 151

O inconveniente desse comando, é que todas as vezes que se abre o terminal é necessário redigitar o alias correspondente. Uma forma de fazer isso automaticamente é inserindo o comando desejado no arquivo ∼/.bashrc. Dessa forma, ele será executado todas as vezes que abrir o terminal.

Capítulo 9

Administração de um Sistema

GNU/Linux

Esse capítulo não pretende formar administradores de sistema. Muito pelo contrário, as informações contidas aqui são superficiais e apresenta-se apenas o mínimo necessário para que o usuário novato gerencie o seu próprio computador sem depender de terceiros.

9.1 Configurando a Rede

Sem internet, sem ajuda. Sem ajuda, sem resolução de problemas. É na internet que estão as respostas da grande maioria de problemas que um usuário (especialmente um iniciante) poderá ter. Portanto, ter acesso a internet é um ponto importante no aprendizado do uso do GNU/Linux.

O primeiro ponto é saber qual é o tipo de conexão da máquina. Aqui, são exploradas quatro possibi- lidades que tendem a cobrir quase todos os tipos de conexão existentes no Brasil atualmente: DHCP, Ip Fixo, ADSL e Dial-up (também conhecida como “conexão discada”). No Ubuntu, as três primeiras pos- sibilidades estão integradas no mesmo aplicativo, acessível de “Sistema” >> “Preferências” >> “Conexões de rede” (figura 9.1).

9.1.1 DHCP

A primeira aba da figura 9.1 contém a configuração de rede com fio. Note que, a conexão ADSL também utiliza fio (do mesmo tipo, ao contrário do Dial-up, cujo o fio é de telefone), mas não será configurada

152

9.1. Configurando a Rede 153

Figura 9.1: Aplicativo principal para configuração de rede.

com essa opção (ver seção 9.1.3). Se o computador está em uma rede DHCP e foi instalado corretamente, no primeiro boot a internet estará configurada. A figura 9.1 mostra isso. Essa mesma observação é válida para quase todas as distribuições GNU/Linux, sendo raras as exceções.

Caso algum problema seja percebido, no Ubuntu, na mesma tela da figura 9.1, clique em “Editar...” (somente quando existe troca de placa de rede é que pode ser necessário utilizar a opção “Adicionar...” e será necessário utilizar a opção “Apagar...”). A primeira tela exige a senha do usuário (figura 9.2). O primeiro usuário do computador (o que é criado junto com a instalação) possui os direitos administrativos para realizar qualquer função. Se for esse o usuário, insira a senha dele.

Após a autenticação, a primeira aba inclui recursos avançados que, por exemplo, permitem o usuário personalizar o número de MAC que será enviado ao provedor de internet para autenticação1. A segunda aba refere-se a questões de segurança, que raramente não são muito comuns e também não serão dis- cutidas. Já a terceira aba é a que contém as configurações de interesse (veja a figura 9.3). Note que não há o que ajustar. Basta conferir se realmente o método selecionado para conexão é o “Automático (DHCP)”. Se tudo estiver correto, verifique na parte superior da janela se “Conectar automaticamente” está habilitado e que na parte final da janela esteja marcado “Disponível para todos os usuários” (do contrário apenas o administrador acessa a internet).

Para se ter uma idéia das opções que existem nessa figura 9.3, veja a figura 9.4. O uso de “Somente 1Alguns provedores de internet realizam autenticação do número de MAC. Esse número é único para cada placa de rede,

mas pode ser maquiado por software. Isso é particularmente útil para não ter que ligar para o suporte do serviço pedindo uma modificação no número de MAC que eles mantém consigo. Também é útil para servir de argumento a advogados em questões de utilização da rede.

9.1. Configurando a Rede 154

Figura 9.2: Ajustando a conexão DHCP, autenticação de uso administrativo.

Figura 9.3: Ajustando/Conferindo a conexão DHCP.

9.1. Configurando a Rede 155

endereços (DHCP) automáticos” permite configurar um IP DNS específico para a máquina, mas utilizando o IP gerado por DHCP.

Figura 9.4: Opções de conexão de rede “com fios”.

Esse tipo de conexão é típica de redes internas, onde inclui-se aqueles que utilizam roteadores na conexão de redes com a Velox. Usualmente, todos esses usuários também podem escolher IP fixo. É a conexão mais fácil de se configurar, visto que quase sempre é tudo automático.

9.1.2 IP Fixo

O IP Fixo é um tipo de conexão usualmente vista em redes internas gerenciadas por uma certa política estabelecida por alguém (o que incluí pequenas redes caseiras, alguém deve exigir o IP fixo). O admi- nistrador da rede (ou o gerente do roteador, como queria) forneceu informações de IP, máscara de rede, gateway e servidor DNS. Então, basta utilizar essas informações. Simples assim. No ubuntu, acesso o gerenciador de redes (figura 9.4) ajuste a opção de conexão para Manual (figura 9.4). Em seguida, clique em “Adicione” (figura 9.5). Será possível adicionar um IP, uma máscara de rede e o número do Gateway, no local que ele irá permanecer (é uma interface muito sutil, mas é possível editar o IP simplesmente clicando nele, o mesmo vale para a máscara de rede e o Gateway), veja a tela na figura 9.6.

9.1. Configurando a Rede 156

Figura 9.5: Adicionando um IP fixo.

9.1. Configurando a Rede 157

Figura 9.6: Adicionando um IP fixo, note como fica as informações inclusas.

9.1. Configurando a Rede 158

Também é necessário especificar os servidores DNS. Na prática, apenas um servidor é necessário, porém é possível adicionar quantos quiser separando-os por um espaço. É possível adicionar um domínio, que pode ser local (da rede local) ou da internet (para o caso de servidores públicos). Essa informação é opcional, assim como são as informações de rotas (acessíveis por “Rotas...”, na mesma tela).

Os mesmos conceitos empregados na configuração da rede no Ubuntu são utilizados em todas as distribuições GNU/Linux que possuem interface gráfica para essa função. Na verdade, em termos de conceitos, eles podem ser estendidos a qualquer sistema operacional que possua uma interface gráfica para esse propósito.

9.1.3 ADSL

Esse é o tipo de conexão necessária para acessar a Velox, por exemplo. Note que quem utiliza um roteador para acessar a Velox, não usa esse tipo de conexão, mas sim, DHCP ou IP Fixo.

Outrora, a melhor forma de configurar essa conexão era utilizando o terminal. Como administrador, execute com comando pppoeconf. Será aberto um ambiente onde basta responder as perguntas que são feitas. Utilize a tecla TAB para navegar entre os campos (SHIFT+TAB, para fazer o caminho inverso. Note, porém que TAB é cíclico, ou seja, depois de percorrer todos os elementos da janela, ele volta ao primeiro elemento).

Esse comando existe em quase todas as distribuições, porém, o openSUSE não possui esse utilitário. Nele esse tipo de conexão é feita de forma completamente diferente. No Yast, acione o módulo DSL e responda as perguntas que forem feitas. A configuração é simples, mas utiliza palavras desnecessárias em um processo que devia ser ainda mais simples. Também no openSUSE é necessário configurar a placa de rede para ajustar a interface de rede para “Sem endereço de IP (uso para dispositivo virtual)”.

No Ubuntu, tudo é mais simples ainda. Observe na figura 9.1 que a última aba do aplicativo refere- se à DSL. Clique nessa aba e nela adicione uma configuração (clique em “Adicione”). Surgirá a tela apresentada na figura 9.7.

Em uma configuração típica, basta configurar o nome do usuário e a senha. O campo serviço refere-se a um nome fantasia associado ao serviço utilizado. Preencha com qualquer informação, tipo “servico”. É necessário marcar a opção “Disponível para todos os usuários” e muito interessante marcar a opção “Conectar automaticamente”.

Muitos dos provedores de internet mantém um registro número de MAC, um número fantasia pode ser configurado na aba “Com fios”. Por sua vez, a aba “Configurações de IPv4” permite personalizar o número de IP/DNS, alternando configuração automática (onde nada precisa ser modificado), configuração automática apenas para o IP (onde o servidor DNS deve ser especificado) e configuração manual (onde tudo precisa ser especificado).

9.1. Configurando a Rede 159

Figura 9.7: Configurando conexão DSL.

9.1. Configurando a Rede 160

9.1.4 Dial-Up

Nesse tipo de conexão, existem dois pontos a serem considerados, o tipo de modem e a distribuição utilizada.

Se o modem é hardmodem, então utilizar essa conexão será pouco complicado. Basta abrir o discador (exemplo, o Gnome PPP, vide figura 9.8, ou o Kppp), selecionar configurações, na tela que se abre (para o Gnome PPP, veja figura 9.9) sempre existe uma opção como “Detectar”, onde o modem será identificado. Em seguida clique em “Fechar” e na tela original preencha os dados (nome, telefone e senha) e clique em conectar.

Figura 9.8: Conexão por Dial-up.

Seria muito fácil, se o programa viesse instalado no Ubuntu (em outras distribuições, esse programa é muito comum, portanto, é muito fácil mesmo). Quando ele não está presente, a primeira conexão deve ser feita utilizando o pppconfig (se esse não estiver presente, pode ser necessário configurar o programa ppp na mão, algo realmente avançado). Usar o pppconfig não é tão fácil quanto desejado. O Wel R. Braga [8] escreveu um texto (rico em ilustrações claras) explicando como conectar-se a um modem portátil da Claro (para isso, essa ferramenta não é mais necessária. Note que o texto é de fevereiro de 2008, portanto, quando a versão do Ubuntu era 7.10.), mas como verá no tutorial dele, tudo consiste em definir corretamente qual é o modem (para quem tem apenas um modem, a informação da tela da figura 9.9 é a informação típica).

O maior problema aqui é que é improvável que no Brasil o modem seja um hardmodem (o preço é muito maior e a maioria dos vendedores nem sabe a diferença). O mais provável é que seja um softmodem (ou um winmodem). Nesse caso, a configuração varia muito entre distribuições e não é tão fácil quanto desejado. No Ubuntu, seria muito fácil, pois em “Sistema” >> “Administração” >> “Drives de hardware” é possível instalar drivers proprietários encontrados pelo sistema. Na figura 9.10 vê-se a identificação dos recursos que podem ser instalados na máquina utilizada para o teste.

Selecione então “Aplicativo Modem” e clique em “Ativar”. Será aberta a tela de autenticação do

9.1. Configurando a Rede 161

Figura 9.9: Conexão por Dial-up.

9.1. Configurando a Rede 162

Figura 9.10: Instalando driver proprietários.

9.2. Configurando Impressoras 163

usuário e em seguida o driver será instalado. Após o boot (que na verdade é desnecessário, é apenas uma forma de evitar problemas mais complexos que o necessário) ele estará disponível para uso. O problema é que o usuário não tem internet. Se não tem internet, como ele pode conectar para baixar o driver?

Existe alguma forma de instalar o driver coletando os pacotes (sim, mais de um) da internet de algum lugar (como por exemplo, uma lan-house) e depois instalar no sistema? Sim, existe. Mas para isso o usuário deve saber qual é o pacote que ele quer. Normalmente essa etapa não é tão trivial assim para quem acabou de ser apresentado ao GNU/Linux e os usuários que estão adequadamente ambientados, já possem acesso a internet (ou sabem como fazer essa instalação). A melhor solução que vislumbra-se no horizonte é levar o computador a algum lugar que tenha acesso a internet por uma forma mais simples (como DHCP, por exemplo) e instalar tudo que é necessário para fazer o modem funcionar (drivers proprietários e aplicativo gráfico de discagem como gnome-ppp ou kppp).

E se a identificação do driver proprietário não funcionar? E se o driver não funcionar? Embora seja uma referência antiga, sugiro a leitura de MORIMOTO [9]. Para o ubuntu, o wiki fornece um texto que é atualizado a cada nova versão do sistema [10]. Embora sejam guias completos, qualquer um perceberá fácil que não é uma atividade trivial. Quem não tiver um modem compatível com as versões existentes dos drivers, não poderá acessar a internet por linha discada.

9.2 Configurando Impressoras

Existem milhares de caminhos diferentes para configurar uma impressora em um computador. Aqui será citado apenas um desses caminhos. O caminho mais simples, na opinião do autor, é pelo utilitário de configuração do GNOME. Isso tende a ser muito pouco interessante se não tiver o GNOME instalado. Saiba, portanto, que o KDE também possuí um utilitário similar.

9.2.1 Impressora Local

Dependendo da impressora e da distribuição utilizada, ao ligar a impressora conectada na máquina, esta será automaticamente instalada. Será tão rápido que nem dará tempo para o usuário perceber que alguma coisa está acontecendo.

Não raro, porém, encontra-se impressoras que não são automaticamente reconhecidas pelo sistema e que ainda necessitam de ajustes para serem instaladas corretamente. Para esses casos, no Ubuntu, abra o aplicativo “Sistema” >> “Administração” >> “Impressão” e uma tela como a representada na figura 9.11 será aberta. Com a impressora ligada e conectada, selecione “Novo” na barra de ferramentas, e surgirá uma tela como a da figura 9.12. Na grande maioria dos casos, apenas isso é suficiente para fazer o sistema reconhecer a impressora.

9.2. Configurando Impressoras 164

Figura 9.11: Gerenciamento de impressora.

Figura 9.12: Identificando impressoras.

9.2. Configurando Impressoras 165

Caso nada seja encontrado (e realmente não deseje substituir a sua impressora) é possível tentar configurar a impressora manualmente, seguindo o assistente que será aberto. São raros os casos de uma impressora que nesse ponto não foi sequer identificada como conectada localmente e depois de configurada funcione corretamente.

Em alguns casos, pode surgir uma tela pedindo a confirmação da impressora, de um nome, de um local, etc. Esse pequeno passo é apresentado na sub-seção seguinte.

9.2.2 Instalando uma Impressora Compartilhada em outra máquina

Essas impressoras são comuns em ambientes de rede. Aplicável ao caso onde existe uma máquina com o Windows (na verdade, pode ser uma máquina com o GNU/Linux também, com a impressora instalada via samba) ligado conectado à uma impressora compartilhada em rede.

Os passos de instalação são os mesmos mostrados anteriormente. Contudo, ao invés de instalar uma impressora local, seleciona-se instalar uma impressora remota.

Na prática, no utilitário do GNOME, existe uma tendência a identificar qualquer impressora acessível pela máquina. Por exemplo, na máquina utilizada para teste, ele identificou uma impressora instalada em outro GNU/Linux da mesma rede, (veja na figura 9.13), e concluiu a instalação da impressora (é o passo adicional que pode ser necessário como mencionado no item anterior). Clique em avançar (visto que tudo foi identificado corretamente) e a tela seguinte (figura 9.14) pedirá uma identificação para impressora. É apenas uma formalidade, pode-se aceitar o padrão, mas é indicado responder as perguntas que surgem.

Figura 9.13: Impressora compartilhada localizada pelo sistema.

9.2. Configurando Impressoras 166

Figura 9.14: Dando um nome para a impressora localizada.

Após esse passo, clique em “Aplicar” e a instalação está concluída. Ou melhor, quase concluída. Veja na figura 9.15 que o sistema informa que antes de utilizar a impressora é necessário instalar seu driver dela no computador. E ele fornece o nome do driver, nesse caso particular, footmatic-rip-hplip. Portanto, note que você não utilizará a impressora se não tiver internet, pois é de onde irá obter o driver em questão.

Figura 9.15: Impressora quase instalada, falta “apenas” o driver.

9.3. Instalação de Novos Programas 167

9.3 Instalação de Novos Programas

A grande maioria das distribuições conta com milhares de programas em seus repositórios (local onde uma distribuição disponibiliza seus programas). São, portanto, raras as vezes que um usuário necessita compilar e instalar um programa a partir do código fonte ou mesmo instalar um binário disponibilizado por terceiros.

Esse tópico irá apresentar a forma tradicional de instalar programas no Ubuntu (na verdade, em todas as distribuições baseadas em Debian). Em outras distribuições o processo lógico é exatamente o mesmo, mas os aplicativos (os gerenciadores de pacotes) são diferentes. Por exemplo, no openSUSE usa-se o “Gerenciamento de Programas” do Yast e no Fedora, usa-se o Yum.

9.3.1 O Gerenciador de Pacotes

As distribuições possuem milhares de programas, muitos dos quais não estão instalados por padrão no sistema. Esses programas estão divididos em pacotes. Um certo programa pode estar contido em um único pacote ou em centenas de pacotes. Muitas das vezes estão divididos em dois pacotes. Então, instalar um programa disponibilizado pela distribuições utilizada é instalar o(s) pacote(s) dele. Então fica a pergunta: como fazer a instalação desses programas?

Quase todas as distribuições modernas possuem um gerenciador de pacotes. Esse gerenciador de pacotes lista todos os pacotes contidos em uma certo repositório da internet associado a distribuição selecionada e lista também informações sobre esses pacotes.

Nesses gerenciadores de pacotes, ao selecionar para instalação um pacote de um programa, ele pro- videnciará a instalação de qualquer pacote adicional que seja necessário para que o programa funcione (pacotes dependentes). E também providenciará a remoção de qualquer pacote que conflite com o pacote selecionado (caso o usuário autorize).

No ubuntu, o gerenciador de pacotes principal é o Synaptic2. O acesso ao programa ocorre por “Sistema” >> “Administração” >> “Gerenciador de Pacotes Synaptic”. Seu uso é extremamente simples e descomplicado. Sua capacidade de resolver problemas é bem abrangente. A única observação necessária é que nada substitui o bom senso. De forma que é importante que seja feita uma avaliação das sugestões recomendadas pelo gerenciador de pacotes antes de aplicar suas alterações no sistema. Por exemplo, se ele disser que precisa remover o kernel do GNU/Linux ao instalar um certo pacote, desconfie3. Pode haver algum conflito complexo por trás dessa informação.

A figura 9.16 apresenta a tela inicial do Synaptic (na verdade, a tela que surge depois da autentificação 2Synaptic - http://www.nongnu.org/synaptic 3Exemplo ilustrativo, na prática o usuário precisa ser insistente para remover um pacote crítico.

9.3. Instalação de Novos Programas 168

do usuário). Note que a mensagem inicial é uma ajuda preciosa para quem vai utilizar o programa pela primeira vez. Ela lembra de pequenos e importantes conceitos sobre o uso do Synaptic. O primeiro conceito que o usuário deve ter em mente, é que as alterações somente serão efetuadas quando o usuário mandar que ela seja efetuada (melhor dizendo, o root, porque é necessário ter permissão de administrador para instalar e/ou remover qualquer programa).

Figura 9.16: Tela de abertura do Synaptic. É sempre importante ler as mensagens que surgem nos programas quando são abertos pela primeira vez.

Antes de começar a instalação em si, é interessante apresentar alguns dos recursos do programa. Logo após abrir o programa, é mais ou menos algo como a figura 9.17 que se obtém. Observe que existe uma barra lateral que divide os programas em categorias. Essa categorias estão divididas em funções e por repositório. Por exemplo, é perfeitamente visível a categoria “Ciência” no meio da lista. Também lê-se “Ciência (universe)” e “Ciência (multiverse)”. Nesse ponto “universe” e “multiverse” são dois repositórios adicionais configurados no ubuntu. Neles existe programas que são mantidos pela comunidade. Nenhum programa que esteja em um desses repositórios encontra-se em qualquer CD da família ubuntu. Observe que essa barra lateral permite dividir os programas disponíveis e instalados em diferentes formas (além de “Seções” que é forma que está listado na figura 9.17). Podemos listar os programas por “Status” (figura 9.18(a)) onde os aplicativos são divididos em “Instalados”, “Não Instalado” e “Instalável (atualizá- vel)” (esse último significa que são programas instalados, mas que existe uma versão mais atual para ser instalada). Pode-se dividir os programas por origem (figura 9.18(b)), onde apenas a origem do pacote é levada em consideração. Pode-se utilizar filtros personalizados (figura 9.18(c)), onde os programas podem ser divididos por características específicas (esse é um uso avançado, não será detalhado nesse texto).

9.3. Instalação de Novos Programas 169

Voltando a avaliar a figura 9.17, observe que além da barra lateral, na parte inferior da tela, existe algumas informações interessantes na barra de status. Nesse caso, está escrito “26832 pacotes listados, 1171 instalados, 0 quebrados, 0 para instalar/atualizar, 0 para remover ”. Dessa informação, concluí-se que existem 25661 pacotes que não estão instalados. Não faz sentido instalar tudo. Na verdade, isso nem mesmo é possível. Em uma conta grosseira, isso significa que existem aproximadamente 8 mil programas para instalação.

A região central do programa é dividida em duas visões. A lista dos pacotes (não programas) na parte superior e a descrição dos pacotes na parte inferior da janela. No exemplo da figura 9.17, selecionou-se o pacote não instalado ainda 9base, que tem como descrição curta “ferramenta do espaço de usuário Plan 9 ”. A pergunta é: Saberia o usuário o que é Plan 9? Ou mesmo o que essa frase significa ?. Dificilmente4. Como essa descrição curta não foi suficiente, lê-se a descrição longa. Pulando a longa explicação dada sobre o que é o 9base, leia o segundo parágrafo, onde está escrito, 9base é atualmente usado apenas pelo wmii2 (windows manager improved - gererenciador de janelas melhorado, versão 2). Voltamos à pergunta: Saberia o usuário dizer o que é wmii2? Saberia ele pelo menos dizer se precisa disso?. A primeira pergunta pode ser algo confuso, mas a segunda tem uma resposta simples. Se o wmii2 é um gerenciador de janelas melhorado (seja lá o que isso signifique), é um programa que não está instalado na base da distribuição, e o usuário não faz idéia do que essa idéias signifiquem, então é muito provável que o usuário não precise disso.

Ainda nessa descrição, lê-se em letras cinzas: “A Canonical5 não oferece atualizações para o 9base. Algumas atualizações podem ser oferecidas pela comunidade do Ubuntu”. Em outras palavras, não é um programa que a Canonical invista (dinheiro e pessoal) para manter. Quem cuida desse pacote são os usuários, a comunidade. Essa mensagem é típica dos programas que estão nos repositórios universe e multiverse.

Uma vez avaliada a interface básica, é o momento de entender as opções dos menus. No menu, em “Configurações” (figura 9.19), lê-se “Preferências” e “Repositórios” que são os dois principais itens do menu do Synaptic.

A tela da opção “Preferências” contém várias opções de configuração associadas a questões de organi- zação e visual (figura 9.20).

A tela da opção Repositórios (figura 9.21), contém, na primeira aba o controle básico do principais repositórios (a configuração padrão é uma ótima escolha). Em alguns casos, pode ser necessário habilitar o repositório via “CD/DVD”, algo útil para quem não tiver conexão de internet e utilizar os discos complementares de programas disponibilizados por terceiros. Note também, que nessa tela é possível escolher o melhor espelho6 dos repositórios. Normalmente, o mais próximo é o melhor, mas todos são

4Bem, isso é relativo. Alguns usuários podem somente conhecer isso, então esse comentário é algo generalizado, ok? 5Essa é a empresa que distribui o Ubuntu 6São cópias de um mesmo conteúdo espalhadas pela internet para maximizar a disponibilidade e diminuir o custo de

transmissão de dados.

9.3. Instalação de Novos Programas 170

Figura 9.17: Programa Synaptic.

iguais, portanto, essa é apenas uma questão de obter melhor desempenho em velocidade

A segunda aba (figura 9.22) permite adicionar repositórios de terceiros. Existe um repositório confi- gurado e não habilitado nessa imagem. Para habilitar um deles é necessário marcar a caixa de seleção. Todo repositório com uma definição de “Código Fonte” é, no primeiro momento, dispensável, pois nesse repositório não existe programa binário pré-instalado, apenas código fonte.

A terceira aba (figura 9.23) regula o comportamento do Synaptic. É muito importante que as atua- lizações sem suporte (backports) e atualizações pré-liberadas (proposed) somente sejam habilitadas se o usuário ponderar muito seriamente os riscos que enfrenta ao utilizar um programa que ainda não atin- giu maturidade no desenvolvimento. Essa aba também regula o comportamento do programa frente a existência de atualizações e com que freqüência será verificado a existência de novos pacotes. A opção associada a “Atualização de lançamento” esta correlacionada a atualização da versão da distribuição. Quando a distribuição Ubuntu 9.10 estiver disponível, será possível optar por ela nesse menu e assim atualizar o sistema inteiro de forma simples, sem precisar de instalar tudo do zero (embora nesse caso seja muito interessante fazer um backup dos dados antes7.). Mantenha a opção “Versões normais” até que uma nova versão seja lançada.

A quarta aba está relacionada as chaves de autenticação registradas. Essas chaves servem para con- ferir que um pacote está sendo baixado do lugar correto, sem qualquer violação feita por terceiros. Essa

7Sinceramente, não apenas nesse caso, em todos os casos, backup NUNCA é demais.

9.3. Instalação de Novos Programas 171

(a) (b)

(c)

Figura 9.18: Programa Synaptic, diferentes visões dos programas.

9.3. Instalação de Novos Programas 172

Figura 9.19: Menu configurações do Synaptic.

Figura 9.20: Janela de ajuste das preferências dos Synaptic.

9.3. Instalação de Novos Programas 173

Figura 9.21: Janela de canais de softwares, repositórios. A primeira aba apresenta as configurações mais importantes.

Figura 9.22: Gerenciando repositório independentes.

9.3. Instalação de Novos Programas 174

Figura 9.23: Configurando freqüência de atualização e comportamento do sistema quanto a essa questão.

autenticidade é uma segurança extra que até pode ser dispensada. Para configurar o sistema comple- tamente, baixe a chave pública do repositório, clique em adicionar e importe a chave para o Synaptic. Entretanto, pode ser mais fácil fazer isso pelo terminal. Veja o documento escrito por MORIMOTO [11], que apesar de antigo, é bem atual em conceito.

Por fim, a última aba está associado ao envio de estatísticas para o servidor da Canonical. Além de monitorar o comportamento médio dos usuários, esse tipo de colaboração ajuda a empresa a decidir por qual aplicativo deve optar por incluir no CD (de instalação ou live CD) ou fornecer suporte primeiro. A escolha entre colaborar ou não é totalmente do usuário.

Antes de qualquer instalação, o primeiro passo é clicar em “Recarregar” (na barra de ferramentas). Essa função atualiza toda a lista de informações dos programas disponíveis. Ao não fazer isso, corre-se o risco obter erros desnecessários devido à falta de informação da lista mais recente de pacotes.

A segunda coisa a fazer é selecionar todos os pacotes que desejam ser atualizados. Não faz sentido qualquer operação seguinte se não clicar em “Marcar todas as atualizações” na barra de ferramentas. Os pacotes marcados para atualização aparecem com uma marcação em amarelo (figura 9.26), sendo que essa cor pode ser redefinida nas preferências (figura 9.20).

Antes de aplicar as mudanças, pode marcar para instalação o programa que bem entender. Mas a pergunta que surge nessa hora é: Quais são os pacotes?. Normalmente o que o usuário sabe é a função

9.3. Instalação de Novos Programas 175

Figura 9.24: Gerenciando as chaves de assinatura automática.

Figura 9.25: Opção de compartilhar ou não informações estatísticas sobre o uso dos pacotes/programas.

9.3. Instalação de Novos Programas 176

Figura 9.26: Programas marcados para atualização. São 235 pacotes, mais de 1GB de espaço em HD será consumido (principalmente devido ao ato de baixo o pacote).

do programa ou mesmo o nome do programa, não o nome do pacote (que as vezes não é o nome do programa).

A melhor forma de resolver esse problema é realizando uma busca no Synaptic. Como exemplo, temos na figura 9.27, o resultado de uma busca com a palavra chave latex. Todos os pacotes correlacionados com essa palavra chave e que pertençam a categoria Todos (na barra lateral, no caso de Todos, inclui-se pesquisa em todos o pacotes possíveis. Se selecionar qualquer outra categoria, a pesquisa é feita apenas na categoria pré-selecionada).

Caso tenha informações prévias sobre o programa que deseja (através desse documento ou através da internet). Faça a pesquisa pelo nome do programa. A figura 9.27 apresenta o resultado da busca por kile. Note que há pacotes que aparentemente não tem qualquer relação direta com o kile. Ele aparece na lista porque existe um comentário, descrição ou relação de dependência, enfim, alguma coisa, entre esses pacotes e o kile. Ainda assim existem dois pacotes com o nome Kile, porém, um é o pacote de documentação e o outro é o programa (fácil de perceber pela descrição de ambos).

Uma forma mais abrangente e precisa de realizar buscas é clicando em “Procurar” na barra de ferra- mentas.

Decidido que quer instalar o pacote, clique com o botão direito do mouse sobre ele ou com o botão

9.3. Instalação de Novos Programas 177

Figura 9.27: Pesquisando pacotes por palavra chave relacionada a função do programa.

Figura 9.28: Pesquisando pacotes por palavra chave relacionada ao nome do programa.

9.3. Instalação de Novos Programas 178

esquerdo do mouse sobre a caixa de marcação e selecione “Marcar para instalação” (figura 9.29). Essa é a única opção possível nesse caso, pois ele não está instalado. Se for um programa instalado, pode-se fazer o processo inverso, ou seja, “Marcar para remoção” ou “Marcar para remoção completa”. No primeiro caso é uma remoção simples do pacote, mantendo os arquivos de configuração e no segundo caso é uma remoção completa, eliminando tudo que é correlato ao pacotes.

Figura 9.29: Marcando o pacote para instalação.

Voltando a instalação, uma vez marcado o pacote para instalação aparecerá uma janela informando que alguns pacotes não puderam ser autenticados e que alguns outros serão instalados (figura 9.30). Não raro, mensagens informando que que algum pacote tenha que ser atualizado ou removido também pode surgir.

Confira a lista de ações que serão executadas, nem que seja por simples curiosidade, é saudável verificar o que o computador que fazer (figura 9.31). Nesse caso em particular, é possível perceber que a seleção do kile para instalação induziu a instalação de tudo que é fundamental para o LATEXfuncionar corretamente.

Concorde, selecionando “Marcar” ou cancele a operação, selecionando “Cancelar” (nesse caso, o pro- grama não será instalado) (figura 9.32). Observe que um dos pacotes que surgiu quando foi feito a pesquisa pelo kile foi marcado para instalação, a cor verde indica que ele está sendo instalado porque é requerido por algum pacote que o usuário selecionou para instalação.

9.3. Instalação de Novos Programas 179

Figura 9.30: Alerta sobre necessidade de instalar outros programas e que alguns programas não puderam ser autenticados.

Figura 9.31: Detalhe da lista de dependências.

9.3. Instalação de Novos Programas 180

Figura 9.32: Resultado, 147 pacotes serão instalados ou atualizados por conta do kile.

Se percorrer a categoria “Autoria em TeX” na região lateral do programa, verificará vários progra- mas/pacotes correlatos ao funcionamento do LATEXnão foram marcados para instalação. Isso ocorre porque muitos programas são opcionais, não sendo necessária sua instalação para o funcionamento cor- reto do LATEX. O que pode acontecer é que alguns recursos particulares não sejam instalados. Note também que o Kile não é o único programa de autoria em LATEX. Logo, alguns desses pacotes estão interligados com essas outras interfaces.

A questão da busca por categorias pode levar a situações delicadas. Estudando o exemplo de uma busca pelo K3B (programa de gravação de CD/DVD), observamos que ao fazer uma restrição a categoria “Ambiente de desktop KDE” obtém-se o pacote k3b-data (figura 9.34(a)). Note que nesse caso, esse pacote foi selecionado para instalação e apenas ele foi selecionado (ou seja, ele não depende de nenhum outro pacote). Contudo, ele não é o programa. Observe a sutil frase em inglês escrita na descrição do pacote que menciona que ele contém os “arquivos comuns do programa”. Um ponto determinante para dizer que ele não é o programa em si, mas um pacote complementar do programa propriamente dito. A confirmação disso é observada na figura 9.34(a), onde a mesma busca foi feita, mas envolvendo todos os pacotes. Um dos novos pacotes encontrados é o k3b. Observe que ao determinar que esse pacote seja instalado, o k3b-data também foi selecionado para instalação (cor de background verde), pois o pacote k3b depende do k3b-data.

Uma forma de tentar antever e resolver esse tipo de problema consiste em clicar sobre o pacote com o botão direito do mouse e selecionar “Propriedades” ou selecionar o pacote clicando sobre ele (sobre o

9.3. Instalação de Novos Programas 181

Figura 9.33: Toda a base do LATEXfoi selecionada, mas nem tudo relacionado ao LATEXserá instalado.

(a) (b)

Figura 9.34: Seleção do K3B: (a) Pacotes correlatos na categoria “Ambiente de desktop KDE” e (b) Pacotes em todas as categorias.

9.3. Instalação de Novos Programas 182

pacote, não sobre a caixa de seleção para instalação) com o botão esquerdo do mouse e utilizar o ícone “Propriedades” da barra de ferramentas. Todo tipo de informação associada a esse pacote estará nessa janela.

Após selecionar todos os pacotes de interesse, em seguida, clica-se em “Aplicar” da barra de ferra- mentas. Isso abrirá uma janela (figura 9.35) e novamente exige-se a confirmação. Note, na figura 9.35, que as seleções que foram feitas nesse teste implicou em 625 MB de download. Por esse motivo, existe a opção “Apenas baixar o arquivo de pacote” que pode ser utilizada para baixar o arquivo sem instalar. A etapas de configuração e instalação (etapas seguinte a baixar o arquivo) podem ser efetuadas repetindo o processo anterior. O bom motivo para ter esse comportamento está relacionado ao fato de que a grande maioria dos usuários deixa o computador a noite ligado para baixar os pacotes (que não são poucos) e não se sentem confortáveis com a idéia de acordar no dia seguinte e encontrar uma tela parada durante a instalação de um pacote, por exigir alguma confirmação do usuário.

Figura 9.35: Confirmação das ações para instalação.

Após a confirmação, o processo de instalação se inicia. A figura 9.36 apresenta a tela inicial e final da instalação dos pacotes, que levou aproximadamente 3 horas em um link de 600 kbps.

O gerenciador de pacotes não tem poder para eliminar seus arquivos pessoais, mas o mal uso dele pode implicar em não conseguir utilizar a distribuição instalada. Por exemplo, se o usuário insistir em remover o kernel do computador, apesar de todos o alertas de que essa é uma coisa muito pouco inteligente a

9.3. Instalação de Novos Programas 183

(a) (b)

Figura 9.36: Processo de instalação: (a) Início e (b) Conclusão.

fazer 8, o gerenciador de pacotes o fará, e depois disso o computador ficará inútil9. Afinal, é o root que está mandando e tudo que ele deve fazer é acreditar que o root sabe o que faz (embora ele por algum momento imagine que o root está distraído e não prestou a atenção na mensagem da tela, etc e tal).

Metapacotes e Pacotes Restritos

O metapacote é um pacote criado apenas para pré-selecionar uma certa coletânea de programas. Ele não é um programa e funciona mais como uma lista de programas. Ao invés do usuário selecionar todos os programas relativos a um certo conceito, ele pode selecionar o metapacote. O melhor exemplo para isso é o metapacote kubuntu-desktop. Se selecionado, ele instalará no computador todos os aplicativos que acompanham o CD do Kubuntu. Essa é, então, a melhor forma de ter o Kubuntu e o Ubuntu instalados na mesma máquina. Muito embora seja pouco produtivo, pois se desejar instalar o KDE o melhor é selecionar o pacote kdebase10, mas essa é uma informação que apenas a experiência pode provir.

Os “pacotes restritos” possuem esse nome porque o conteúdo do pacote está restrito a alguns países do mundo por questões de licença/patente. Na prática, apenas alguns países, como EUA e Alemanha, os proíbe. Um pacote restrito necessário ao usuário comum é o metapacote ubuntu-restricted-extras (veja figura 9.37), pacote que instala os codecs e outras bibliotecas necessárias para executar arquivos .mp3, avi, etc e, também, as fontes típicas do Windows (entenda fonte como tipo de letra, como “Arial” e as demais, esse formatos são muito comuns no Windows e apesar dispensáveis, com sua ausência no GNU/Linux pode ter conseqüências desagradáveis).

8Em situações como essa, os alertas são até menos educados. 9O usuário desinstalou tudo e ainda quer que o computador funcione?!?

10Caso queira ter o GNOME e o KDE na mesma máquina (algo recomendável, se existir espaço em disco) e partir de uma instalação do Ubuntu, instale o KDE através desse pacote (com o mínimo de pacotes, fornece instalação mais enxuta do sistema) ou do metapacote kde (com todos os pacotes, mesmo os que o usuário definitivamente não quer ter instalado).

9.3. Instalação de Novos Programas 184

Figura 9.37: Metapacote ubuntu-restricted-extras.

Embora o conceito de metapacote exista em todas as distribuições, não se encontra os mesmos me- tapacotes com os mesmo nomes nas diversas distribuições. Isso significa que o usuário não irá encontrar um ubuntu-restricted-extras no openSUSE (nem mesmo um opensuse-restricted-extras), mas irá encontrar todos os pacotes que são instalados na seleção do metapacote ubuntu-restricted-extras.

Resolvendo alguns problemas

Embora o Synaptic seja muito bom, nada impede que existam problemas. Por exemplo, instalou o pacote ubuntu-restricted-extras e descobriu que o DVD encriptado não é executado. Esse é apenas um exemplo ilustrativo (e interessante), visto que nesse caso o usuário encontraria uma mensagem no Synaptic indicando uma URL para saber como instalar a libdvdcss2. Em todo caso pode ser objeto desse estudo, pois o objetivo do usuário não foi alcançado e o procedimento de correção estava na descrição do pacote. Na página da internet indicada11 lê-se que na versão 9.04 do Ubuntu (na verdade, de toda família Ubuntu) deve-se instalar o pacote libdvdread4. Qual é então a surpresa do usuário quando ele abre o Synaptic se o pacote já estiver instalado e o DVD ainda não for executado? Continuando a leitura da página, lê-se que é necessário executar um comando no terminal. Assim, abra o terminal e execute:

sudo /usr/share/doc/libdvdread4/install-css.sh 11PlayingDVDs - https://help.ubuntu.com/community/RestrictedFormats/PlayingDVDs

9.3. Instalação de Novos Programas 185

A página da internet não diz, mas é muito importante que nenhum programa de instalação (como o Synaptic, por exemplo) esteja ativo.

Depois disso, o DVD poderá ser executado, ou quase isso. Porque descobrirá que por conta de um bug no Totem (programa de execução de vídeos padrão do Ubuntu), não conseguirá executar o DVD corretamente. A página sugere que utilize-se o VLC como player alternativo (lembre-se que bugs não são para sempre). O que é uma excelente sugestão, assim como o gmplayer e o Xine. Depois de instalado um desses programas (sugiro que instale os três, o vlc, xine e o mplayer/gmapley), será possível executar o DVD corretamente.

Esse é apenas um tipo de problema que se pode encontrar ao instalar um programa. Tudo não parece funcionar, mas na verdade com um pouco de método e leitura, tudo irá funcionar corretamente.

Outro tipo de problema está associado à interação entre pacotes. É um alerta típico de pacotes que possuem conflitos. Então, se tentar instalar o programa X e aparecer a mensagem de que é necessário remover o programa Y, é porque X conflita com Y.

Há três tipo de conflitos.

• Conflito de versão, ou seja, o pacote X exige o pacote Y em uma versão anterior ou posterior a que está instalada. Isso ocorre muito se X for um programa antigo.

• Conflito de funções similares. Quando há conflito entre dois pacotes que possuem a mesma função e não é permitido ter os dois pacotes instalados.

• Conflitos de dependência. Ocorre quando o pacote X depende um certo pacote Z e Z possuí conflitos com Y ou com um pacote da qual Y depende. Esse último conflito pode gerar um cadeia de problemas que dificulta muito rastrear qual é a verdadeira origem do conflito (que sempre é de um dos dois primeiros tipos de conflito).

Normalmente, o gerenciador de pacotes sabe resolver problemas de conflito e assume uma solução se existir (é o que ele apresenta nas telas de ações requeridas para a instalação de um certo programa). Ocorre que nem sempre existe solução fácil. Por exemplo, no caso de pacotes que conflitam por terem funções similares, o programa não vê um problema, vê uma escolha, uma escolha que o usuário deve fazer porque não é a lógica que define a escolha, é o gosto pessoal.

Ainda na natureza dos conflitos de pacotes, quando existe um conflito de terceiro tipo e ele possuí ramificações muito longas, o Synaptic pode falhar em resolver esse problema. A sugestão é não instalar o pacote a menos que o usuário esteja disposto a dissecar toda a árvore de conflitos um-a-um para descobrir a origem do problema (o que está longe de ser uma ação básica).

Vamos imaginar que durante uma instalação ocorra uma queda de luz. Nesse caso, duas coisas podem acontecer. A primeira é que o processo tenha sido interrompido durante a instalação. Assim, basta repetir

9.3. Instalação de Novos Programas 186

o processo de seleção de pacotes e continuar. O grande problema é se a interrupção foi feita durante a configuração ou instalação de algum programa. Nesse caso, é possível (e até provável) que seja necessário abrir o Synaptic, ir no menu “Editar” e selecionar o item “Consertar pacotes quebrados”.

Em um caso menos provável, porém possível, o azar de ter a interrupção forçada da instalação ocorrerá durante a configuração/instalação de um pacote crítico. O método de instalação utilizado pelo gerenciador de pacotes é tal que a mesmo que isso ocorra o sistema irá funcionar, o problema é que o modo gráfico pode não funcionar (ele não é considerado parte básica do sistema). Por esse motivo, é muito interessante que se tenha fortes noções do funcionamento do gerenciador de pacotes por linha de comando, que é a única forma de arrumar o sistema em um cenário dessa natureza.

9.3.2 dpkg e apt-get

O apt-get e o dpkg são dois comandos de terminal. Ambos estão associados a instalação de programas.

Na prática, o dpkg é o responsável por instalar os programas em si. É o aplicativo por realiza funções de instalação propriamente dito. Para usar esses programas é necessário executá-los como root (nesse texto, será utilizado comando sudo)

Para instalar um pacote, usa-se:

sudo dpkg -i nomedopacote.deb

onde nomedopacote é o nome do pacote e .deb é a extensão do pacote. Note que o nomedopacote.deb é um arquivo que existe no diretório que está sendo executado o comando.

Para remover um pacote, usa-se:

sudo dpkg -r nomedopacote

Nesse caso, não se utiliza a extensão do pacote (porque não é um arquivo, mas um nome em um banco de dados).

O problema é que o dpkg não resolve dependências (mas informa quais são os problemas encontrados) e é comum que se use esse comando apenas quando baixar um arquivo .deb de algum site do desenvolvedor. Na verdade, pode-se simplesmente clicar no pacote baixado duas vezes com o botão esquerdo do mouse, o pacote será instalado da mesma forma. Também pode-se abrir o Synaptic e no menu “Arquivos” usar a opção “Adicionar pacotes baixados”.

9.3. Instalação de Novos Programas 187

Para esse texto, o que interessa sobre o dpkg é como resolver problemas. No caso, o comando mágico é:

sudo dpkg --configure -a

Ele irá configurar e instalar, pelo terminal, todos os pacotes pendentes (situação a que se encontra os programas caso tenha ocorrido uma interrupção forçada). Uma leitura sobre o dpkg é uma etapa fundamental para quem deseja aprender a fundo o funcionamento do sistema Debian e similares (ao qual o Ubuntu inclui-se).

O apt-get, por outro lado, é um gerenciador de pacotes completo.

Para atualizar a informação dos pacotes disponíveis, usa-se

sudo apt-get update

Para instalar um programa, usa-se:

sudo apt-get install nomedopacote

Para remover um pacote, usa-se:

sudo apt-get remove nomedopacote

Para resolver um problema, usar-se:

sudo apt-get install -f

Para atualizar o sistema inteiro, usa-se:

sudo apt-get upgrade

O apt-get resolverá todas as dependências que forem necessárias (tal como Synaptic) para a instalação e remoção de pacotes via repositórios. Seu funcionamento também é fundamental para o aprofundamento do funcionamento do sistema (que não é o foco desse documento).

9.3. Instalação de Novos Programas 188

9.3.3 Outros Gerenciadores de Pacotes

O Synaptic não é o único gerenciador de pacotes que existe. O Kpackage é o equivalente KDE do Synaptic (inclusive em funções).

No mesmo GNOME do Ubuntu, entretanto, também existe um segundo gerenciador de pacotes. É ele que efetuará alertas sobre a existência de pacotes para atualização e que está presente no menu “Aplicativos” sob o título de “Adicionar/Remover...” (veja figura 5.3).

Esse gerenciador de pacote é muito mais simples do que o Synaptic, e menos competente também. Possui uma certa dificuldade em resolver problemas de dependências mais sofisticados, mas é um bom começo para o usuário que quer um menu mais organizado de divisão de programas e com mensagens mais humanas e menos técnicas para saber qual é o programa certo para suas funções. Ele possui um sistema de classificação baseado em estrelas. Quanto mais estrelas, melhor é a opinião da comunidade sobre aquele pacote. Enfim, ele é uma simpatia que funciona direito mas que não tem o poder do Synaptic. A recomendação dos autores é que o Synaptic seja preferencialmente utilizado. Contudo, nada impede que o usuário descubra qual o nome do programa que deseja nesse aplicativo antes de abrir o Synaptic.

Figura 9.38: Gerenciador de pacotes simplificado.

Se estiver utilizando o Fedora, o gerenciador de pacotes é o Yum. Se estiver utilizando o openSUSE o gerenciador de pacotes é o Yast (em um módulo específico de gerenciamento de pacotes). Esses sistemas

9.3. Instalação de Novos Programas 189

utilizam um outro formato de arquivo para gerenciar e criar os pacotes, o .rpm. Os arquivo .rpm são os pacotes clássicos do GNU/Linux. O RedHat foi a primeira distribuição a utilizar esse conceito para instalar os programas.

Existem similaridades claras entre os aplicativos de gerenciamento de pacotes do modo gráfico (embora a usabilidade seja muito diferente). O mesmo ocorre com os equivalentes em modo de terminal. No openSUSE, por exemplo, o zypper é o equivalente do apt-get e o rpm é o equivalente do dpkg. Por equivalente entenda mesma função, embora alguns dos argumentos sejam idênticos, é necessário recorrer ao manual de cada comado para utilizá-lo adequadamente.

9.3.4 Instalando Binários de Fontes Externas

Há programas que são distribuídos pela internet em forma binária e não são distribuídos por repositórios de softwares. Esse programas exigem que o usuário baixe o arquivo da internet e instale-os depois. Alguns, são proprietários.

De forma geral, existe um arquivo README que informa quais são os passos necessários para instalar aquele aplicativo. Algumas vezes esse arquivo está na internet, na página do desenvolvedor do aplicativo, outras ele está no mesmo arquivo compactado que contém o programa.

Normalmente, a instalação de programas binários é muito simples. Note, porém, que em alguns casos é necessário verificar com calma a lista de programas adicionais requeridos para o funcionamento do programa binário. Raros são os casos onde uma busca no google por “como instalar o programa X na distribuição Y” não resolva.

9.3.5 Instalando do Código Fonte

Esses são normalmente distribuídos em forma compactada. Dentro do arquivo compactado existe um arquivo README contém todas as informações necessárias para instalar o programa. Na maior parte dos casos (não é a totalidade) o procedimento consiste em abrir o terminal no diretório que contém os arquivos descompactados e digitar em seqüência:

$ ./configure

$ make

# make install

Não raro são as vezes onde o ./configure falha. Nesse caso, não adianta continuar sem resolver o motivo dessa interrupção. Note a mensagem na tela, que informa, nem sempre de forma clara, o problema

9.4. Gerenciando usuários do sistema pelo modo gráfico 190

que provocou a interrupção. Normalmente o problema está na fata dependências instaladas no sistema. Em teoria basta uma simples lida no problema encontrado para encontrar o pacote que é necessário instalar, instalar o pacote e então repetir o procedimento listado (e continuar esse ciclo até concluir o ./configure sem qualquer mensagem de erro). Nem sempre essa tarefa é trivial, mas sua solução foge do escopo desse texto. O Google, as listas de discussão e os fóruns da internet tendem a fornecer ajuda com precisão para cada caso particular que eventualmente surgir.

Note que é raro querer compilar um programa qualquer, visto que as distribuições oferecem uma vasta coleção de programas. Mesmo os aplicativos que ainda não estiverem nesses repositórios tendem a existir na forma binária (no site do desenvolvedor, por exemplo).

9.4 Gerenciando usuários do sistema pelo modo gráfico

Como dito, para usar o GNU/Linux é necessário um login e senha, ou seja, conta no sistema. Uma conta é a de administrador e primeira conta do usuário é criada quando é feita a instalação (no caso do Ubuntu e da grande maioria das distribuições).

No caso particular do Ubuntu, não é possível logar na conta de administrador diretamente, porque ela não possui senha configurada. A única forma de acesso a conta de administrador é pelo uso do sudo (com o comando sudo su -) e o sudo somente é acessível através da primeira conta criada no sistema.

Portanto, há duas questões centrais. A primeira é como modificar a senha da conta de root (e a sua própria) e a segunda é como adicionar uma nova conta, para um novo usuário do computador.

No Ubuntu, o programa de gerenciamento dos usuários está em “Sistema” >> “Administração” >> “Usuários e grupos”, como uma tela igual à obtida na figura 9.39. Contudo, nesse modo, apenas o usuário corrente do sistema pode modificar sua própria conta. Para gerenciamento pleno, é necessário desbloquear o acesso ao programa, ou seja, autenticar o direito administrativo (figura 9.40). Após esse processo, é possível editar todas as contas do sistema (figura 9.41).

Para criar uma nova conta, clique em “Adicionar usuários”. A figura 9.42 representa a tela que surge quando se faz isso, sendo necessário preencher os campos de nome de usuário (login) e senha. Todos os outros campos, de todas as abas são opcionais ou possuem uma configuração adequada estabelecida. Em todo caso, pode-se preencher todos os campos.

A aba “Privilégios do usuário” permite configurar quais são as funções que o usuário possui direito de executar. Se, por exemplo, não for marcado a opção “Usar unidades de CD-ROM”, então o usuário não poderá utilizar o driver de CD/DVD. Verifique o item “Administrar o sistema”. Toda conta que tiver esse item selecionado terá o direito de utilizar o sudo.

9.4. Gerenciando usuários do sistema pelo modo gráfico 191

Figura 9.39: Configurações de usuário. O gerenciamento das contas do usuário.

Figura 9.40: Autenticação do uso administrativo das configurações de usuário.

9.4. Gerenciando usuários do sistema pelo modo gráfico 192

Figura 9.41: Configurações de usuário liberado para edição.

Figura 9.42: Adição de uma nova conta.

9.4. Gerenciando usuários do sistema pelo modo gráfico 193

Figura 9.43: Privilégios de um usuário.

9.4. Gerenciando usuários do sistema pelo modo gráfico 194

Na última aba (figura 9.44) é possível editar algumas configurações avançadas. Durante a criação da conta, um grupo padrão com o nome do login será criado. É muito importante que o usuário não modifique as configurações padrões sem ter a absoluta certeza de que sabe o que está fazendo. O uso inadequado dessa aba tem a capacidade de invalidar o login do usuário.

Figura 9.44: Configurações avançadas.

A figura 9.45 apresenta o resultado dessa operação.

Para modificar as configurações de uma certa conta, basta acessar o mesmo programa, selecionar a conta que se deseja modificar e clicar em “Propriedades”. O mesmo ambiente utilizado para criar uma nova conta, é utilizado para configurar esta nova conta. Sendo que é, inclusive, permitido configurar uma nova senha para todos os usuários sem saber qual é a senha original (um privilégio do administrador do computador, pois os demais usuários precisam saber a sua própria senha para modificá-la).

Todo sistema operacional GNU/Linux possui um programa gráfico que realiza essa função caso exista acesso ao modo gráfico.

A lógica diz que, se não existe acesso ao modo gráfico e o usuário possui um acesso administrativo, ele não é um usuário básico. Logo, sabe perfeitamente como adicionar e editar contas no GNU/Linux. Para o usuário básico, é suficiente conhecer o comando passwd que na forma que foi digitado, ou seja, sem argumentos, permite alterar a senha do usuário que executou o comando. Em todo caso, é interessante

9.5. Ajustando o idioma do sistema 195

Figura 9.45: Resultado da adição da nova conta.

o usuário conhecer o comando useradd ou adduser. Quase todo sistema GNU/Linux deve possuir um dos dois comandos (mais provável que seja o adduser). Esses programas possuem o mesmo argumento básico (embora tenham argumentos avançados diferentes, eles não serão mencionados aqui) e permitem adicionar um novo usuário no sistema. Para tal, usa-se:

sudo adduser novologin

onde novologin é o novo login da nova conta. Esse comando abre um assistente no terminal que pede as informações de nome real, senha, etc, conforme for confirmando cada dado. Novamente, a única informação realmente necessária é o login (que está no argumento) e a senha, que é primeira pergunta feita pelo programa. Muito cuidado com a última pergunta. Algumas versões desse programa cancelam a adição do usuário caso o usuário não coloque um S, de sim, (ou Y, de yes) como resposta12.

9.5 Ajustando o idioma do sistema

No Ubuntu, para ajustar o idioma do sistema, abra o aplicativo em ‘Sistema” >> “Administração” >> “Suporte a idiomas” que está apresentado na figura 9.46.

Seu uso é muito simples, basta selecionar o idioma desejado onde, na figura 9.46, aparece “Português (Brasil)”. Nem todos os idiomas que o GNU/Linux suporta estão instalados no Ubuntu (ou em qualquer

12Dica: Todo comando de terminal que possui uma pergunta e possui uma resposta padrão, a resposta padrão está entre colchetes. Caso a pergunta senha um Sim ou Não, entre colchete deve ter algo similar a [S/n]. A letra que estiver em maiúscula é a resposta padrão, caso seja apertado ENTER sem digitar um S ou um N como resposta.

9.6. Verificando os Logs 196

Figura 9.46: Configuração do idioma.

distribuição). Para adicionar ou remover um novo idioma, selecione essa opção também na interface da figura 9.46. É necessário deslogar e relogar para ver as modificações (não é necessário reiniciar).

Todos as distribuições GNU/Linux com acesso ao modo gráfico configurado irão ter um programa gráfico equivalente a esse em algum ponto do sistema (entre menus e centrais de configuração).

9.6 Verificando os Logs

Entender os arquivos de log ou arquivos de registro é entender a pergunta que você quer fazer quando tem um problema, mas nem mesmo sabe por onde começar.

O diretório /var/log/ contém todos os arquivos de log do sistema13. Alguns nomes desse arquivos podem variar entre distribuições (a quantidade também), mas em linha geral existem três arquivos de registro que se destacam entre os demais. São eles:

1. /var/log/messages - principal arquivo de registro no sistema. Ele contém todo tipo de atividade. Por exemplo, se ao conectar um pendrive na máquina e o mesmo não for reconhecido, existe uma grande possibilidade tenha um registro nesse sistema, tipo, eu tentei conectar, mas não consegui.

2. /var/log/boot.log - durante a inicialização do sistema várias atividades acontecem. Todas são registradas nesse arquivo. Portanto, ele é de importância crucial para entender os problemas de inicialização.

3. /var/log/Xorg.0.log - contém informações sobre o driver de vídeo. Se tiver um problema com o vídeo (especialmente quando instalar um driver proprietário) é nesse arquivo que o problema estará registrado. Como não há uniformidade desse nome, pode se encontrar /var/log/Xorg.log ou qualquer outro nome envolvendo a palavra Xorg.

13Supondo que ninguém alterou nenhuma configuração básica.

9.6. Verificando os Logs 197

Arquivos de registros são grandes e, para abri-los, muitas vezes o melhor é utilizar o comando tail -n100 /var/log/nomedolog, onde -n100 refere-se a 100 linhas. Como o tail refere-se às últimas linhas, o comando mostra as 100 últimas linhas do log (podem ser necessárias mais linhas, conforme o problema). Nada impede que os arquivo sejam abertos por um aplicativo gráfico (como o gedit ou o kate). Em muitas distribuições, o acesso aos arquivos de log são restritos aos administradores do sistema (ou seja, ao root).

O Ubuntu novamente facilita a vida do usuário integrando uma ferramenta gráfica para a leitura dos logs do sistema 14. Acesse o aplicativo em “Sistema” >> “Administração” >> “Visualizador de arquivos de log”. Esse aplicativo irá listar todos os arquivos de log (na coluna a esquerda) e o seu conteúdo (no centro). Na figura 9.47 temos um exemplo de uma avaliação do arquivo /var/log/messages.

Figura 9.47: Verificando os arquivos de registro.

O uso de toda a potencialidade dos logs são uma tarefa avançada para solução de problemas. Ainda que o usuário iniciante não seja completamente iniciante, pode parecer contra produtivo atentar para a existência desses arquivos no início do aprendizado. O ponto central é que ao pedir ajuda na internet para um problema ou outro, pode ser que seja necessário divulgar informações desses arquivos. Portanto, saber que eles existem é uma questão importante.

14Na verdade todas as distribuições possuem uma dessas, mas nenhuma nunca me pareceu tão agradável quanto a que está no Ubuntu 9.04.

Referências Bibliográficas

[1] TANENBAUM, A., Sistemas operacionais modernos. LTC: Rio de Janeiro, 1999.

[2] STALLMAN, R., “The GNU Project”, 2009, acesso em 18/04/2009, http://www.gnu.org/gnu/thegnuproject.html.

[3] STALLMAN, R., “Linux and the GNU Project”, 2009, acesso em 18/04/2009, http://www.gnu.org/gnu/linux-and-gnu.html.

[4] WIKIMEDIA, “RestrictedFormats”, 2009, acesso em 03/05/2009, https://help.ubuntu.com/community/RestrictedFormats.

[5] NASCIMENTO, R. B., “Comando sudo”, 2007, acesso em 06/05/2009, http://www.vivaolinux.com.br/artigo/Comando-sudo-instalacao-e-configuracao/.

[6] MORIMOTO, C. E., “O su, o sux e o sudo”, 2001, acesso em 06/05/2009, http://www.gdhpress.com.br/linux/leia/index.php?p=cap1-17.

[7] MORIMOTO, C. E., “Su, sux, sudo, sudoers e as permissões”, 2009, acesso em 06/05/2009, http://www.gdhpress.com.br/blog/su-sux-sudo-permissoes/.

[8] BRAGA, W. R., “Conectando com Claro 3G no Ubuntu”, 2008, acesso em 25/04/2009, http://www.welrbraga.eti.br/blog/?p=46.

[9] MORIMOTO, C. E., “Instalando softmodems no Linux”, 2006, acesso em 19/04/2009, http://www.guiadohardware.net/dicas/instalando-softmodems-linux-junho-2006.html.

[10] WIKIMEDIA, “Outofthebox/Modem/Softmodem”, 2008, acesso em 19/04/2009, https://wiki.ubuntu.com/Outofthebox/Modem/Softmodem.

[11] MORIMOTO, C. E., “Adicionando as chaves GPG no apt 0.6”, 2006, acesso em 25/04/2009, http://www.guiadohardware.net/dicas/adicionando-as-chaves-gpg-apt.html.

[12] RENAN, B., “Aonde tudo começou”, 2004, acesso em 11/05/2009, http://www.rootlinux.com.br/documentos/downloads/Historia_do_Linux.txt.

[13] MORIMOTO, C. E., “Usando o Memtest”, 2003, acesso em 29/04/2009, http://www.guiadohardware.net/artigos/usando-memtest/.

198

Apêndice A

Mensagem de Linus Torvalds

De: Linus Benedict Torvalds (torvalds@klaava.Helsinki.FI)

Assunto: [comp.os.minix] Free minix-like kernel sources for 386-AT

Newsgroups: comp.archives

Data: 1991-10-05 09:24:25 PST

Archive-name: auto/comp.os.minix/Free-minix-like-kernel-sources-for-386-AT

Do you pine for the nice days of minix-1.11, when men were men and wrote their own device drivers? Are you without a nice project and just dying to cut your teeth on a OS you can try to modify for your needs? Are you finding it frustrating when everything works on minix? No more all-nighters to get a nifty program working? Then this post might be just for you :-)

As I mentioned a month(?) ago, I’m working on a free version of a minix-lookalike for AT- 386 computers2. It has finally reached the stage where it’s even usable (though may not be depending on what you want), and I am willing to put out the sources for wider distribution. It is just version 0.02 (+1 (very small) patch already), but I’ve successfully run bash/gcc/gnu- make/gnu-sed/compress etc under it.

Sources for this pet project of mine can be found at nic.funet.fi (128.214.6.100)3 in the directory /pub/OS/Linux4. The directory also contains some README-file and a couple of binaries to work under linux (bash, update and gcc, what more can you ask for :-). Full kernel source is provided, as no minix code has been used. Library sources are only partially free, so that cannot be distributed currently. The system is able to compile "as-is"and has been known to work. Heh. Sources to the binaries (bash and gcc) can be found at the same place in /pub/gnu.

1O Minix é um sistema que é um “UNIX reduzido”, foi muito usado por estudantes, desenvolvedores de hardware e pessoas que querem entender como um sistema operacional funciona.

2São os computadores 286 e 386, precessores do 486. Lembra dele? Isso é bem antes do Pentium I 3O FTP ainda funciona, mas não é mais esse endereço IP. 4O diretório /pub/OS/Linux deve ser mudado para /pub/linux. É possível obter todas as versões do Linux nesse endereço.

199

200

ALERT! WARNING! NOTE! These sources still need minix-386 to be compiled (and gcc-1.40, possibly 1.37.1, haven’t tested), and you need minix to set it up if you want to run it, so it is not yet a standalone system for those of you without minix. I’m working on it. You also need to be something of a hacker to set it up (?), so for those hoping for an alternative to minix-386, please ignore me. It is currently meant for hackers interested in operating systems and 386’s with access to minix.

The system needs an AT-compatible harddisk (IDE is fine) and EGA/VGA. If you are still interested, please ftp the README/RELNOTES, and/or mail me for additional info.

I can (well, almost) hear you asking yourselves "why?". Hurd5 will be out in a year (or two, or next month, who knows6), and I’ve already got minix. This is a program for hackers by a hacker. I’ve enjouyed doing it, and somebody might enjoy looking at it and even modifying it for their own needs. It is still small enough to understand, use and modify, and I’m looking forward to any comments you might have.

I’m also interested in hearing from anybody who has written any of the utilities/library functions for minix. If your efforts are freely distributable (under copyright or even public domain), I’d like to hear from you, so I can add them to the system. I’m using Earl Chews estdio right now (thanks for a nice and working system Earl), and similar works will be very wellcome. Your (C)’s will of course be left intact. Drop me a line if you are willing to let me use your code.

Existe uma tradução em português feita por Renan, B. [12] para quem tiver interesse. Algumas notas de rodapé utilizadas nesse documento foram quase copiadas das notas de rodapé do Renan, B. [12].

5O Hurd é um projeto que pretende criar um núcleo Unix-like com a licença GPL (código aberto). 6Em 2009 ainda não existe uma versão estável desse projeto.

Apêndice B

Licenças para programas de

computador

Esse anexo procura adicionar informações sobre a as questões de licenças. Embora não seja um texto completo, ele possui mais detalhes do que o necessário para o entendimento do GNU/Linux como um todo. Esses pequenos pontos ajudam a ampliar a visão geral sobre os tópicos da atualidade.

Licença Pública Geral

A Licença Pública Geral1 (GNU GPL, GNU General Public License, ou simplesmente GPL) foi ideali- zada por Richard Stallman como a licença adequada para os softwares desenvolvidos pelo projeto GNU. Também é conhecida como copyleft, exatamente o oposto do bem conhecido copyright. Ela é baseada em 4 liberdades fundamentais:

0 - A liberdade de executar o programa, para qualquer propósito.

1 - A liberdade de estudar como o programa funciona, e adaptá-lo para as suas necessidades. Acesso ao código-fonte é um pré-requisito para esta liberdade.

2 - A liberdade de redistribuir cópias de modo que você possa ajudar ao seu próximo.

3 - A liberdade de aperfeiçoar o programa, e liberar os seus aperfeiçoamentos, de modo que toda a comunidade se beneficie. Acesso ao código-fonte é um pré-requisito para esta liberdade.

É esse espírito que o GNU/Linux adota na maior parte dos seus programas. A versão completa dessa licença encontra-se no anexo C para os curiosos, ela está em inglês porque não há traduções oficiais da

1Página oficial da licença - http://www.gnu.org/licenses/licenses.html

201

202

licença.

Note apenas que nada impede a venda de programas, apenas requer que o código fonte seja fornecido. Na prática, um desenvolvedor pode vender o binário, mas deve fornecer o código fonte e os meios para compilar o programa adequadamente a quem quiser. Não é permitido proíbir que outra pessoa que tenha o código fonto o redistribua gratuitamente (ou mesmo por outro preço).

Software Livre vs. Código Aberto

O “Software Livre” e o “Código Aberto” (conhecido como “open source”) são classificações oriundas de dois movimentos diferentes. Suas definições são idênticas, porém escritas de forma diferente. Os defensores do código aberto (OSI, Open Source Initiative) o definem através de um detalhamento das 4 liberdades básicas supracitadas, portanto, todo código aberto também é software livre.

Por outro lado, os defensores do software livre (FSF, Free Software Fundation) argumentam que a liberdade é valiosa sob a ótica da moral e ética, não apenas sobre o ponto de vista técnico (o “livre” que compõem a expressão “software livre” é de liberdade). Por exemplo, ela diz que não é ético aprisionar não é ético aprisionar conhecimento científico, pois isso prejudica a evolução da humanidade. Dessa forma ela possuí um discursso agressivo e condenando todo o desenvolvemento do software proprietário (na prática, ela advoga contra todo tipo de copyright, defendo a liberdade sobre todos os aspectos possíveis). Isso caracteriza a FSF como uma movimento social, enquanto a OSI é uma organização de divulgação e promoção do código aberto, com um discurso mais agradável a empresas e que não toma posições em assuntos que não estão relacionados ao código aberto.

Apesar das diferenças, é comum que os dois movimento se unam em diversas situações, sendo deno- minados de FLOSS (Free/Libre and Open Source Software).

Outras licença para “Código Aberto”

O universo GNU/Linux também possuí outros tipos de licenças que são tipo código aberto, mas não são compatíveis com a GPL, como a Licença Pública Mozilla2, a Licença Apache3, a Licença BSD4, entre outras.

Para quem apenas usa programas, a existência dessas inúmeras variantes de licenças é insignificantes, pois todas são código aberto. O desenvolvedor de programas pode se interessar em obter mais informações sobre essas licenças, para o qual sugere-se uma visita ao site de cada uma delas.

2Licença Pública Mozilla - http://www.mozilla.org/MPL/MPL-1.1.html 3Licença Apache - http://www.apache.org/licenses/ 4Licença BSD - http://www.opensource.org/licenses/bsd-license.php

203

Software Proprietário

É o software de código fechado. É a licença copyright. Na prática existem diversas licenças que são adequadas a esse tópico, mas isso não será discutido nesse texto. Ele pode ser gratuíto (um freeware, software grátis) ou não. Para o universo GNU/Linux, esse tipo de software manifesta-se através de softwares como o Skype (software de comunicação de voz pelo computador), o Opera (navegador de internet), o plugin da adobe que faz a exibição do Flash em página da internet, através de drivers de sistema, como os drivers de vídeo da NVIDIA e da ATI e drivers para placas wireless, e através de codecs de áudio/vídeo que permitem ouvir/ver certos formatos de arquivo que não são livres, entre outros.

Apêndice C

GNU GENERAL PUBLIC LICENSE

Version 3, 29 June 2007

Copyright © 2007 Free Software Foundation, Inc. http://fsf.org/

Everyone is permitted to copy and distribute verbatim copies of this

license document, but changing it is not allowed.

The GNU General Public License is a free, copyleft license for software and other kinds of works.

The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program–to make sure it remains free software for all its users. We, the Free Software Foundation, use the GNU General Public License for most of our software; it applies also to any other work released this way by its authors. You can apply it to your programs, too.

When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things.

To protect your rights, we need to prevent others from denying you these rights or asking you to surrender the rights. Therefore, you have certain responsibilities if you distribute copies of the software, or if you modify it: responsibilities to respect the freedom of others.

204

205

For example, if you distribute copies of such a program, whether gratis or for a fee, you must pass on to the recipients the same freedoms that you received. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights.

Developers that use the GNU GPL protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License giving you legal permission to copy, distribute and/or modify it.

For the developers’ and authors’ protection, the GPL clearly explains that there is no warranty for this free software. For both users’ and authors’ sake, the GPL requires that modified versions be marked as changed, so that their problems will not be attributed erroneously to authors of previous versions.

Some devices are designed to deny users access to install or run modified versions of the software inside them, although the manufacturer can do so. This is fundamentally incompatible with the aim of protecting users’ freedom to change the software. The systematic pattern of such abuse occurs in the area of products for individuals to use, which is precisely where it is most unacceptable. Therefore, we have designed this version of the GPL to prohibit the practice for those products. If such problems arise substantially in other domains, we stand ready to extend this provision to those domains in future versions of the GPL, as needed to protect the freedom of users.

Finally, every program is threatened constantly by software patents. States should not allow patents to restrict development and use of software on general-purpose computers, but in those that do, we wish to avoid the special danger that patents applied to a free program could make it effectively proprietary. To prevent this, the GPL assures that patents cannot be used to render the program non-free.

The precise terms and conditions for copying, distribution and modification follow.

Terms and Conditions

0. Definitions.

“This License” refers to version 3 of the GNU General Public License.

“Copyright” also means copyright-like laws that apply to other kinds of works, such as semiconductor masks.

“The Program” refers to any copyrightable work licensed under this License. Each licensee is addressed as “you”. “Licensees” and “recipients” may be individuals or organizations.

To “modify” a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a “modified version” of the earlier work or a work “based on” the earlier work.

A “covered work” means either the unmodified Program or a work based on the Program.

To “propagate” a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it

206

on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well.

To “convey” a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying.

An interactive user interface displays “Appropriate Legal Notices” to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion.

1. Source Code.

The “source code” for a work means the preferred form of the work for making modifications to it. “Object code” means any non-source form of a work.

A “Standard Interface” means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language.

The “System Libraries” of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A “Major Component”, in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it.

The “Corresponding Source” for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work’s System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work.

The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source.

The Corresponding Source for a work in source code form is that same work.

2. Basic Permissions.

All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited

207

permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law.

You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you.

Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary.

3. Protecting Users’ Legal Rights From Anti-Circumvention Law.

No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures.

When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work’s users, your or third parties’ legal rights to forbid circumvention of technological measures.

4. Conveying Verbatim Copies.

You may convey verbatim copies of the Program’s source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program.

You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee.

5. Conveying Modified Source Versions.

You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions:

(a) The work must carry prominent notices stating that you modified it, and giving a relevant date.

208

(b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to “keep intact all notices”.

(c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it.

(d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; howe- ver, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so.

A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an “aggregate” if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation’s users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate.

6. Conveying Non-Source Forms.

You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways:

(a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange.

(b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge.

(c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b.

(d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding

209

Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements.

(e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d.

A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work.

A “User Product” is either (1) a “consumer product”, which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, “normally used” refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product.

“Installation Information” for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made.

If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM).

The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network.

Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying.

210

7. Additional Terms.

“Additional permissions” are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions.

When you convey a copy of a covered work, you may at your option remove any additional permis- sions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission.

Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms:

(a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or

(b) Requiring preservation of specified reasonable legal notices or author attributions in that ma- terial or in the Appropriate Legal Notices displayed by works containing it; or

(c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or

(d) Limiting the use for publicity purposes of names of licensors or authors of the material; or

(e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or

(f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors.

All other non-permissive additional terms are considered “further restrictions” within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying.

If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms.

Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way.

211

8. Termination.

You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11).

However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation.

Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice.

Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10.

9. Acceptance Not Required for Having Copies.

You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so.

10. Automatic Licensing of Downstream Recipients.

Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License.

An “entity transaction” is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party’s predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts.

You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it.

212

11. Patents.

A “contributor” is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor’s “contributor version”.

A contributor’s “essential patent claims” are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version. For purposes of this definition, “control” includes the right to grant patent sublicenses in a manner consistent with the requirements of this License.

Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the con- tributor’s essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version.

In the following three paragraphs, a “patent license” is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To “grant” such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party.

If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent license to downstream recipients. “Knowingly relying” means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient’s use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid.

If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it.

A patent license is “discriminatory” if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations

213

that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007.

Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law.

12. No Surrender of Others’ Freedom.

If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program.

13. Use with the GNU Affero General Public License.

Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU Affero General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the special requirements of the GNU Affero General Public License, section 13, concerning interaction through a network will apply to the combination as such.

14. Revised Versions of this License.

The Free Software Foundation may publish revised and/or new versions of the GNU General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns.

Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU General Public License “or any later version” applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU General Public License, you may choose any version ever published by the Free Software Foundation.

If the Program specifies that a proxy can decide which future versions of the GNU General Public License can be used, that proxy’s public statement of acceptance of a version permanently authorizes you to choose that version for the Program.

Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version.

15. Disclaimer of Warranty.

THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY AP- PLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT

214

HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM “AS IS” WITHOUT WAR- RANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LI- MITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.

16. Limitation of Liability.

IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMA- GES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMA- GES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

17. Interpretation of Sections 15 and 16.

If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approxi- mates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee.

End of Terms and Conditions

How to Apply These Terms to Your New Programs

If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms.

To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively state the exclusion of warranty; and each file should have at least the “copyright” line and a pointer to where the full notice is found.

<one line to give the program’s name and a brief idea of what it does.>

Copyright (C) <textyear> <name of author>

This program is free software: you can redistribute it and/or modify

it under the terms of the GNU General Public License as published by

the Free Software Foundation, either version 3 of the License, or

(at your option) any later version.

215

This program is distributed in the hope that it will be useful,

but WITHOUT ANY WARRANTY; without even the implied warranty of

MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the

GNU General Public License for more details.

You should have received a copy of the GNU General Public License

along with this program. If not, see <http://www.gnu.org/licenses/>.

Also add information on how to contact you by electronic and paper mail.

If the program does terminal interaction, make it output a short notice like this when it starts in an interactive mode:

<program> Copyright (C) <year> <name of author>

This program comes with ABSOLUTELY NO WARRANTY; for details type ‘show w’.

This is free software, and you are welcome to redistribute it

under certain conditions; type ‘show c’ for details.

The hypothetical commands show w and show c should show the appropriate parts of the General Public License. Of course, your program’s commands might be different; for a GUI interface, you would use an “about box”.

You should also get your employer (if you work as a programmer) or school, if any, to sign a “copyright disclaimer” for the program, if necessary. For more information on this, and how to apply and follow the GNU GPL, see http://www.gnu.org/licenses/.

The GNU General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License.

But first, please read http://www.gnu.org/philosophy/why-not-lgpl.html.

Apêndice D

GNU Free Documentation License

Version 1.3, 3 November 2008

Copyright © 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.

<http://fsf.org/>

Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.

Preamble

The purpose of this License is to make a manual, textbook, or other functional and useful document “free” in the sense of freedom: to assure everyone the effective freedom to copy and redistribute it, with or without modifying it, either commercially or noncommercially. Secondarily, this License preserves for the author and publisher a way to get credit for their work, while not being considered responsible for modifications made by others.

This License is a kind of “copyleft”, which means that derivative works of the document must them- selves be free in the same sense. It complements the GNU General Public License, which is a copyleft license designed for free software.

We have designed this License in order to use it for manuals for free software, because free software needs free documentation: a free program should come with manuals providing the same freedoms that the software does. But this License is not limited to software manuals; it can be used for any textual

216

217

work, regardless of subject matter or whether it is published as a printed book. We recommend this License principally for works whose purpose is instruction or reference.

1. APPLICABILITY AND DEFINITIONS

This License applies to any manual or other work, in any medium, that contains a notice placed by the copyright holder saying it can be distributed under the terms of this License. Such a notice grants a world-wide, royalty-free license, unlimited in duration, to use that work under the conditions stated herein. The “Document”, below, refers to any such manual or work. Any member of the public is a licensee, and is addressed as “you”. You accept the license if you copy, modify or distribute the work in a way requiring permission under copyright law.

A “Modified Version” of the Document means any work containing the Document or a portion of it, either copied verbatim, or with modifications and/or translated into another language.

A “Secondary Section” is a named appendix or a front-matter section of the Document that deals exclusively with the relationship of the publishers or authors of the Document to the Document’s overall subject (or to related matters) and contains nothing that could fall directly within that overall subject. (Thus, if the Document is in part a textbook of mathematics, a Secondary Section may not explain any mathematics.) The relationship could be a matter of historical connection with the subject or with related matters, or of legal, commercial, philosophical, ethical or political position regarding them.

The “Invariant Sections” are certain Secondary Sections whose titles are designated, as being those of Invariant Sections, in the notice that says that the Document is released under this License. If a section does not fit the above definition of Secondary then it is not allowed to be designated as Invariant. The Document may contain zero Invariant Sections. If the Document does not identify any Invariant Sections then there are none.

The “Cover Texts” are certain short passages of text that are listed, as Front-Cover Texts or Back- Cover Texts, in the notice that says that the Document is released under this License. A Front-Cover Text may be at most 5 words, and a Back-Cover Text may be at most 25 words.

A “Transparent” copy of the Document means a machine-readable copy, represented in a format whose specification is available to the general public, that is suitable for revising the document straight- forwardly with generic text editors or (for images composed of pixels) generic paint programs or (for drawings) some widely available drawing editor, and that is suitable for input to text formatters or for automatic translation to a variety of formats suitable for input to text formatters. A copy made in an otherwise Transparent file format whose markup, or absence of markup, has been arranged to thwart or discourage subsequent modification by readers is not Transparent. An image format is not Transparent if used for any substantial amount of text. A copy that is not “Transparent” is called “Opaque”.

218

Examples of suitable formats for Transparent copies include plain ASCII without markup, Texinfo input format, LaTeX input format, SGML or XML using a publicly available DTD, and standard- conforming simple HTML, PostScript or PDF designed for human modification. Examples of transparent image formats include PNG, XCF and JPG. Opaque formats include proprietary formats that can be read and edited only by proprietary word processors, SGML or XML for which the DTD and/or processing tools are not generally available, and the machine-generated HTML, PostScript or PDF produced by some word processors for output purposes only.

The “Title Page” means, for a printed book, the title page itself, plus such following pages as are needed to hold, legibly, the material this License requires to appear in the title page. For works in formats which do not have any title page as such, “Title Page” means the text near the most prominent appearance of the work’s title, preceding the beginning of the body of the text.

The “publisher” means any person or entity that distributes copies of the Document to the public.

A section “Entitled XYZ” means a named subunit of the Document whose title either is precisely XYZ or contains XYZ in parentheses following text that translates XYZ in another language. (Here XYZ stands for a specific section name mentioned below, such as “Acknowledgements”, “Dedications”, “Endorsements”, or “History”.) To “Preserve the Title” of such a section when you modify the Document means that it remains a section “Entitled XYZ” according to this definition.

The Document may include Warranty Disclaimers next to the notice which states that this License applies to the Document. These Warranty Disclaimers are considered to be included by reference in this License, but only as regards disclaiming warranties: any other implication that these Warranty Disclaimers may have is void and has no effect on the meaning of this License.

2. VERBATIM COPYING

You may copy and distribute the Document in any medium, either commercially or noncommercially, provided that this License, the copyright notices, and the license notice saying this License applies to the Document are reproduced in all copies, and that you add no other conditions whatsoever to those of this License. You may not use technical measures to obstruct or control the reading or further copying of the copies you make or distribute. However, you may accept compensation in exchange for copies. If you distribute a large enough number of copies you must also follow the conditions in section 3.

You may also lend copies, under the same conditions stated above, and you may publicly display copies.

3. COPYING IN QUANTITY

219

If you publish printed copies (or copies in media that commonly have printed covers) of the Document, numbering more than 100, and the Document’s license notice requires Cover Texts, you must enclose the copies in covers that carry, clearly and legibly, all these Cover Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on the back cover. Both covers must also clearly and legibly identify you as the publisher of these copies. The front cover must present the full title with all words of the title equally prominent and visible. You may add other material on the covers in addition. Copying with changes limited to the covers, as long as they preserve the title of the Document and satisfy these conditions, can be treated as verbatim copying in other respects.

If the required texts for either cover are too voluminous to fit legibly, you should put the first ones listed (as many as fit reasonably) on the actual cover, and continue the rest onto adjacent pages.

If you publish or distribute Opaque copies of the Document numbering more than 100, you must either include a machine-readable Transparent copy along with each Opaque copy, or state in or with each Opaque copy a computer-network location from which the general network-using public has access to download using public-standard network protocols a complete Transparent copy of the Document, free of added material. If you use the latter option, you must take reasonably prudent steps, when you begin distribution of Opaque copies in quantity, to ensure that this Transparent copy will remain thus accessible at the stated location until at least one year after the last time you distribute an Opaque copy (directly or through your agents or retailers) of that edition to the public.

It is requested, but not required, that you contact the authors of the Document well before redistri- buting any large number of copies, to give them a chance to provide you with an updated version of the Document.

4. MODIFICATIONS

You may copy and distribute a Modified Version of the Document under the conditions of sections 2 and 3 above, provided that you release the Modified Version under precisely this License, with the Modified Version filling the role of the Document, thus licensing distribution and modification of the Modified Version to whoever possesses a copy of it. In addition, you must do these things in the Modified Version:

A. Use in the Title Page (and on the covers, if any) a title distinct from that of the Document, and from those of previous versions (which should, if there were any, be listed in the History section of the Document). You may use the same title as a previous version if the original publisher of that version gives permission.

B. List on the Title Page, as authors, one or more persons or entities responsible for authorship of the modifications in the Modified Version, together with at least five of the principal authors of the

220

Document (all of its principal authors, if it has fewer than five), unless they release you from this requirement.

C. State on the Title page the name of the publisher of the Modified Version, as the publisher.

D. Preserve all the copyright notices of the Document.

E. Add an appropriate copyright notice for your modifications adjacent to the other copyright notices.

F. Include, immediately after the copyright notices, a license notice giving the public permission to use the Modified Version under the terms of this License, in the form shown in the Addendum below.

G. Preserve in that license notice the full lists of Invariant Sections and required Cover Texts given in the Document’s license notice.

H. Include an unaltered copy of this License.

I. Preserve the section Entitled “History”, Preserve its Title, and add to it an item stating at least the title, year, new authors, and publisher of the Modified Version as given on the Title Page. If there is no section Entitled “History” in the Document, create one stating the title, year, authors, and publisher of the Document as given on its Title Page, then add an item describing the Modified Version as stated in the previous sentence.

J. Preserve the network location, if any, given in the Document for public access to a Transparent copy of the Document, and likewise the network locations given in the Document for previous versions it was based on. These may be placed in the “History” section. You may omit a network location for a work that was published at least four years before the Document itself, or if the original publisher of the version it refers to gives permission.

K. For any section Entitled “Acknowledgements” or “Dedications”, Preserve the Title of the section, and preserve in the section all the substance and tone of each of the contributor acknowledgements and/or dedications given therein.

L. Preserve all the Invariant Sections of the Document, unaltered in their text and in their titles. Section numbers or the equivalent are not considered part of the section titles.

M. Delete any section Entitled “Endorsements”. Such a section may not be included in the Modified Version.

N. Do not retitle any existing section to be Entitled “Endorsements” or to conflict in title with any Invariant Section.

O. Preserve any Warranty Disclaimers.

If the Modified Version includes new front-matter sections or appendices that qualify as Secondary Sections and contain no material copied from the Document, you may at your option designate some or all of these sections as invariant. To do this, add their titles to the list of Invariant Sections in the Modified Version’s license notice. These titles must be distinct from any other section titles.

221

You may add a section Entitled “Endorsements”, provided it contains nothing but endorsements of your Modified Version by various parties—for example, statements of peer review or that the text has been approved by an organization as the authoritative definition of a standard.

You may add a passage of up to five words as a Front-Cover Text, and a passage of up to 25 words as a Back-Cover Text, to the end of the list of Cover Texts in the Modified Version. Only one passage of Front-Cover Text and one of Back-Cover Text may be added by (or through arrangements made by) any one entity. If the Document already includes a cover text for the same cover, previously added by you or by arrangement made by the same entity you are acting on behalf of, you may not add another; but you may replace the old one, on explicit permission from the previous publisher that added the old one.

The author(s) and publisher(s) of the Document do not by this License give permission to use their names for publicity for or to assert or imply endorsement of any Modified Version.

5. COMBINING DOCUMENTS

You may combine the Document with other documents released under this License, under the terms defined in section 4 above for modified versions, provided that you include in the combination all of the Invariant Sections of all of the original documents, unmodified, and list them all as Invariant Sections of your combined work in its license notice, and that you preserve all their Warranty Disclaimers.

The combined work need only contain one copy of this License, and multiple identical Invariant Sections may be replaced with a single copy. If there are multiple Invariant Sections with the same name but different contents, make the title of each such section unique by adding at the end of it, in parentheses, the name of the original author or publisher of that section if known, or else a unique number. Make the same adjustment to the section titles in the list of Invariant Sections in the license notice of the combined work.

In the combination, you must combine any sections Entitled “History” in the various original do- cuments, forming one section Entitled “History”; likewise combine any sections Entitled “Acknowledge- ments”, and any sections Entitled “Dedications”. You must delete all sections Entitled “Endorsements”.

6. COLLECTIONS OF DOCUMENTS

You may make a collection consisting of the Document and other documents released under this License, and replace the individual copies of this License in the various documents with a single copy that is included in the collection, provided that you follow the rules of this License for verbatim copying of each of the documents in all other respects.

222

You may extract a single document from such a collection, and distribute it individually under this License, provided you insert a copy of this License into the extracted document, and follow this License in all other respects regarding verbatim copying of that document.

7. AGGREGATION WITH INDEPENDENT WORKS

A compilation of the Document or its derivatives with other separate and independent documents or works, in or on a volume of a storage or distribution medium, is called an “aggregate” if the copyright resulting from the compilation is not used to limit the legal rights of the compilation’s users beyond what the individual works permit. When the Document is included in an aggregate, this License does not apply to the other works in the aggregate which are not themselves derivative works of the Document.

If the Cover Text requirement of section 3 is applicable to these copies of the Document, then if the Document is less than one half of the entire aggregate, the Document’s Cover Texts may be placed on covers that bracket the Document within the aggregate, or the electronic equivalent of covers if the Document is in electronic form. Otherwise they must appear on printed covers that bracket the whole aggregate.

8. TRANSLATION

Translation is considered a kind of modification, so you may distribute translations of the Document under the terms of section 4. Replacing Invariant Sections with translations requires special permission from their copyright holders, but you may include translations of some or all Invariant Sections in addition to the original versions of these Invariant Sections. You may include a translation of this License, and all the license notices in the Document, and any Warranty Disclaimers, provided that you also include the original English version of this License and the original versions of those notices and disclaimers. In case of a disagreement between the translation and the original version of this License or a notice or disclaimer, the original version will prevail.

If a section in the Document is Entitled “Acknowledgements”, “Dedications”, or “History”, the requi- rement (section 4) to Preserve its Title (section 1) will typically require changing the actual title.

9. TERMINATION

You may not copy, modify, sublicense, or distribute the Document except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense, or distribute it is void, and will automatically terminate your rights under this License.

223

However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation.

Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice.

Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, receipt of a copy of some or all of the same material does not give you any rights to use it.

10. FUTURE REVISIONS OF THIS LICENSE

The Free Software Foundation may publish new, revised versions of the GNU Free Documentation License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. See http://www.gnu.org/copyleft/.

Each version of the License is given a distinguishing version number. If the Document specifies that a particular numbered version of this License “or any later version” applies to it, you have the option of following the terms and conditions either of that specified version or of any later version that has been published (not as a draft) by the Free Software Foundation. If the Document does not specify a version number of this License, you may choose any version ever published (not as a draft) by the Free Software Foundation. If the Document specifies that a proxy can decide which future versions of this License can be used, that proxy’s public statement of acceptance of a version permanently authorizes you to choose that version for the Document.

11. RELICENSING

“Massive Multiauthor Collaboration Site” (or “MMC Site”) means any World Wide Web server that publishes copyrightable works and also provides prominent facilities for anybody to edit those works. A public wiki that anybody can edit is an example of such a server. A “Massive Multiauthor Collaboration” (or “MMC”) contained in the site means any set of copyrightable works thus published on the MMC site.

“CC-BY-SA” means the Creative Commons Attribution-Share Alike 3.0 license published by Creative Commons Corporation, a not-for-profit corporation with a principal place of business in San Francisco, California, as well as future copyleft versions of that license published by that same organization.

224

“Incorporate” means to publish or republish a Document, in whole or in part, as part of another Document.

An MMC is “eligible for relicensing” if it is licensed under this License, and if all works that were first published under this License somewhere other than this MMC, and subsequently incorporated in whole or in part into the MMC, (1) had no cover texts or invariant sections, and (2) were thus incorporated prior to November 1, 2008.

The operator of an MMC Site may republish an MMC contained in the site under CC-BY-SA on the same site at any time before August 1, 2009, provided the MMC is eligible for relicensing.

ADDENDUM: How to use this License for your documents

To use this License in a document you have written, include a copy of the License in the document and put the following copyright and license notices just after the title page:

Copyright © YEAR YOUR NAME. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front- Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled “GNU Free Documentation License”.

If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts, replace the “with . . . Texts.” line with this:

with the Invariant Sections being LIST THEIR TITLES, with the Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST.

If you have Invariant Sections without Cover Texts, or some other combination of the three, merge those two alternatives to suit the situation.

If your document contains nontrivial examples of program code, we recommend releasing these exam- ples in parallel under your choice of free software license, such as the GNU General Public License, to permit their use in free software.

Apêndice E

Iniciando o Ubuntu

O primeiro ponto consiste em ligar o computador, inserir o CD no driver de CD/DVD e ajustar a BIOS da máquina para efetuar o boot pelo driver de CD. É comum que a BIOS seja acessada pela tecla DEL ou F2 e isso depende de cada máquina. Preste atenção logo que ligar ao computador, pois irá aparecer uma informação sobre a tecla para acesso à BIOS.

Ocorrendo tudo bem, a primeira tela que será visível ao usuário é a apresentada na figura E.1.

Figura E.1: Tela da inicialização do CD do Ubuntu.

225

226

Essa tela permite selecionar o idioma do CD. Escolha o idioma adequado e clique em ENTER. Caso nenhuma tecla seja acionada, o sistema na configuração padrão (que inclui o idioma inglês) irá ser iniciado após um certo tempo.

Após a seleção do idioma, a tela que ficará visível é apresentada na figura E.2.

As cinco opções de boot são acessíveis utilizando as teclas de navegação do teclado (setas). Note que, na figura E.2, a opção “Testar o Ubuntu sem qualquer mudança no seu computador” está escrita em uma letra mais clara que as demais opções. Isso indica que ela é a opção selecionada no momento.

Para quem quer apenas inicializar o Ubuntu, selecionar a opção “Testar o Ubuntu sem qualquer mudança no seu computador” e teclar ENTER deve ser suficiente na grande maioria dos casos.

Figura E.2: As opções de boot pelo CD do Ubuntu.

A inicialização do sistema ocorre em duas etapas: (i) todos os equipamentos de hardware serão identificados e (ii) os programas necessários serão carregados. Ao terminar o boot será observado a tela apresentada na figura E.3.

É interessante, entretanto, conhecer alguns dos recursos existentes no boot do CD. A primeria opção, “Testar o Ubuntu sem qualquer mudança no seu computador”, é a que inicializa o Ubuntu pelo CD (sistema em live CD). A segunda opção é para instalar o Ubuntu no computador. Contudo, é recomendado iniciar o Ubuntu pela primeira opção e depois selecionar instalar o Ubuntu. Carregar o sistema primeiramente pelo live CD ajuda a evitar surpresas desagradáveis.

227

Figura E.3: Tela do GNOME logo após o boot do CD.

A terceira opção “Verificar os discos para defeitos” inicializa o Ubuntu depois de ter verificado se há algum dano aparente no HD. Não é uma verificação infalível e não implica em HD com defeito, apenas em danos na estrutura lógica que pode ser associado a dano físico ou não.

A quarta opção realiza um teste de memória RAM. É certo que, se houver algum alerta de problema ao utilizar esse aplicativo, a memória está com defeito. Para sair do aplicativo em questão utilize a tecla ESC. Antes, porém, permita que todos os testes sejam executados pelo menos duas vezes. Esse programa em si, chama-se memtest86+1 e sua página ofical conta com todo tipo de informação associada ao seu uso. Informações detalhadas em português pode ser encontrada no texto de MORIMOTO [13].

A última opção consiste em inicializar pelo primeiro disco rígido. É utilizada quando ocorre algum problema com o setor de boot da máquina, mas todo o resto continua funcionando. Funciona como um “disquete” de boot.

Outras configurações de boot estão listadas na parte inferior da tela. Lê-se, por exemplo, “Ajuda” relacionada a tecla F1, “Idioma” associado a tecla F2, que é a mesma tela apresentada na figura E.1. O “Mapas de teclas”, acionado pela tecla F3, permite modificar o layout do teclado e sua tela lembra muito a seleção de idioma, apresentada na figura E.4. A opção Brazil é o ABNT2 (o teclado que possui o “ç”).

A tecla F4, “Modos”, é utilizada para resolver problemas com a identificação da placa de vídeo. A 1memtest86+ - http://www.memtest.org/

228

Figura E.4: Selecinando o layout do teclado.

figura E.5 apresenta essa tela. Basicamente ela permite selecionar como se deseja ativar a placa de vídeo. Suas principais funções são o modo “Normal”, que é o padrão, e o “Modo gráfico seguro”, que ativa um driver de vídeo que todas as placas reconhecem. Esse é o problema mais comum ao utilizar um live CD pois, embora o sistema tenha uma boa capacidade de reconhecer a placa de vídeo, o mesmo não se pode afirmar de um monitor. Como o sistema identifica a melhor resolução para a placa de vídeo e para o monitor, não é incomum que uma combinação de uma placa de vídeo nova e um monitor antigo resulte em uma falha no boot.

A tecla F5 permite ativar modos de acessibilidade, usualmente utilizados por quem requer um ambi- ente diferenciado para conseguir utilizar o computador de forma adequada. Essa tela é apresentada na figura E.6.

A tecla F6 permite configurar outras opções de boot como, por exemplo, desabilitar o módulo acpi (acpi=off). Ocorre que o usuário deve ter em mente o que significam tais opções antes de selecionar. Algumas dicas:

• ACPI (Advanced Configuration and Power Interface): Gerencia os recuros de energia do compu- tador. Algumas placas mãe requerem configurações especiais para fazer essa interface funcionar. Desabilitar esse recurso pode trazer conseqüências desagradáveis em um laptop, por exemplo, por não permitir que esse equipamento gerencie corretamente a energia do sistema. Algumas vezes é necessário forçar a utilização do módulo.

229

Figura E.5: Confiurando os “Modos” de inicialização.

Figura E.6: Confiurando de recursos de acessibilidade.

230

• APCI (Advanced Programable Interrupt Controller): Desabilitar esse recurso pode instruir ao nú- cleo para não utilizar o gerenciador de interrupções integrado ao processador. Permite contornar problemas na identificação de dispositivos, por exemplo, dispositivos IDE.

• PNPBIOS: Recurso associado ao gerenciamento de dispositivos plug and play. Resolve problemas com placas mãe que acreditam ser uma boa idéia “gerar” reservas para dispostivos que não existem e impedem o reconhecimento de dispositivos que existem.

• PCMCIA: Recurso associado a controladores PCMCIA. Se o usuário não tiver um controlador desses, obviamente desativá-lo não trará qualquer prejuízo. Esse tipo de controlado é típico de notebooks.

Há outras opções, e na internet existem informações precisas sobre elas, seus usos, vantagens e des- vantagens. Nos últimos anos, há uma evolução significativa no desenvolvimento do sistema, minimizando o número de incompatibilidades com o hardware do computador.

Após escolher todas as opções desejadas, selecione “Testar o Ubuntu sem qualquer mudança no seu computador” e clique em ENTER.

Apêndice F

Instalação do GNU/Linux

Esse anexo descreve com imagens as etapas instalação de três distribuições GNU/Linux. O Ubuntu 9.04 (e como conseqüência, do Edubuntu e Kubuntu). Para outras distribuições, como o openSUSE 11.1 e o Fedora 10, haverá uma seção específica com links na internet com um passo a passo detalhado.

Existem diferenças na instalação entre versões de uma mesma distribuição, contudo, a maioria das alterações são intuitivas para quem fez alguma instalação desta mesma distribuição antes. Entre diferentes distribuições, apesar de apresentar as mesmas epatas em conceito, os procedimentos podem ser bem diferentes.

Cada instalação apresentará a forma simples de ter o GNU/Linux instalado no computador, mas também apresentará algumas ramificação para formas completas. A idéia não é complicar o processo de instalação, mas sim ter o processo de instalação de forma simples, mas não mais simples do que o necessário para usufruir dessa informação transformando-a em algo útil.

F.1 Conceitos Preliminares

Como dito, alguns conceitos fazem-se presentes na instalação de todas as distribuições. Por exemplo, as etapas quase sempre consistem em:

1. “Identificação de características regionais” . Como idioma, data/hora, configuração de teclado.

2. “Configuração do HD” . Em outras palavras, como o HD será dividido, qual será o sistema de arquivos, etc.

3. “Configuração da conta do usuário” . Defini-se o login e senha do primeiro usuário do sistema

231

F.1. Conceitos Preliminares 232

e, em alguns casos, do root.

4. “Seleção dos programas” . Define-se aqui quais serão os programas que serão instalados. Essa etapa não existe em todas as instalações, e quando existe é opcional. Nesse último casos, uma lista básica de programas pode ser instalado automaticamente e toda a configuração pode ser feita posteriormente ou pode-se personalizar a lista de programas durante a instalação.

5. “Revisão/Ajuste da configuração do sistema” . Essa etapa ocorre após a instalação. É opcional ou memsmo não existe na grande maioria das distribuições, pois todas permitem ajustar estas configurações após a instalação. Se possível, é sempre saudável revisar o que o programa fez de forma automática.

A configuração do HD será sempre lembrada como algo complicado. Essa fama injustificada nos dias de hoje possui precedência histórica. Hoje, realizar esse processo é algo simples, mas algumas idéias precisam ser sedimentadas. Por exemplo, como segmentar o HD?

Primeiro é importante entender que “segmentar o HD” consiste em dividir o HD em partes indepen- dentes chamadas partições. Dessa forma, é possível apagar o conteúdo de uma partição sem prejudicar o conteúdo de outra partição. Portanto, parece muito interessante ter os dados pessoais em uma partição diferente daquela que contém os arquivos de programas. Mais precisamente, é interessante ter o diretório /home em uma partição diferente do conteúdo da /. Pode-se perguntar: Não é o diretório /home um diretório contido em /? Sim, mas isso não significa que o conteúdo do diretório /home precise estar na mesma partição que o próprio diretório /home.

Basicamente, isso remonta a forma com que o sistema de arquivos entende os dados. Por metáfora, para o sistema de arquivos, todos os arquivos são livros, mantidos em uma ordem qualquer em algum lugar e ele próprio (ou seja, o sistema de arquivos) são as grandes prateleiras de uma biblioteca. Para o sistema de arquivos, não importa qual o local que os “livros” ficam armazenados, importa apenas que ele saiba exatamante onde é esse local e como acessar rapidamente esse dado.

Portanto, para o sistema de arquivos os dados/arquivos estão dispersos por tantas partições (e HDs) quanto o usuário quiser utilizar. Para o sistema importa apenas saber quais e quantas são essas partições e como a estrutura física se encaixa na estrutura lógica, que é a estrutura de diretórios. Note que para o sistema de arquivos, existe apenas uma estrutura de diretórios e as partições são montadas nessa estrutura conforme o desejo do usuário.

Por exemplo, ao inserir um CD em um driver, o disco é montado no diretório /media/cdrom0 (esse diretório é criado de forma dinâmica pelo sistema) e dentro desse diretório é que a informação estará plenamente integrada à estrutura única de arquivos. Mas isso não significa que o diretório foi copiado para o /media/cdrom0. O conteúdo continua exclusivamente no CD.

No GNU/Linux é necessário utilizar no mínimo duas partições. Uma partição para o diretório raiz (ou seja, /), que é o diretório abaixo do qual todos os outros existem e sem ele não é possível ter um

F.1. Conceitos Preliminares 233

GNU/Linux instalado. Outra partição especial, chamada swap, que é alocada no sistema como uma continuidade da memória RAM (mas com desempenho muito abaixo dessa).

Contudo, o ideal é ter de três até quantas partições forem necessárias. Considere uma partição para a raiz e outra para o swap.

Além dessas,em alguns casos é interessante ter a partição /boot em separado. Isso se deve ao fato de que o GNU/Linux suporta dezenas de tipos diferentes de sistemas de arquivos, mas nem toda distribuição consegue inicializar através desses sistemas. A forma de contornar isso é criar a partição de inicialização com o sistema de arquivos suportado e utilzar o sistema de arquivos desejado nas demais partições. Isso permite ganhar desempenho. Essa partição é tradicional em instalações que utilizem RAID ou LVM e necessárias em algumas distribuições. A regra é, se não der certo sem ela, crie-a.

Uma outra partição pode acomodar o /opt ou /var, cujos diretórios possuem objetivos específicos. Por exemplo, isolar o /opt é para pessoas que acreditam que seu conteúdo é valioso ou dará muito trabalho de repor em uma eventual perda. Isolar o conteúdo de /var é para servidores com muitos usuários e poucos recursos, pois nesse diretório estão os logs, que não podem ocupar o sistema inteiro e travar o computador por eliminar o espaço disponível em HD. Nesses casos, isolar esse diretório é útil.

Mas para o usuário final, o que realmente interessa é isolar o /home. Esse diretório é onde estão os seus dados pessoais do sistema e, portanto, é o que realmente importa para o usuário (todo resto é sistema e pode ser reinstalado).

Os tamanhos indicados para o diretório /boot são de aproximadamente 200 MB (é megabytes mesmo). Isso assegura que mesmo o usuário mais descuidado não terá qualquer problema. O diretório raiz deve ter no mínimo 20 GB. Na teoria, para a maioria esmagadora de usuários, 10 GB são mais do que suficientes. Mas a prática revela-se que todo usuário tem a capacidade de consumir espaço em disco inversamente proporcional ao espaço que resta. Assim, como os dispositivos estão cada vez maiores, 20 GB é uma boa idéia.

O swap deve ter o dobro da memória RAM até um máximo de 2 GB1. Ou seja, se a máquina possui 512 MB de memória RAM, o swap deve ter 1 GB de memória RAM enquato que se a máquina possui 2 GB de memória RAM, o swap também deve ter 2 GB de memória RAM.

O restante do espaço no HD fica para o diretório /home. E que esse espaço não seja menos do que o espaço reservado ao diretório raiz. Do contrário, é preferível não ter um diretório /home2. Lembre-se que sempre é possível utilizar apenas duas partições: raíz e swap.

1Regra passada de “boca-a-boca” pela internet, com certa base teórica, mas também rica em mistério e carregada de influências históricas.

2Isso não é uma regra, é apenas bom senso.

F.1. Conceitos Preliminares 234

Outra informação associada aos HDs, é que existem dois tipos de partição: a partição primária e a partição estendida. Um único HD pode ter no máximmo 4 partições primárias. A partição estendida é uma partição primária que não contém um sistema de arquivos, mas sim outras partições ou unidades lógicas, chamadas de partições secundárias. Uma partição estendida pode ter mais de uma centena de partições lógicas. Portanto, um HD pode ser dividido em centenas de partições, desde que o recurso de partição estentida seja utilizado.

Por fim, é importante entender como um HD é representado pelo GNU/Linux.

Para o caso de HDs PATA, ou seja, os conectados com cabo IDE (como nesse exemplo), o HD que está na IDE primária como master e ele é chamado de sda ou hda, representado por um arquivo de dispositivo localizado em /dev/, ou seja, /dev/sda ou /dev/hda. O HD que está na IDE primária como slave é sdb ou hdb. O HD que está na localizado na IDE secundária como master é o sdc ou hdc e o que está na IDE secundária como slave é o sdd ou hdd.

Historicamente, um HD PATA era representado apenas com hdX, onde X é a, b, c ou d3. A mesma regra valia para qualquer dispositivo PATA, o que inclui os leitores/gravadores de CD/DVD. Hoje em dia, esses dispositivos são identificados como sdX na grande maioria dos computadores.

Contudo, a nomenclatura sdX está, historicamente, associdada aos HDs SATA, sendo que as letras não são mais limitadas a apenas 4 dispositivos e, nesse caso, somente os HDs SATA são identificados dessa forma. Os gravadores de DVD SATA são identificados com srN (onde N é um número iniciando por zero). A ordem de identificação dos HDs SATA normalmente segue a ordem de conexão dos HDs na placa-mãe, ou seja, o SATA 0 é o sda, o SATA 1 é sdb e assim sucessivamente.

Uma vez selecionado qual é o HD, por exemplo considerando /dev/sda, é necessário saber qual é a partição. Nesse caso, cada partição de um mesmo HD é identificado com um número “indexado” ao nome do HD. Por exemplo, a primeira partição do HD /dev/sda é a /dev/sda1, a segunda partição é a /dev/sda2 e assim sucessivamente. Diz-se, portanto, que uma partição pode ser genericamente representada por /dev/sdXN.

Então, como saber qual é o HD certo ? O ideal é verificar com uma distribuição Live CD utilizando um aplicativo chamado GParted, que está presente no Ubuntu e é apresentado na figura F.1. Esse programa é um particionador de HDs em modo gráfico que permite verificar quem é cada HD e como eles estão divididos.

Note na figura F.1 que o HD /dev/sda (vide canto superior direito) possui 4 partições. Essa informação pode ser constatada pela lista presente na parte central do programa e pela representação gráfica que existe na região logo acima da parte central do programa e abaixo da barra de ferramentas.

3É possível ter mais de quatro dispostivos IDE utilizando uma placa RAID PCI para HDs PATA, mas trata-se de uma abortagem obsoleta nos dias de hoje e nunca foi uma prática usual.

F.1. Conceitos Preliminares 235

Figura F.1: Particionador de HDs Gparted.

Esse programa fornece informações sobre o HD, sobre a partição, como número, tipo, tamanho e, quando cabível, espaço ocupado e qual partição é “bootável” (aquela que possui a flag “boot”, é a partição por onde o boot ocorre), entre outras informações.

Pela figura F.2 percebe-se que esse computador possui três HDs. Um com 120 GB, e dois com 320 GB (que por acaso do destino, são inclusive do mesmo modelo - vide o código final na lista). A diferença entre os HDs é como eles são identificados pelo sistema. Essa tela faz parte do instalado do Ubuntu, que como pode-se perceber, tem interface similar ao Gparted.

Mas o assunto é como reconhecer o HD correto para a instalação. A princípio, espera-se que o usuário saiba se os HDs são do mesmo tamanho ou não. Se não são, o problema está resolvido. Se são idênticos, a próxima pergunta é se eles possuem algum conteúdo.

Se são HDs novos, não há como identificar qual o HD desejado a menos que saiba qual é a ordem da conexão do HD na placa mãe, mas nesse caso não se deseja tão ardentemente saber a diferença entre os HDs, porque afinal eles são idênticos. Caso instale o Windows, ele irá para o sda, enquanto que o GNU/Linux pode ir para qualquer um. Inclusive junto com o Windows no sda, basta não usar todo o espaço em disco (sempre se instala o Windows antes do GNU/Linux).

Se os HDs não são novos, presume-se que estão formatados. Se estão formatados e não possui conteúdo algum, recai-se na mesma situação do caso anterior. Se possui algum conteúdo, presume-se que o espaço utilizado em cada HD seja diferente. Portanto, a identificação pode ser facilmente feita pelo Gparted ou pelos programa de instalação da distribuição selecionada. Basta que o usuário saiba qual é o HD que deseja instalar e referenciá-lo de alguma forma.

F.2. Ubuntu 9.04 236

Figura F.2: Interface de particionamento de HDs do Ubuntu presente no instalado do programa.

Em um caso extremo e extraordinário, os dois HDs possuem o mesmo volume de dados e não foi possível identificar o HD da forma tradicional. Então a pergunta é: os dados nos dois HDs são diferentes? Porque para ter o mesmo volume de dados a probabilidade de que isso aconteça com conteúdos diferentes é insignificante.

Há casos particulares de instalações avançadas envolvendo modos de partições que não serão abordados nesse texto, como RAID e LVM. Essas abordagens não são típicas de usuários domésticos, portanto não deve fazer falta a grande maioria dos usuários4.

Durante as instalações, algumas configurações de HD serão avaliadas, porém serão completamente ignoradas as recomendações de tamanho nesses casos. O motivo disso é que algumas dessas instalações foram feitas em máquinas virtuais, onde não era possível fazer valer essas recomendações.

F.2 Ubuntu 9.04

A forma mais simples de instalar o Ubuntu é utilizando um CD e iniciando o sistema como se quisesse apenas fazer um teste. O Anexo E descreve como efetuar essa inicialização. Embora não seja obrigatório,

4Isso é parcialmente verdade. Se a instalação for feita em RAID 0, a velocidade de acesso ao HD duplica. Se a instalação for feita em RAID 1, os dados são automaticamente duplicados entre os HDs, aumentando a confiabilidade do sistema. Se for utilizado o RAID 10, uma combinação do RAID 0 com 1, aumenta-se a velocidade e a confiabilidade. Qual é o usuário que não deseja essas vantagens? Veja mais em: http://www.guiadohardware.net/artigos/raid-aumentando/

F.2. Ubuntu 9.04 237

é conveniente configurar a internet antes de iniciar a instalação.

Após o boot, para instalar o Ubuntu 9.04, clique no ícone localizado no canto superior esquerdo da área de trabalho e nomeado de “Instalar o sistema no computador” (figura 5.2). Essa mesma ferramenta é acessível em “Sistema” >> “Administração” >> “Instalar o sistema no computador” (figura 5.11). A tela do programa aberto com essa ação é apresentado na figura F.3. Nela, percebe-se a mensagem de boas vindas e a seleção do idioma na barra lateral. Em seguida clique em “Avançar”.

Figura F.3: Tela inicial do programa de instalação do Ubuntu 9.04.

A tela seguinte (figura F.4) é onde se configura a localidade, ou seja, configura-se o fuso horário. Selecione “America” e “Sao Paulo”, para o horário oficial de Brasília. Ao concluir, clique em “Avançar”.

Em seguinda, o instalador pede a configuração do teclado (figura F.5). Caso o idioma “Português do Brasil” tenha sido selecionado na primeira tela, este estará pré-selecionado a configuração “Brazil/Brazil”. O primeiro “Brazil” refere-se à localização geográfica (em inglês, claro), enquanto que o segundo “Brazil” é um nome simpático para o teclado ABNT2 (aquele que têm o “ç”). No Brasil, há dois teclado típicos, o ABNT2 (mais comum) e o “US-Internacional” (que está cada vez mais difícil de achar). Há na tela uma região específica para teste do teclado. Use-a para ter certeza de que tudo está funcionando (dica: teste acentos e caracteres especiais). Em seguida clique em “Avançar”.

A tela seguinte é a parte de particionamento do HD (figura F.6). Na parte superior dessa tela existem informações sobre o HD, que está selecionado no campo instalar o disco inteiro. Nesse ponto da instalação, é o HD onde o Ubuntu será instalado. Note que esse HD possui uma instalação anterior nele, embora

F.2. Ubuntu 9.04 238

Figura F.4: Configuração do fuso horário.

Figura F.5: Configuração do teclado.

F.2. Ubuntu 9.04 239

a mensagem na tela superior diga que não há um sistema operacional no computador. Isso é mentira, a frase correta deveria ser: “não há windows nesse computador” (o que é verdade). É nesse ponto da instalação que aplica-se toda a teoria previamente apresentada sobre o particionamento de HDs. Esse guia de instalação irá seguir três caminhos alternativos, no qual o primeiro é o que essa figura apresenta, ou seja, será utilizado o HD inteiro, apagando tudo que existe no HD atual e permitindo que o instalador crie partições de forma automática. A única escolha que deve ser feita é qual dos HDs existentes na máquina deve ser selecionado para a instalação (presume-se que nesse ponto o usuário já saiba qual é o HD desejado). Nesse exemplo, a instalação será efetuada no sda. Portanto, basta clicar