Arch Linux

Por:
Arch Linux

Arch Linux in review
Autor original: Chris Smart
Publicado originalmente no: distrowatch.com
Tradução: Roberto Bechtlufft

logo
Sempre que analiso uma distribuição eu levo em conta o que se espera dela, com base nas declarações dadas por seus criadores. Cada distribuição Linux é única e tem objetivos diferentes. Algumas tentam ser e fazer tudo, outras apelam a pequenos grupos. Algumas querem incluir drivers binários e codecs proprietários por padrão, outras dão uma baita volta para não compactuar com isso. Não faz sentido julgar todas pelo mesmo critério. Por isso eu costumo ser mais rigoroso com distribuições que afirmam ser capazes de fazer tudo logo de cara, porque essa é uma baita afirmação. Com os usuários não é diferente: uns querem uma distribuição que faça tudo para eles, que inclua todos os drivers binários e que seja capaz de reproduzir qualquer arquivo que pintar. Outros gostam de criar, ajustar e configurar o sistema por contra própria. Essa diversidade é ótima, porque ajuda a construir nossa comunidade e levá-la adiante.

Se eu pudesse definir a distribuição Linux perfeita para o meu uso cotidiano, seria algo com a praticidade e a estabilidade do Debian somadas ao poder e à flexibilidade do Gentoo, e ainda com a conveniência dos binários e dos pacotes e tecnologias mais recentes. Não há dúvida de que o Debian seja uma distribuição muito estável e que seu gerenciamento de pacotes binários provavelmente seja o melhor de todos, mas os pacotes da versão estável são muito defasados para um desktop novo e vibrante. Embora a maioria das distribuições permitam a você recompilar os pacotes à sua maneira, o Gentoo é uma distribuição completamente baseada nos fontes. Isso significa que você compila todos os programas, com a ajuda do gerenciador de pacotes Portage. Como tudo é compilado a partir dos fontes, o Gentoo torna-se extremamente flexível, visto que você pode personalizar cada pacote. Sim, isso inclui otimizações para arquiteturas, mas o mais importante é que inclui dependências. Se não quiser suporte a algum hardware (Bluetooth, por exemplo) ou a algumas bibliotecas (como GTK+ e Qt), é só dizer ao sistema para nunca incluí-las se elas forem opcionais. Isso resulta em um sistema totalmente personalizado e muito rápido, mas que demora bastante para ficar pronto por causa do tempo de compilação. Uma distribuição Linux extremamente minimalista, e que permitisse ao usuário ir montando o sistema sobre essa fundação, seria perfeita para mim. Eu não quero uma distribuição Linux que já venha “de fábrica” fazendo tudo para mim; quero ter controle sobre o sistema e configurar as coisas por conta própria. Ah, se essa distribuição existisse!

Eis que chega o Arch Linux. De acordo com o site do projeto, o independente Arch Linux (pronuncia-se “ártch”) é uma “distribuição Linux leve e flexível que busca manter a simplicidade… O desenvolvimento é focado em um equilíbrio entre simplicidade, elegância, correção de código e software atualíssimo. Com seu design leve e simples, é fácil estendê-lo e moldá-lo a qualquer tipo de sistema que você montar.” No momento, a distro oferece pacotes para arquiteturas i686 e x86_64 – sim, i686, ou seja: o Arch Linux não roda nos velhos hardwares i386, i486 e i586. Embora a maioria dos sistemas em uso hoje em dia seja compatível, seu processador tem que ser Intel Pentium Pro, AMD Athlon, VIA C3 ou melhor. Os repositórios oficiais (“core” e “extra”) são menores que os de muitas distros grandes, mas a comunidade é muito ativa e cria pacotes adicionais (que ficam no repositório “community”). Também há um repositório “testing” para versões futuras. O modelo de pacotes do Arch Linux é “rolling-release”, ou seja, não há versões separadas, mas sim “instantâneos” das árvores de pacotes. Isso quer dizer que tanto as atualizações de segurança e de recursos dos pacotes quanto as versões novas deles são incluídas na mesma árvore. Uma instalação do Arch Linux pode ser atualizada eternamente na mesma “versão”, sem a necessidade de “upgrade” como na maioria das distribuições.

