Luiz Antonio Jacques Noal
Novatec
Copyright © 2016 da Novatec Editora Ltda. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução desta obra, mesmo parcial, por qualquer processo, sem prévia autorização, por escrito, do autor e da Editora. Editor: Rubens Prates OG20151222 Assistente editorial: Priscila A. Yoshimatsu Revisão gramatical: Marta Almeida de Sá Editoração eletrônica: Carolina Kuwabata Capa: Carolina Kuwabata ISBN: 978-85-7522-472-4 Histórico de impressões: Janeiro/2016
Primeira edição
Novatec Editora Ltda. Rua Luís Antônio dos Santos 110 02460-000 – São Paulo, SP – Brasil Tel.: +55 11 2959-6529 E-mail: novatec@novatec.com.br Site: novatec.com.br Twitter: twitter.com/novateceditora Facebook: facebook.com/novatec LinkedIn: linkedin.com/in/novatec
capítulo 1
Conceitos básicos
Para introduzir ideias e explicar procedimentos, é necessária uma base conceitual que permita a gradual compreensão das partes de um tema, até que o todo seja conhecido.
Licenciamento para usuário Observando de forma direta e objetiva, o licenciamento é uma forma de contrato legal para a permissão de uso, firmado entre duas partes, que são o proprietário do software e o usuário do software. O proprietário é quem detém direitos autorais e comerciais sobre o software, e o usuário é aquele que, embora de posse de uma cópia do software, apenas pode utilizá-lo de acordo com o que for previsto no contrato de licenciamento. Contratos firmados de acordo com a lei são importantes para a proteção dos direitos da parte proprietária, assim como da parte usuária, sendo lícito ao proprietário impor condições para o licenciamento e restrições ao uso do que lhe pertence – isto é tão indiscutível quanto os direitos do utilizador. Se por um lado o proprietário pode determinar como seu software será utilizado, por outro lado cabe ao usuário que escolher utilizar um determinado software decidir se as condições contratuais são ou não aceitáveis e cumprir a lei. Porém é comum a cultura popular entrar em atrito com algumas condições contratuais, especialmente quando tais condições são redigidas por estrangeiros, ou quando os contratos visam à proteção de interesses abstratos e não palpáveis, possivelmente até abusivos, ou ainda quando o usuário do produto é leigo e pouco informado. Embora o desconhecimento da lei não exima da responsabilidade aquele que a descumpre. Vejamos dois estudos de casos análogos.
22
Capítulo 1 ■ Conceitos básicos
23
Caso 1 – Compra de um DVD Uma pessoa entra em uma loja onde estão expostos instrumentos musicais, alguns eletrônicos e vários CDs e DVDs de artistas diversos. A pessoa escolhe um DVD com músicas e procura um vendedor que, após fornecer-lhe um ticket, encaminha a pessoa até um balcão de pagamento. A pessoa paga o seu ticket e, à saída, apanha o DVD escolhido, levando-o para presentear um amigo.
Perguntas • A pessoa, cliente na loja, comprou músicas?
Não. As músicas não foram compradas, elas ainda pertencem ao compositor, aquele que criou a obra musical, podendo ou não ser o intérprete, aquele que as canta.
• A pessoa que comprou o DVD como um presente pode copiá-lo antes de entregar ao amigo?
Não. O direito de cópia e reprodução pertence à gravadora que tem vínculo contratual com o compositor.
• A pessoa que ganhou o DVD como presente pode vendê-lo?
Não. O direito de comércio e distribuição também pertence à gravadora que tem vínculo contratual com o compositor, ou a distribuidores vinculados à gravadora.
• Pessoas de posse do DVD podem tocá-lo e reproduzir as músicas em um palco armado em uma feira ou outro local público?
Não (sem pagar uma taxa Ecad1). O direito de reproduzir as faixas musicais em local público pertence ao intérprete, que, se não for o próprio compositor, tem vínculo contratual com o compositor.
Comentário A pessoa que foi até a loja comprou o direito de reprodução privada das faixas musicais contidas na mídia (direito privado de executar os arquivos). Ao presentear a mídia para um amigo, o direito de reprodução privada foi repassado ao amigo. Isto parece um tanto forte, mas saiu da interpretação do texto da 1 Ecad é o escritório privado responsável pela arrecadação e distribuição dos direitos autorais das músicas aos seus autores.
24
Linux para Linuxers
Lei 9.610, de 19 de fevereiro de 19982, a qual protege o direito autoral e dá outras providências. O compositor é dono do direito autoral e o licencia na forma de contrato para a gravadora, para o intérprete e assim por diante até o usuário final. A pessoa que comprou o DVD e aquele que o recebeu como presente fazem parte deste circuito. Mesmo não tendo assinado documento algum, assim é a lei.
Licenciamento de software Uma regra semelhante se aplica ao licenciamento de software; o fabricante ou o desenvolvedor de software licencia seu produto por meio de contrato firmado com o usuário final, e esse contrato consta na documentação impressa ou digital que é distribuída com o software. Todo software exibe um contrato para licenciamento em algum momento da sua instalação; tudo bem que o contrato só é visto (não necessariamente lido) pelo técnico instalador, mas mesmo assim ele existe, é exibido durante uma instalação e deve ser aceito para dar prosseguimento à instalação e consequente utilização. Ao usar um software, não importa qual seja, o usuário concorda com as exigências e formalidades contratuais impostas pelo fabricante/desenvolvedor que são garantidas pela Lei 9.609, de 19 de fevereiro de 19983, publicada no Diário Oficial da União nº 36, de 20 de fevereiro de 1998.
Caso 2 – Software proprietário e EULA O software proprietário é aquele que o usuário apenas pode utilizar dentro dos limites permitidos pelo licenciamento – não pode ser redistribuido, comercializado, modificado etc. O EULA (End User Licence Agreement – Licença de uso para usuário final) é uma forma genérica de licenciamento de software proprietário para o usuário final. Para que um software proprietário possa ser instalado, os termos do EULA devem ser aceitos. Algumas exigências contratuais são no mínimo estranhas, e outras apresentam cláusulas que encerram armadilhas tais que se os usuários finais conhecessem a Lei nº 9.609, e se prestassem a ler os contratos de licenciamento, passariam a usar software livre. 2 Lei do direito autoral. 3 Lei do software.
Capítulo 1 ■ Conceitos básicos
25
Vejamos no destaque a seguir um trecho de uma licença EULA extraído de uma das telas do instalador de um software muito popular durante 2005. 2.4. Uso em computador portátil ou doméstico. Além da única cópia permitida nas seções 2.2.1 e 2.3, o usuário principal do computador no qual o software está instalado poderá fazer uma segunda cópia do software para seu uso próprio em um computador portátil ou em um computador em sua casa, contanto que o software no computador portátil ou no computador em casa não seja usado ao mesmo tempo em que estiver sendo usado no computador principal.
Vejamos na figura 1.1 o print screen da tela do instalador de onde foi extraído o texto em destaque. Algumas partes da imagem foram propositalmente borradas para ocultar logotipos e marcas.
Figura 1.1 – EULA (End User Licence Agreement).
Opa! Uma pessoa, o usuário, poderia fazer muitos downloads gratuitos do aplicativo, porém proceder apenas duas instalações, sendo uma no computador dito principal e uma no computador de casa, ou no computador portátil. A pessoa pode ter três ou mais computadores, mas realizar apenas duas instalações, e ambas as cópias instaladas não poderiam ser usadas ao mesmo tempo. E se o usuário tiver um filho de 6 ou de 16 anos que resolva ligar o computador em casa enquanto o pai, dono do computador, estiver no trabalho?
26
Linux para Linuxers
Em algum momento da vida real, a pessoa que instalasse o tal aplicativo correria o risco de burlar a lei por não ter cumprido as exigências contratuais, pelo que poderia até ser acionada legalmente e punida. Exagero4? Pode até ser um exagero, mas é o que constava naquele contrato de 2005 e que de forma elogiável foi mudado em 2009 para uma licença mais branda. Telas como esta são vistas apenas por técnicos e por algumas poucas pessoas que instalam os programas que utilizam. Então eu me pergunto se uma pessoa de bons princípios, que lesse esta tela, não trocaria este aplicativo por outro com uma licença menos absurda.
Software livre , não gratuito 5
É um tipo de licença (contrato entre desenvolvedor e usuário final) que protege a propriedade intelectual do programador, o dono dos direitos autorais, e permite ao usuário final utilizar o software da maneira que bem entender, podendo ou não haver gratuidade ou cobrança. Esta licença garante ao usuário quatro liberdades fundamentais e um dever: • Liberdade para auditar o software – Significa que o autor de software livre deve disponibilizar o código-fonte para quem o desejar, seja na forma de download ou de alguma mídia, para que possa ser verificado se o software faz o que realmente afirma fazer e de que modo o faz. • Liberdade para modificar o software – Com a posse do código-fonte, um usuário, também programador, pode adequar o software às suas necessidades pessoais, às necessidades de um cliente, ou modificar aquilo que desejar, a fim de melhorar o software, e neste caso tem a obrigação de liberar também o código-fonte modificado, acrescentando aos créditos de autoria o seu nome e a sua parte na modificação, sempre mantendo o nome do autor original. • Liberdade para usar o software com o propósito que quiser – Ao usuário de software livre é garantido o direito de usar o software para qualquer propósito, seja ele comercial, militar, educacional, filantrópico ou para produção de armas de destruição em massa; a responsabilidade é de quem o usa e não de quem o cria. 4 Exagero no Brasil, mas, para ilustrar, tenho um ex-colega de trabalho que foi deportado dos Estados Unidos por abrir um iogurte sem pagá-lo, após o dono de uma lojinha de conveniências ter chamado a polícia na Flórida. 5 “Livre” vem de liberdade, não de gratuidade. Atualmente existe o termo Open Source (fonte aberta), um tipo de licença algo politicamente mais branda que o software livre e felizmente com foco mais tecnológico e bem menos ideológico.
Capítulo 1 ■ Conceitos básicos
27
• Liberdade de distribuir o software, respeitando os direitos autorais – O software licenciado como sendo livre pode ser copiado em quaisquer tipos de mídias e quantidades e distribuído da maneira que o usuário desejar, seja gratuitamente ou até mesmo vendido. Em contrapartida à imposição feita ao programador, de liberar o acesso ao código-fonte, o usuário é obrigado a proteger o direito autoral do autor original e dos coautores e, se modificar o software, não blindá-lo sob uma licença de software proprietário nem redistribuí-lo junto a um software proprietário6. O uso de software livre traz alguns benefícios para o indivíduo utilizador e para a comunidade em que tal utilizador está inserido, tais como: • Domínio de tecnologia – Ao verificar um código-fonte, um programador estuda e aprende como o software funciona. Ao adquirir conhecimento, este programador pode produzir software na localidade onde mora, criando tecnologia para atender às demandas de empresas e entidades locais, cessando a dependência de empresas estrangeiras, modismos internacionais ou a vontade de um grande fabricante que imponha suas tendências. • Desenvolvimento pessoal – Ao estudar e aprender, o indivíduo cresce como pessoa e como profissional, criando melhores condições para si no momento de encontrar trabalho e progredir em sua vida. • Desenvolvimento local – Quando um indivíduo membro de um grupo evolui, parte da evolução atinge também os indivíduos que o circundam; assim a evolução se espalha e toda a comunidade evolui. O nome disso é crescimento. A história da criação da licença de software livre é bem longa e se mistura com a história da informática. Em poucas palavras, a licença foi criada por um programador do MIT (Instituto Tecnológico de Massachusetts) chamado Richard Mattew Stallman, após ele ter se estressado no trabalho com um driver de impressora de propriedade da Xerox, do qual ele necessitava compreender o funcionamento e que fora desenvolvido por um programador que também trabalhara no MIT. Depois de certo tempo e de algumas tentativas infrutíferas de obter o código-fonte, Stallman criou em 4 de outubro de 1985 uma fundação sem fins lucrativos denominada FSF, a Free Software Foundation (Fundação Software Livre), com o objetivo de eliminar restrições de cópia, distribuição, estudo e modificação em softwares. 6 O termo software livre provém da licença GNU GPL da Free Software Foundation e pode ser encontrada no link https://www.gnu.org/copyleft/gpl.html.
28
Linux para Linuxers
A FSF também é responsável pelo projeto GNU, que pretende criar um sistema operacional completo, funcional e sem qualquer código-fonte proprietário, bem como criar e manter as diversas aplicações de sistema, as quais fazem parte das diversas distribuições de Linux, com especial ênfase ao compilador GCC, sem o qual o Linux não existiria, segundo declaração do próprio Linus Torvalds, criador do Linux. Foi por meio da FSF que Stallman criou em 1989 um documento denominado GNU GPL, a Licença Pública Geral GNU, a qual propõe a liberdade dos softwares (http://pt.wikipedia.org/wiki/GNU_GPL). Atualmente a FSF dedica-se mais aos aspectos legais e estruturais da comunidade do software livre. Uma curiosidade: a sigla GNU significa Gnu is Not Unix (Gnu não é Unix), devido ao fato de o sistema operacional desenvolvido pela Free Software Foundation ter as mesmas funcionalidades do sistema operacional Unix, porém sem conter código-fonte do Unix7. A sigla GNU provém da palavra “gnu”, um tipo de herbívoro selvagem nativo das planícies do Serengeti na África. Quando desgarrado de sua manada, serve de alimento para todos os predadores e carniceiros da savana, mas quando os gnus se juntam em grupos, formam manadas com mais de dois milhões de indivíduos que correm juntos na mesma direção, se transformando na força mais destrutiva da savana – comem todo o alimento, bebem quase toda a água e atropelam o que e quem estiver pela frente. Stallman teria se sentido como um gnu solitário na luta contra o software proprietário e, com o projeto GNU, pretenderia formar sua própria manada.
Distribuição Linux Existem vários “sabores” de Linux, cada um é uma distribuição. Há distribuições disponíveis para os mais diversos fins e com os mais variados níveis de funcionalidade e aplicabilidade, umas voltadas para iniciantes, outras para educação, outras para rastrear, buscar e quebrar a segurança de redes Wi-Fi; enfim, são vários nomes, porém todos são Linuxes.
7 Na época havia sérias e milionárias disputas judiciais em torno da propriedade do código-fonte do Unix, que fora desenvolvido anos antes no laboratório da Bell, mas que no decorrer dos anos também teve contribuições de várias empresas e desenvolvedores, durante o desenvolvimento de um projeto militar que se tornou mais tarde a Internet.
Capítulo 1 ■ Conceitos básicos
29
Como é isso? O que denominamos distribuição Linux, ou simplesmente distro, é um conjunto de softwares que podem ser divididos em três grandes partes: • Kernel Linux – É o núcleo de sistema operacional, criado por Linus Benedict Torvalds em 1991. É a parte comum a todos os Linuxes, encarregada de gerenciar o hardware. O nome Linux provém de Linus + Unix. • Ferramentas GNU – São diversos softwares aplicativos de sistema, criados a partir do projeto GNU da FSF. São softwares usados para administrar outros softwares, e tais ferramentas variam muito pouco de uma distro para outra. É por meio delas que o kernel é acessado e controlado, sendo as principais ferramentas o compilador GCC e a biblioteca libc6. Da fusão das ferramentas GNU com o kernel Linux vem o nome GNU/Linux. Aliás, existem pessoas que afirmam ser o GNU o verdadeiro sistema operacional, sendo o Linux apenas mais um de seus kernel. De fato é possível, por exemplo, instalar o Debian com um kernel FreeBSD, cujo nome é Debian GNU/kFeeBSD. • Pacotes personalizados por distribuidores – São os diversos softwares desenvolvidos por quem cria uma distro. Englobam aquilo que realmente dá personalidade à distro e que define qual será a destinação final da distro. São aplicativos do espaço de usuário, tais como editores de texto, agendas, navegadores web, os servidores diversos, a documentação, o instalador, a aparência etc. Existem incontáveis distribuições Linux, e a cada dia nascem e morrem várias, umas originais e outras meras remasterizações de distribuições existentes. Algumas iniciam suas vidas como cópias diferenciadas de outra distro e depois ganham vida própria ou caem no esquecimento. Atualmente são quatro as grandes distros. São algumas das mais antigas e que servem de referência para muitas outras. Slackware Nasceu em 1993, criada por Patrick Volkerding, sendo a mais antiga das distros ainda mantidas e também a mais parecida com o antigo Unix; seu logo pode ser visto na figura 1.2. A Slackware não é algo para iniciantes, nem mesmo para usuários médios, mas, uma vez dominada, se mostra poderosa e flexível.
30
Linux para Linuxers
Figura 1.2 – Logo da distro Slackware.
Suse Uma distro de origem alemã que no início era baseada no Slackware e com o tempo ganhou vida própria. Usava o KDE como ambiente desktop default8 e por longo tempo tivera forte influência no desenvolvimento desse ambiente. Atualmente tem por trás a empresa Novell, a qual direcionou a distro para o mercado corporativo de soluções integradas de rede, embora exista a versão OpenSuse ainda voltada para os antigos usuários da distro, cujo logo pode ser visto na figura 1.3.
Figura 1.3 – Logo da distro Suse.
Debian Criada em 1993 por Ian Murdock, é a distro oficial do projeto GNU. Permanece não comercial e ainda é desenvolvida por uma comunidade independente com algumas centenas de colaboradores. Por curiosidade, a esposa de Ian se chamava Debra, e da fusão dos nomes Debra e Ian surgiu Debian. Seu logo pode ser visto na figura 1.4. Sem dúvida, Debian é a mais imitada, copiada e remasterizada das distros, e também é a maior de todas em termos de tamanho do projeto e número de softwares disponíveis; atualmente, entre as distros, só perde para a base instalada do Ubuntu, uma derivação feita com pacotes instáveis do Debian e destinada a usuários bem iniciantes.
8 Default – valor que é assumido quando nenhum outro é definido.
31
Capítulo 1 ■ Conceitos básicos
Figura 1.4 – Logo da distro Debian.
Red Hat Surgiu em 1994 na Carolina do Norte. Usa o Gnome como ambiente gráfico. Foi a primeira a tornar-se comercial e a primeira a usar o conceito de pacotes de software. Voltou-se com sucesso para o mercado corporativo de servidores, tendo como parceiras empresas como IBM e Dell. Foi minha distro favorita entre 1998 e 2005, antes de tornar-se comercial. Parei de usá-la devido ao preço ter se tornado proibitivo para mim. Tem duas derivações famosas: Fedora – que iniciou sua vida como a versão desktop do Red Hat – e CentOS – uma versão dedicada ao uso em servidores. O logo do Red Hat pode ser visto na figura 1.5.
Figura 1.5 – Logo da distro Red Hat.
Além das quatro grandes distros que sempre merecem destaque, existem pelo menos três que eu acredito que também merecem ser citadas: Conectiva Foi uma distro brasileira internacionalmente reconhecida, fortemente baseada no Red Hat, mas com o KDE como ambiente gráfico e com foco no mercado corporativo brasileiro e da América Latina; seu antigo logo pode ser visto na figura 1.6. A Conectiva tinha soluções para as áreas de telecom, comércio, mercado financeiro etc. A empresa Conectiva desenvolveu soluções originais
32
Linux para Linuxers
aplicadas inclusive ao Debian, como o pacote synaptic9, e teve um faturamento de 2,2 milhões de dólares no ano do seu falecimento.
Figura 1.6 – Logo da distro Conectiva.
O Conectiva 10 era um software formidável, estável e com ambiente de trabalho limpo, e cito-o com saudades de uma época em que parecia que a indústria de software brasileira deslancharia. A empresa Conectiva se uniu à (foi absorvida pela) francesa Mandrake em 24 de fevereiro de 2005 e tornou-se a Mandriva, selando o fim de duas empresas donas de distribuições com personalidade e criando outra empresa. A empresa Mandriva entrou em liquidação em maio de 2015, selando o fim da distro. Kurumin Foi uma distro brasileira Live-CD, criada por Carlos Eduardo Morimoto. Era baseada no Knoppix e tinha o foco na facilidade de uso e no usuário brasileiro de Windows. O logo do Kurumin era bastante inteligente – um pinguim com um cocar indígena – e pode ser visto na figura 1.7. Por ser Live-CD, podia ser experimentada sem medo, e havia até um script10 que sugeria e facilitava a instalação em conjunto com o Windows. Morimoto declarou certa vez que testava as inovações da distro em sua mãe – se ela conseguisse fazer, outras pessoas igualmente leigas também o conseguiriam.
Figura 1.7 – Logo da distro Kurumin. 9 Synaptic é um front-end gráfico para o gerenciamento de pacotes. 10 Script é um arquivo de texto comum contendo vários comandos que são executados em sequência, como se fossem um único comando.
33
Capítulo 1 ■ Conceitos básicos
Também sinto saudades do Kurumin pela sua portabilidade e pelo conjunto de scripts que, para mim, a tornavam a ferramenta de manutenção perfeita. Não havia crash de partição em HD, troca de senha perdida ou eliminação de arquivo “virótico” que não se resolvesse com um Kurumin. O Kurumin afundou na mesma época que começou a ser baseado no Ubuntu. Slax Distro Live-CD baseada no Slackware. Ao contrário do Conectiva e do Kurumin, ainda está ativo, é extremamente leve e pequeno, ocupa a metade do espaço de um CD comum de 5 1/4” e, ao ser inicializado, permite operação em modo texto ou no modo gráfico com o KDE. Tomou o lugar do Kurumin em meu kit de primeiros socorros, e seu logo pode ser visto na figura 1.8. O Slax tem uma derivação bastante interessante, o Wifislax, um live CD cheio de ferramentas (em espanhol) para explorar redes sem fio.
Figura 1.8 – Logo da distro Slax.
O link a seguir leva a uma página da Wikipedia que contém uma longa lista das distribuições Linux. http://pt.wikipedia.org/wiki/Anexo:Lista_de_distribuições_de_Linux
Pacote de software Pacote é o nome dado a um conjunto de softwares agrupados de forma organizada pelo distribuidor ou desenvolvedor como se realmente fosse um pacote físico, uma caixa contendo softwares, que serve para facilitar a distribuição e a instalação de softwares sobre o Linux. Quando se deseja instalar um novo software ou removê-lo, aciona-se um gerenciador de pacotes que realiza a instalação ou a remoção dos pacotes de softwares
34
Linux para Linuxers
necessários ao funcionamento. Quase todas as operações de instalação de pacotes são feitas a partir de downloads, diretamente do site dos mantenedores da distro. Os pacotes se assemelham a arquivos gerados por compactadores usando muito baixa compressão. De fato, os pacotes podem até ser abertos por descompactadores, mas realmente não é o caso. Dentro do pacote, os vários arquivos são concatenados11 de modo a formar um novo arquivo maior que contenha: • Um arquivo com a descrição do pacote – Um arquivo de texto plano12 com nome, versão, data do pacote etc. • Um arquivo de controle – Pode ser um simples arquivo de texto plano contendo informações gerais ou um grande arquivo concatenado contendo outros vários arquivos, cada qual com informações específicas. As informações são várias: dependências, conflitos, procedimentos pré e pós-instalação, e outras. • Dependências são os nomes e as referências a outros pacotes, dos quais o pacote atual depende para funcionar corretamente. • Conflitos são nomes e referências a outros pacotes, os quais geram algum tipo de conflito com o pacote atual, de modo que não podem ser instalados juntos. • Procedimentos são tarefas que o gerenciador de pacotes deve executar antes e após a instalação de um pacote, tipo verificar a integridade do pacote, verificar se o pacote já está instalado, verificar se a versão instalada é mais nova que a atual etc. • Um arquivo contendo dados – Arquivo compactado que contém os arquivos que devem ser instalados, o caminho completo de instalação, os locais e nomes para geração de itens de menu, os locais e os nomes dos arquivos de configuração que devem ser editados ou substituídos após a instalação etc. Nem todos os arquivos disponíveis para a instalação sob o Debian Linux são pacotes, por exemplo, um arquivo de instalação denominado setup.bin. Ao que tudo indica é um arquivo binário; logo, foi desenvolvido para ser executado diretamente sob o shell e não para ser manipulado pelo gerenciador de pacotes. Na instalação de um pacote são criados os diretórios (pastas) e os subdiretórios necessários, os dados do pacote são descompactados e os diversos arquivos são 11 Concatenados – agrupados dentro de outro arquivo, como se fossem parte de um único arquivo maior. 12 Texto plano é um arquivo de texto sem formatação, produzido por um editor de textos, e não por um processador de textos.
Capítulo 1 ■ Conceitos básicos
35
movidos para os destinos necessários, os arquivos de configuração são mudados ou editados para o funcionamento, são criados os ícones e os itens de menus, são preparadas as páginas de manual13 e são gravadas informações de versão e dependências nos registros do instalador. Para desinstalar ou atualizar um pacote, o instalador procede de maneira semelhante, só que, em vez de instalar, deletará ou atualizará por substituição. Exemplos de alguns tipos de pacote: • .deb – pacote com arquivos binários (prontos para o uso) do Debian14. • .rpm – pacote com arquivos binários do Red Hat e de seus derivados. • .tgz, .tar.gz e .tar.bz2 – arquivos de código-fonte; tratados como pacotes pelo Slackware. Pacotes .deb Eram todos iguais em sua estrutura e funcionalidade até o aparecimento do Ubuntu, mas agora já não são mais assim. Comportavam-se exatamente da mesma forma com o Debian e em todas as demais distros baseadas no Debian, porém atualmente é prudente utilizar pacotes feitos especificamente para o Debian, embora o nome seja semelhante e a instalação seja possível, mas não recomendada. Pacotes .rpm Inicialmente desenvolvidos pela Red Hat (empresa), são usáveis em todas as distros derivadas diretamente do Red Hat (Distro) como o CentOS, mas também existem pacotes .rpm do Mandriva e pacotes .rpm do Suse, e nenhum destes três tipos de pacote é compatível com os outros. Embora tenham a mesma extensão do nome de arquivo, os conteúdos dos pacotes .rpm para as diferentes distros não são iguais. Os pacotes tgz, tar.gz e tar.bz2 São na verdade extensões para nomes de arquivos compactados com ferramentas GNU cujos arquivos são usados para o fornecimento de código-fonte (código escrito em linguagem de programação) destinado a ser compilado por usuários avançados, especialmente com o Slackware. Mais adiante serão vistos os gerenciadores de pacotes, suas opções de utilização e muitos, muitos exemplos de instalação por meio de pacotes. 13 Páginas de manual – documentação de ajuda ao usuário. 14 Este mesmo tipo de pacote pode até ser usado em outras distros baseadas de Debian.
36
Linux para Linuxers
Características do GNU/Linux Alguns pontos fortes do GNU/Linux: • É software livre, licenciado sob a GPL 2. • Hostil a vírus – desde 1998, nunca tive problemas com vírus. • O kernel recebe apoio de empresas como IBM, HP e Intel. • Pode ser instalado em um mesmo HD com outros sistemas operacionais. • Coexiste no ambiente de rede com outros sistemas operacionais e conecta-se a eles. • É multitarefa e multiusuário. • Suporta nomes de arquivos e diretórios com 255 caracteres e sem truncá-los quando os arquivos são movidos por mídias como CD/DVD. • Utiliza permissões de acesso a arquivos e programas em disco e na RAM. • Proteção entre processos15 executados na RAM. • Suporte à virtualização, que permite várias funcionalidades, desde emulação de terminais virtuais, emulação de sistemas operacionais, interfaces virtuais de rede. • Carrega para a RAM apenas o necessário durante o processamento, liberando a RAM tão logo o processo seja finalizado. • Módulos de kernel16 podem ser carregados ou removidos da RAM a qualquer momento. • Suporte nativo ao TCP/IP. • Suporte às reconfigurações a quente, sem reinicializações a cada nova configuração. • Suporte nativo a múltiplos processadores e a múltiplas arquiteturas. • Suporte nativo a vários sistemas de arquivos, como Apple, Ext, IBM, JFS, Microsoft, Novell, ReiserRS, Sun, XFS. • Suporte nativo a dispositivos de comunicação Bluetooth, InfraRed, Firewire, USB e Wi-Fi. • Suporte nativo a roteamento, filtragem e manipulação de pacotes TCP/IP. 15 Processos são programas ou instâncias de programas que estão em execução. 16 Módulos de kernel são os drivers de dispositivos e outros componentes do kernel.
Capítulo 1 ■ Conceitos básicos
37
• É case sensitive, ou seja, difere letras maiúsculas de minúsculas. • É amigável, porém seletivo em suas amizades; qualquer um que se dedique consegue transformar um PC doméstico em um servidor de pequeno porte. Muitas das características do Linux foram herdadas de antigos programas da época do Unix. Ao utilizar o GNU/Linux devemos ter em mente que o software que temos agora é produto do trabalho de muitas gerações e que a possibilidade de uso sem a maquiagem da interface gráfica evidencia características de um software concebido para ser executado em grandes servidores de rede e operado a partir de terminais, quando muitas pessoas se conectavam ao mesmo tempo para uso de um mesmo processador.
Conhecendo o Debian GNU/Linux O Debian é uma distro muito flexível. Seria necessário muito tempo de estudo para conhecer todas as suas peculiaridades. Algumas pessoas acreditam que o Debian é pesado e que ele foi feito apenas para servidores de rede; outras acham que não é adequado para pessoas sem um treinamento específico, por não ser destinado a iniciantes. Apenas equívocos. Tenho Debian instalado em um pendrive de 4 GB para levá-lo no bolso, é claro que sem ambiente gráfico. Tenho-o instalado em meu laptop pessoal, um velho core 2 duo de 2008, e nos desktops do trabalho e de casa. Minha esposa, que não é profissional de TI e por isso mesmo não sabe e não necessita saber digitar uma só linha de comandos sob o shell, usa Debian no computador dela, para o trabalho com imagens e textos elaborados, além de todas as demais atividades de um usuário doméstico. O Debian “toca” os servidores de rede de todos os lugares em que trabalhei e também os servidores de rede onde estou trabalhando atualmente. O projeto Debian é tão enorme quanto a disponibilidade de pacotes; atualmente a versão estável é distribuída em três DVDs com pacotes oficiais e há ainda os pacotes backport17 e pacotes não oficiais. Houve um tempo em que eram sete os DVDs com pacotes binários e mais sete DVDs contendo código-fonte. Este tamanho se deve à grande oferta de pacotes; são quatro os ambientes gráficos disponíveis, cada qual com seu set próprio de aplicativos18, e estão disponíveis pelo menos cinco diferentes navegadores para Internet, cinco diferentes servidores SGDB – Sistemas gerenciadores de bases de dados etc. 17 Backports são pacotes feitos por desenvolvedores e mantenedores oficiais do Debian, mas que ainda não compõem a distro oficial. Estão disponíveis para aqueles que os desejarem. 18 Desconheço outra distro com tamanha oferta de programas.
38
Linux para Linuxers
Dentre as particularidades do Debian, a forma de desenvolvimento é a que mais se destaca, por seguir sempre um ciclo completo de fases, por não haver um prazo fixo para ser atualizado e por não haver datas definidas para a liberação de novas versões. A distro está pronta quando está pronta (estável), demore o quanto for necessário. O ciclo de vida é dividido em fases bem definidas e as versões da distro recebem nomes baseados nos personagens do filme Toy Story (Ian Murdock idealizou o Debian na época em que trabalhava na Pixar, quando o filme Toy Story estava em fase de produção). • Sid – É a versão instável (unstable) do Debian. Está em constante desenvolvimento, e nesta versão são adicionadas todas as coisas novas que os criadores pensam ser úteis para a distro. Funcionem bem ou não, elas estão ali para fins de experimentação. Não use uma versão Sid a menos que deseje experimentar novidades que ainda não estejam prontas. • Testing – É a versão de testes do Debian. Quando uma versão Sid está ficando usável, ela é promovida para a versão de testes (testing) e recebe um nome de um personagem do filme Toy Story. É na versão testing que o funcionamento de novos programas começa a ser avaliado e depurado no contexto do conjunto. • Frozen – É a versão pré-estável do Debian. Quando a equipe de desenvolvimento considera que a versão de testes está em um estágio de desenvolvimento maduro e que não permite mais a adição de novos softwares para serem testados, a versão é promovida para frozen (congelada), recebe um número, e os bugs começam a ser removidos. • Stable – É a versão de produção (estável) do Debian. Quando a fase de remoção de bugs é finalizada, a versão frozen é promovida a stable (estável), tornando-se pronta para uso. As únicas mudanças efetuadas em uma versão stable são as atualizações de segurança adicionadas quando uma falha é detectada. • OldStable – É a versão estável antiga do Debian. Quando uma versão mais nova é promovida a estável, a versão estável mais antiga é renomeada para oldstable (estável antiga) e gradualmente deixa de receber atualizações de segurança, embora mantenha-se o suporte para o que esteja funcionando por cerca de cinco anos. Um ciclo de desenvolvimento completo do Debian dura até cinco ou mais anos e somente é finalizado quando a versão frozen é bastante ajustada e está pronta para ser promovida a stable e ser usada em um ambiente de produção. Durante este período o suporte à versão antiga continua existindo.
Capítulo 1 ■ Conceitos básicos
39
É por suas características que Debian é uma distribuição ideal para um ambiente em que as últimas novidades em termos de hardware e software não são essenciais, tais como ambientes corporativos. É bastante provável que um dispositivo de hardware posto no mercado após o lançamento de uma versão estável do Debian simplesmente não funcione com pacotes oficiais por não ser reconhecido, porém tudo o que funcionava estará disponível de forma bastante estável por cerca de dez longos anos, exatamente a longevidade que se espera de um parque de máquinas em um ambiente que deva produzir resultados econômicos. Um computador servidor de boa capacidade requer um investimento considerável, e são necessários mais do que servidores para compor uma sala de equipamentos. São valores proibitivos para a esmagadora maioria das empresas brasileiras, por isso manter a longevidade do hardware existente e com o máximo de disponibilidade possível se traduz em retorno de investimento, o que é facilmente obtido com a longevidade do Debian. A possibilidade de executar Debian em todo o parque de máquinas, desde os servidores de alto desempenho instalados no datacenter até um modesto desktop, equipado com 1 GB RAM DDR e um processador Pentium IV de 1.8 GHz, usável para a produção de texto ou para gerenciamento de câmeras de vigilância, torna o Debian uma boa escolha. A longevidade da distro permite que um mesmo sistema operacional seja instalado tanto nos computadores mais novos como nos mais antigos, colaborando para estender a vida útil do parque de máquinas. A padronização do sistema operacional em todos os computadores possibilita a redução de custo em treinamentos de pessoal tanto da equipe de TI quanto dos usuários finais. Se um colaborador novato tiver dúvida, basta perguntar ao colega ao lado. Ainda me lembro do caos que era um lugar em que trabalhei em 2003, antes da migração da rede inteira para Debian, concluída entre 2004 e 2006, onde havia três versões de Windows e quatro diferentes distribuições Linux em (semi) produção. Distribuir um arquivo via rede, contendo um simples memorando circular, gerava stress. O cenário local era desolador... • Computadores antigos misturados aos mais novos em uma mesma sala. • Mais da metade dos softwares proprietários sem licenciamento.
40
Linux para Linuxers
• Várias versões do Office, as quais não eram totalmente compatíveis nem entre si. • As codificações de caracteres dos Linuxes não eram as mesmas nem entre si. • O OpenOffice aceitava arquivos do Office, mas o contrário não ocorria. • Novas versões de Windows requerem computadores sempre mais novos. • Novas versões das distros Linux que estavam instaladas eram lançadas a cada seis meses. • O suporte dos Linux instalados desaparecia um ano após o seu lançamento. • Problemas com o compartilhamento de impressoras e diretórios de arquivos. • Vírus se espalhando e vitimando os Windows a cada dia. • Senhas de administrador com usuários finais para permitir reinstalações. • Usuários finais se encarregando de reinstalar softwares, tamanha era a demanda. • A rede era extremamente lenta. • Pouco dinheiro para infraestrutura e melhorias. • Telefone do suporte tocando a cada quatro minutos em média. • Usuários finais reclamando, com razão, da dificuldade de trabalhar. • Chefe pressionando por uma solução.
Debian! Depois de padronizado o sistema operacional dos servidores e refeitos todos os serviços de rede, foram padronizados todos os desktops e todos os laptops. Quando os sistemas operacionais dos desktops e laptops foram reinstalados, os usuários que antes detinham senhas de administrador perderam sua autonomia e, enfim, a rede passou a ser de fato gerenciada. A compra de licenças deixou de ser necessária, pois a pirataria deixou de existir. As poucas verbas antes destinadas ao licenciamento foram convertidas em verbas para refazer a infraestrutura e o cabeamento. Inicialmente, aqueles que antes usavam outras versões de Linux estavam descrentes, mas eles foram lentamente se habituando aos trabalhos com o Debian. Passados vários anos desde a migração, às vezes, ainda visito meu antigo local de trabalho, fico feliz em ver que o Debian continua por lá.
Capítulo 1 ■ Conceitos básicos
41
O mesmo não pode ser dito dos usuários de Windows naqueles dias de 2005 e 2006. Principalmente aqueles que detinham senhas de administrador para fazer reinstalações de software, devido ao grande volume de trabalho em relação ao pequeno tamanho da equipe de suporte. Estes ex-usuários de Windows tiveram sua excessiva liberdade cortada na carne sem anestesia. Foram tempos difíceis até que a infraestrutura fosse reconstruída e as qualidades de uma rede uniformemente configurada e com um só sistema operacional se mostrassem a todos.