O Arch Linux é para você? Essa distribuição em particular é voltada para “usuários competentes do GNU/Linux”, ou pelo menos aos que queiram aprender. Se você está pensando em experimentar o Arch Linux, prepare-se para ler bastante e se aventurar pelo fórum e pelo wiki. Você vai ter que se virar, já que o Arch Linux não configura as coisas para você automaticamente – por isso, aprenda a ser paciente, pode ser que nem tudo funcione do jeito que você espera! Há um guia de instalação e um guia de introdução (ambos em inglês) que vão ajudá-lo a dar os primeiros passos. Em minha curta experiência com o Arch Linux (uns dois meses) achei a comunidade muito amistosa e solícita.

Instalação

A instalação padrão instala um sistema básico, sem floreios. Isso significa que o boot leva direto ao login pelo terminal. Nada de X Windows e interfaces. A partir daí, você pode instalar os programas que quiser. O Arch Linux oferece imagens de instalação do sistema básico para duas mídias diferentes: uma para pendrives e a tradicional ISO para CDs. Os métodos de instalação são apenas dois: a instalação básica (que inclui todos os pacotes básicos necessários para um sistema mínimo) ou via FTP. Como o Arch Linux é “rolling release” o método FTP faz sentido, baixando as versões mais recentes dos pacotes durante a instalação. Tirando isso, o sistema obtido no final é o mesmo nos dois métodos. Eu escolhi a instalação via FTP.

Sem dúvida, o instalador do Arch Linux é bem básico. O ambiente de instalação suporta LVM e dispositivos RAID por software, mas o instalador não consegue configurá-los, e isso deve ser feito em outro console primeiro. Sendo assim, outras opções, como ajustes nos sistemas de arquivos (configuração de rótulos, modo do journal e outros), devem ser definidas manualmente. O instalador em si é um script do bash baseado em ncurses que automatiza as seis funções principais para a realização de uma instalação completa. O processo consiste em configurar a rede (se necessário), configurar o HD, configurar um mirror para baixar os pacotes e atualizar o banco de dados de pacotes (se estiver usando o método de instalação via FTP), selecionar e instalar os pacotes básicos, configurar o sistema e finalmente instalar o gerenciador de boot (GRUB ou LILO).

img-b40e5cc6
Tela de boas-vindas do instalador do Arch Linux

O script oferece a opção de configurar manualmente as partições ou de fazê-lo automaticamente. Embora muitas distribuições criem apenas uma partição para todo o sistema raiz, o esquema padrão do Arch separa as partições root, /boot e /home. Isso é ótimo! O instalador também recomenda permitir que um script detecte e configure automaticamente o hardware, mas você mesmo pode especificá-lo se quiser. Ele também vai perguntar sobre o suporte de que você precisa no initramfs (o disco de RAM inicial, o miniambiente carregado pelo gerenciador de boot e que prepara o sistema), como boot pelo LVM e dispositivos RAID por software, ou mesmo compartilhamentos NFS e dispositivos USB. Embora muitas distribuições Linux incluam tudo no initramfs para atender a todos os usuários, no Arch Linux você pode personalizá-lo facilmente para se adequar ao sistema. Isso mostra o poder e a flexibilidade do Arch.

A seguir, edite manualmente os arquivos de configuração do sistema. Embora tenham sido preenchidos automaticamente, o instalador permite mexer no sistema e definir outras informações importantes, como o nome do host. Uma das coisas que eu mais gosto no Arch Linux é que a configuração principal do sistema é mantida em um único arquivo, o /etc/rc.conf. É nele que você diz ao sistema que módulos carregar, quais serviços iniciar, o locale e o layout do teclado, o fuso horário, a hora e o nome do host, faz a configuração da rede e mais. O arquivo é bem comentado e fácil de entender. Isso é o que eu chamo de simplicidade! Por padrão, o Arch Linux inicia automaticamente os serviços básicos para você, como o logger, a rede e o cron. O resto cabe a você. Quaisquer outros serviços que forem instalados devem ser incluídos na lista de ‘DAEMONS’ do rc.conf para que sejam iniciados automaticamente no boot. Também é possível mandar os serviços iniciarem em segundo plano, colocando uma arroba no nome (por exemplo, @network) ou desativar um serviço com um ponto de exclamação (!network). A ordem de execução dos serviços está relacionada à posição deles na lista (excluindo as dependências). Eu gosto de fazer as coisas dessa maneira. Quanto ao gerenciador de boot, o instalador inclui automaticamente as entradas para iniciar o Arch Linux. Se tiver outras distribuições instaladas, você vai ter que adicioná-las manualmente. É isso! Hora de iniciar o Arch Linux.

img-dbb1502d
Configuração inicial no instalador do Arch Linux

Uso do sistema

O Arch Linux usa um sistema de boot nos moldes do encontrado no BSD, com três níveis: init, multi (ou single, caso inicie no modo single) e local. Ele não usa o método de links simbólicos e números dos SysV para gerenciar serviços (como na grande maioria das distribuições Linux); o Arch carrega as regras especificadas no aquivo /etc/rc.d/functions. O sistema init é bem fácil de entender e gerenciar. Com um primeiro boot bem-sucedido, você chegará ao login do terminal. Pelo VirtualBox, o sistema levou nove segundos para iniciar e usou pouco mais de 10 MB de memória. A maioria dos usuários de desktop vão querer o X Window e uma interface gráfica, além da capacidade de se conectar remotamente ao computador, mas há outras configurações a serem feitas antes. Eu instalei um servidor OpenSSH, mas por padrão o Arch Linux não permite conexões ao computador a partir de outras máquinas na rede. Tive que editar o arquivo /etc/hosts.allow e adicionar uma regra para o SSH. Um sshd: ALL deu conta do recado. Isso liberou as conexões externas ao meu serviço SSH.

Como eu estava logando como root, decidi criar um usuário para mim. Fiz isso com o comando adduser. Depois eu instalei o pacote sudo para poder rodar comandos como root com esse usuário. Foi bem simples, só tive que editar o arquivo /etc/sudoers para permitir que todos os usuários do grupo wheel executassem todos os comandos. Depois eu incluí meu usuário no grupo wheel com um gpasswd -a chris wheel e fiz logout da conta de root. Agora eu posso logar como usuário comum e realizar comandos de root pelo sudo. Por padrão, a minha conta só pertencia ao grupo “users”, e conforme fui adicionando funcionalidades tive que incluir o meu usuário nos respectivos grupos. Por exemplo, para reproduzir sons o usuário tem que ser membro do grupo “audio”, e do grupo “video” para usar 3D.

Como o Arch Linux não é um fork de outra distribuição (embora o fundador Judd Vinet tenha se inspirado no CRUX), ele tem seu próprio sistema de gerenciamento de pacotes desenvolvido de forma independente, o Pacman. Ele é um gerenciador de pacotes leve, simples e poderoso. O Pacman realiza os comandos corriqueiros de instalação, remoção e gerenciamento de pacotes, mas também é capaz de usar pacotes oficiais ou compilados com personalizações. Isso é parte do ABS (Arch Build System, ou sistema de compilação do Arch, que segue os moldes do ports). Trata-se de um recurso poderoso que permite criar um sistema ainda mais personalizado para suas necessidades. Você pode não apenas recompilar facilmente qualquer pacote oficial como também os pacotes da comunidade, disponíveis no AUR (Arch User-community Repository, ou repositório da comunidade de usuários do Arch). Com o método ABS fica muito fácil compilar seus próprios pacotes (criando um script de compilação simples) e gerenciá-los da mesma forma que faz com os outros pacotes do sistema. É o casamento perfeito entre binários e fontes. Embora seja possível compilar manualmente os pacotes a partir dos fontes, algumas ferramentas (semelhantes ao Portage do Gentoo) facilitam as coisas. Um exemplo é o Yaourt (Yet AnOther User Repository Tool, mais uma ferramenta para repositórios de usuários). Para ver como isso funciona no Arch Linux eu tentei compilar esse pacote e testá-lo. Primeiro eu instalei as ferramentas de compilação necessárias e o ‘lftp’ (que eu escolhi para baixar os arquivos fontes).

chris@josiah $ sudo pacman -S base-devel lftp

Depois tiver que obter os vários arquivos fontes necessários para compilar o Yaourt. Dentre eles, o script PKGBUILD (que automatiza o processo de compilação) e outros arquivos como um script de pós-instalação.

chris@josiah $ lftp -c http://aur.archlinux.org/packages/yaourt/yaourt
chris@josiah $ cd yaourt

Agora, a compilação do pacote. A opção -s diz à ferramenta de compilação para baixar automaticamente as dependências necessárias usando o Pacman.

chris@josiah $ makepkg -s

==> Making package: yaourt 0.9.2.3-1 x86_64 (Wed Jan 7 17:45:36 EST 2009)
==> Checking Runtime Dependencies…
==> Checking Buildtime Dependencies…
==> Retrieving Sources…
-> Downloading yaourt-0.9.2.3.src.tar.gz…
–2009-01-07 17:45:37– http://archiwain.free.fr/os/i686/yaourt/yaourt-0.9.2.3.src.tar.gz
Length: 65906 (64K) [application/x-gzip] Saving to: `yaourt-0.9.2.3.src.tar.gz.part’

100%[==============================>] 65,906 36.3K/s in 1.8s

2009-01-07 17:45:39 (36.3 KB/s) – `yaourt-0.9.2.3.src.tar.gz.part’ saved [65906/65906]

==> Validating source files with md5sums…
yaourt-0.9.2.3.src.tar.gz … Passed
==> Extracting Sources…
-> bsdtar -x -f yaourt-0.9.2.3.src.tar.gz
==> Entering fakeroot environment…
==> Starting build()…
[snip]==> Tidying install…
-> Compressing man pages…
-> Stripping debugging symbols from binaries and libraries…
==> Creating package…
-> Generating .PKGINFO file…
-> Adding install script…
-> Compressing package…
==> Leaving fakeroot environment.
==> Finished making: yaourt 0.9.2.3-1 x86_64 (Wed Jan 7 17:45:40 EST 2009)

Depois de compilado o pacote, só tive que instalá-lo com o Pacman.

chris@josiah $ sudo pacman -U yaourt-0.9.2.3-1-x86_64.pkg.tar.gz

Agora eu posso usar o comando “yaourt” para fazer a mesma coisa que o Pacman faz, só que ao instalar um pacote ele automatiza a compilação e o processo de instalação dos pacotes fontes. Sensacional.

Como estou acostumado a outros gerenciadores de pacotes como emerge, zypper e apt-get, levei um tempo para me acostumar à sintaxe do Pacman. Não porque ela seja difícil, ela só é diferente! Depois de consultar a tabela de gerenciamento de pacotes do DistroWatch (N. T: o link leva à tradução para o português aqui no Guia do Hardware), eu estava pronto para mergulhar no Pacman. Foi fácil atualizar os repositórios, bastou um pacman -Sy para puxar os repositórios “extra” e “community”, conforme especificado no meu arquivo /etc/pacman.conf. Depois eu baixei meu editor de textos favorito, o Vim. A busca pelo Vim foi bem rápida, e levou apenas 0,44 segundos. A instalação do vim indicou 15 dependências, ocupando um total de 163 MB após a instalação (incluindo Python, Ruby, GPM e outras bibliotecas). É nesse momento que você pode tirar vantagem do ABS para recompilar o pacote. Se não quiser o suporte do Vim ao X, ao Python ou ao mouse no console pelo GPM, recompile-o sem essas opções.

Independente disso, a instalação do Vim e de suas 15 dependências pelo repositório levou apenas 4,9 segundos com o comando pacman -S –noconfirm vim. A remoção do Vim e de todas as suas dependências com o comando pacman -Rs –noconfirm vim levou 0,51 segundos. Como o Arch Linux é minimalista, ele não instala todas as dependências disponíveis para cada pacote, só as que são necessárias para o pacote funcionar (ou aquelas para as quais o desenvolvedor decidiu incluir o suporte). Sendo assim, outra coisa legal que o Pacman faz é sugerir pacotes extras para ativar mais recursos. Ao instalar o Python, por exemplo, o Pacman escreve na tela “Optional dependencies for python, tk: for IDLE, pynche and modulator”. Ou seja, se quiser suporte ao IDLE, ao pynche ou ao modulator, vai ter que instalar o Tk. Mais uma vez, isso mostra o poder e a flexibilidade do Arch Linux. Embora isso certamente seja muito prático, acho que as informações deveriam ser fornecidas resumidas no final, e não após cada dependência. É fácil deixar passar as mensagens ao instalar dezenas de pacotes.

Ambientes gráficos

Depois de instalar o Arch Linux básico no meu confiável laptop Dell Latitude X1 (Intel Pentium M 1.10 GHz, 1.2 GB RAM, vídeo Intel 915, HD de 60 GB), agora eu tinha que botar o X Window e o som para funcionarem, além de alguma interface gráfica. O novo X.Org tem recursos de hotplugging legais, e para usá-los eu preciso do HAL e do D-Bus. Eu os instalei, adicionei “hal” à lista de DAEMONS no rc.conf e iniciei o serviço. Depois, seguindo instruções do wiki, executei este comando:
chris@josiah $ pacman -S libgl xorg xf86-input-evdev xf86-input-synaptics xf86-video-intel mesa

Isso instalou um ambiente X Window básico com suporte específico à minha placa de vídeo e ao touchpad. Para testar, foi só digitar o comando startx. O X iniciou e fui recebido pelo habitual TWM (Tab Window Manager) e por alguns xterms. Rodei o glxgears e confirmei que o 3D estava funcionando direito. Até aqui deu tudo certo! Infelizmente o touchpad não funcionou no modo hotplug, e para resolver eu tive que criar um arquivo xorg.conf (com um sudo X -configure) e editá-lo da maneira apropriada. Esse é um motivo em potencial para a desistência dos novatos – quando algo não funciona como se esperava, é preciso configurar por conta própria. Mas o Arch Linux é voltado mesmo para o público disposto a mexer no sistema e aprender.

Depois eu precisei de um gerenciador gráfico de janelas; geralmente eu uso o wmii. A instalação foi fácil, como eu esperava. Por padrão, o Arch Linux não instala um gerenciador de login como o GDM ou o KDM (obviamente, isso depende do usuário!), então eu optei por executar o wmii pelo terminal usando o xinit. Após a instalação, eu só tive que editar o meu arquivo ~/.xinitrc e incluir exec wmii nele. Agora, ao rodar o xinit, o X inicia junto com meu desktop. Mas eu reparei em um problema ao usar o wmii. A atualização da tela era muito lenta, e algumas operações simples faziam o X.Org disparar a 90% de uso do processador. As coisas melhoraram um pouco quando troquei o driver ‘intel’ pelo drive ‘vesa’ do X. Acho que isso deve ter algo a ver com o novo driver da Intel que usa o GEM (Graphics Execution Manager) ao invés do TTM (Translation Table Maps), e que só está disponível na versão 2.6.28 do kernel Linux. Quando fiz a instalação, o kernel do Arch Linux era o 2.6.27, então instalei o 2.6.28 do repositório “testing”. Infelizmente o resultado foi o mesmo. Testei os mesmos pacotes em um sistema com placa de vídeo NVIDIA e no VirtualBox, e nenhum dos dois apresentou o problema. Postei o problema no fórum e segui a sugestão de compilar as versões mais recentes do driver da Intel e do servidor X.Org. Deu certo. Na verdade, ele ficou bem mais rápido e só usou 3% do processador. Eu acho que um driver com um problema desses não deveria chegar à árvore de pacotes estáveis até que os outros pacotes necessários também fossem atualizados.

img-64fe8075
Arch Linux com o desktop do wmii

O Arch Linux oferece vários outros gerenciadores de janelas leves, mas para a maioria dos usuários, que preferem um gerenciador de desktop, também há muito o que escolher, incluindo o GNOME 2.24.2, o KDE 4.1.3 e o Xfce 4.4.3 (que eram as versões mais recentes quando este artigo foi escrito). Para instalar esses ambientes, basta instalar os grupos (metapacotes) “gnome”, “kde” ou “xfce4”. A instalação do KDE parece bem completa, mas o grupo do GNOME é mais minimalista, oferecendo um ambiente GNOME razoável, porém longe de ser completo. Para estender o desktop GNOME, o grupo ‘gnome-extra’ pode ser instalado, acrescentando 109 pacotes. Obviamente, há outras maneiras de se obter um sistema desses. Você pode instalar um ambiente desktop mais minimalista, instalando pacotes específicos do KDE e do GNOME. Naturalmente, a base pode ser expandida adicionando-se outros pacotes. Ao contrário da maioria das distribuições, o Arch Linux não põe a marca da distro nos pacotes, e pelo visto não faz alterações neles, deixando-os em seus estados originais. Com isso, os desktops padrões são bem “normais” (como você pode ver nas fotos), mas a arte do Arch Linux pode ser instalada sem dificuldades pelos repositórios.

img-32917049
Desktop GNOME 2.24.2 no Arch Linux

Devido à sua natureza minimalista, há muitos outros aspectos do sistema que você terá que instalar e configurar manualmente. Isso inclui coisas como escalonamento do processador, suspensão, scanners, impressoras, câmeras e muito mais. Naturalmente, não vou falar dessas coisas por aqui, mas fique tranqüilo, pois há suporte para elas, você só vai ter que instalar os pacotes necessários e, de vez em quando, modificar a configuração. Aqui o suporte do wiki e da comunidade mostra-se valiosíssimo.

Por fim, o Arch Linux oferece aos usuários a capacidade de executar formatos de mídia proprietários e também inclui suporte a Flash. Para isso, instale os pacotes “flashplugin”, “codecs” e “libdvdcss”.

Conclusão

A filosofia de simplicidade (o famoso “keep it simple”) do Arch Linux reluz em todos os aspectos da distribuição. O Arch permite ao usuário controlar o sistema, e não faz nada sem ser solicitado. Ele tem a velocidade e a conveniência dos binários somadas ao poder dos fontes, e é muito flexível no que tange às dependências opcionais. Por ser uma distro “rolling release”, seus pacotes estão razoavelmente atualizados. Tirando o problema com o driver de vídeo da Intel, não tive nenhum problema com a qualidade dos pacotes. Ainda assim, eu me pergunto se uma distribuição de menor porte como essa pode oferecer estabilidade. O tempo dirá. Também temos que ver como o Pacman vai se comportar após a instalação e a remoção de milhares de pacotes. O Arch Linux certamente não é para qualquer um, mas com certeza é muito divertido e você vai aprender muito com ele. Se você for o tipo de pessoa que gosta de mexer no sistema, não perca tempo e experimente. Depois que o sistema estiver configurado e rodando, é fácil mantê-lo. Se estiver tentado a experimentá-lo, há uma página wiki que compara o Arch às outas distros. Quando à minha distribuição dos sonhos, o Arch Linux chega bem perto.

img-1d54062b
Desktop KDE 4.1.3 no Arch Linux

Créditos a Chris Smart – distrowatch.com
Tradução por Roberto Bechtlufft <roberto at bechtranslations.com>

Sobre o Autor

Redes Sociais:

Deixe seu comentário

X