tutorial do centos

19
Tutorial do CentOS Introdução O CentOS é uma versão gratuita do Red Hat Enterprise, gerado a partir do código fonte disponibilizado pela Red Hat e mantido de forma bastante competente por um grupo de desenvolvedores, que combina representantes de diversas empresas que utilizam o sistema (sobretudo empresas de hospedagem) e voluntários. Ele é, basicamente, uma versão gratuita do RHEL, que possui um excelente histórico de segurança e conta com uma boa estrutura de suporte comunitário e atualizações pontuais de segurança, qualidades que o tornam uma das distribuições Linux mais populares em servidores, sobretudo em servidores web. Se você está interessado na estabilidade do Red Hat Enterprise, ou precisa rodar softwares como o Oracle, que são suportados apenas nele, mas não tem como pagar caro pelo sistema, o CentOS é a sua melhor opção. Red Hat x RHEL x CentOS x Fedora: Para quem está chegando agora, o Red Hat Linux foi uma das primeiras distribuições Linux a conquistar um grande público. A primeira versão foi lançado em 1994 e o sistema conseguiu ganhar espaço tanto entre os desktops (devido à relativa facilidade de uso) quanto entre os servidores, devido à boa estabilidade do sistema. O Red Hat Linux foi descontinuado em 2004, dando lugar ao Fedora, que é desenvolvido de forma colaborativa e às diferentes versões do Red Hat Enterprise (também chamado de RHEL), a versão comercial do sistema, destinada a grandes empresas. O Red Hat Enterprise possui um ciclo de desenvolvimento mais lento (que prioriza a estabilidade) e tem suas versões suportadas por um período de nada menos do que 7 anos após o lançamento. Para quem está acostumado com o rápido ritmo de desenvolvimento das distribuições Linux domésticas, um sistema que é suportado por 7 anos pode soar estranho, mas dentro do ramo corporativo este é um diferencial importante, já que atualizar os desktops e os servidores é sempre um processo arriscado e caro (devido à mão de obra necessária, necessidade de treinar os funcionários, etc.), de forma que ciclos de desenvolvimento mais lentos e previsíveis são preferidos. Veja o caso do Windows, por exemplo, muitas empresas ainda usam servidores com o 2000 Server, ou mesmo com o NT 4. O RHEL é fornecido apenas em conjunto com um plano de suporte e não pode ser redistribuído em seu formato binário. Entretanto, todo o código fonte está disponível, de forma que alguém que pacientemente compile cada um dos pacotes disponibilizados pela Red Hat, acaba obtendo uma cópia completa do sistema, que pode ser usada para todos os fins.

Upload: joao-carlos-zen

Post on 30-Sep-2015

38 views

Category:

Documents


1 download

DESCRIPTION

Linux

TRANSCRIPT

Tutorial do CentOSIntroduoO CentOS uma verso gratuita do Red Hat Enterprise, gerado a partir do cdigo fonte disponibilizado pela Red Hat e mantido de forma bastante competente por um grupo de desenvolvedores, que combina representantes de diversas empresas que utilizam o sistema (sobretudo empresas de hospedagem) e voluntrios.Ele , basicamente, uma verso gratuita do RHEL, que possui um excelente histrico de segurana e conta com uma boa estrutura de suporte comunitrio e atualizaes pontuais de segurana, qualidades que o tornam uma das distribuies Linux mais populares em servidores, sobretudo em servidores web.Se voc est interessado na estabilidade do Red Hat Enterprise, ou precisa rodar softwares como o Oracle, que so suportados apenas nele, mas no tem como pagar caro pelo sistema, o CentOS a sua melhor opo.Red Hat x RHEL x CentOS x Fedora: Para quem est chegando agora, o Red Hat Linux foi uma das primeiras distribuies Linux a conquistar um grande pblico. A primeira verso foi lanado em 1994 e o sistema conseguiu ganhar espao tanto entre os desktops (devido relativa facilidade de uso) quanto entre os servidores, devido boa estabilidade do sistema. O Red Hat Linux foi descontinuado em 2004, dando lugar ao Fedora, que desenvolvido de forma colaborativa e s diferentes verses do Red Hat Enterprise (tambm chamado de RHEL), a verso comercial do sistema, destinada a grandes empresas.O Red Hat Enterprise possui um ciclo de desenvolvimento mais lento (que prioriza a estabilidade) e tem suas verses suportadas por um perodo de nada menos do que 7 anos aps o lanamento. Para quem est acostumado com o rpido ritmo de desenvolvimento das distribuies Linux domsticas, um sistema que suportado por 7 anos pode soar estranho, mas dentro do ramo corporativo este um diferencial importante, j que atualizar os desktops e os servidores sempre um processo arriscado e caro (devido mo de obra necessria, necessidade de treinar os funcionrios, etc.), de forma que ciclos de desenvolvimento mais lentos e previsveis so preferidos. Veja o caso do Windows, por exemplo, muitas empresas ainda usam servidores com o 2000 Server, ou mesmo com o NT 4.O RHEL fornecido apenas em conjunto com um plano de suporte e no pode ser redistribudo em seu formato binrio. Entretanto, todo o cdigo fonte est disponvel, de forma que algum que pacientemente compile cada um dos pacotes disponibilizados pela Red Hat, acaba obtendo uma cpia completa do sistema, que pode ser usada para todos os fins.O CentOS nada mais do que um Red Hat Enterprise compilado a partir do cdigo fonte disponibilizado pela Red Hat, com os logotipos as marcas registradas removidas. Isso garante que os dois sistemas sejam binariamente compatveis (ou seja, um software compilado para rodar no Red Hat Enterprise roda tambm na verso correspondente do CentOS sem precisar de modificaes) e todos os passos de instalao e configurao dos dois sistemas so idnticos, o que faz com que toda a documentao do Red Hat Enterprise se aplique tambm ao CentOS.Ao aprender a trabalhar com o CentOS, voc automaticamente aprende a trabalhar com o Red Hat Enterprise e vice-versa. A grosso modo, podemos dizer que o Fedora uma verso comunitria de desenvolvimento do Red Hat Enterprise, enquanto o CentOS uma cpia praticamente exata do sistema.Com relao s verses, o Red Hat Enterprise 4 foi baseado no Fedora Core 3, enquanto o Red Hat Enterprise 5 foi baseado no Fedora Core 6 e o Red Hat Enterprise 6 ser baseado no Fedora 9. As verses do CentOS seguem as verses do Red Hat Enterprise, de forma que o CentOS 5 corresponde ao Red Hat Enterprise 5 e assim por diante:Fedora Core 3 > Red Hat Enterprise Linux 4 > CentOS 4Fedora Core 6 > Red Hat Enterprise Linux 5 > CentOS 5Fedora 9 > Red Hat Enterprise Linux 6 > CentOS 6Novas verses do Red Hat Enterprise so disponibilizadas a cada 18 ou 24 meses, mas recebem um grande volume de atualizaes e correes de segurana durante este perodo. Isso leva ao lanamento de sub-verses com as atualizaes pr-instaladas, como o Red Hat Enterprise 4.6 e o Red Hat Enterprise 5.1, que so sempre seguidas pelas verses correspondentes do CentOS.Assim como o sistema principal, as atualizaes e correes de segurana so disponibilizados pela equipe do CentOS, novamente atravs de pacotes compilados a partir dos cdigos fontes disponibilizados pela Red Hat. As atualizaes do CentOS so tipicamente disponibilizadas entre 24 e 72 horas depois das do Red Hat Enterprise (o que impressionante considerando que se trata de um projeto voluntrio), mas muitas atualizaes crticas so disponibilizadas muito mais rpido, em poucas horas. Assim como o Red Hat Enterprise, todos os releases do sistema so suportados recebem atualizaes de segurana por um perodo de 7 anos. Com isso, o CentOS 4 ser suportado at 2012 e o CentOS 5 ser suportado at pelo menos 2013.A grande diferena entre o CentOS e o Red Hat Enterprise a questo do suporte, j que, embora caro, o suporte oferecido pela Red Hat bastante personalizado e os profissionais passam por um exame de certificao exigente (o RHCE) que mistura testes tericos e prticos. Em servidores de misso crtica, usar o Red Hat Enterprise e pagar pelo suporte geralmente uma boa opo, j que alm de ajuda na implementao, voc tem uma equipe pronta para agir em caso de problemas inesperados. Para os demais casos, voc pode perfeitamente utilizar o CentOS contando com o suporte comunitrio oferecido atravs dos fruns do projeto.O CentOS tambm bastante similar ao Fedora, mas nesse caso as diferenas so mais evidentes, j que verses recentes do Fedora so baseadas em pacotes mais atuais, o que invariavelmente leva a mudanas no sistema. De qualquer forma, os passos bsicos de instalao e a configurao geral dos dois sistemas so praticamente iguais, de forma que as dicas desse tpico se aplicam tambm ao Fedora.Comparar o CentOS e o Fedora para uso em servidores desperta argumentos similares aos de uma comparao entre o Ubuntu e o Debian. O CentOS segue as verses do Red Hat Enterprise, que possui um ciclo de desenvolvimento muito mais longo, onde a principal preocupao a estabilidade do sistema. O Fedora, por sua vez, desenvolvido em torno de ciclos muito mais curtos, com uma nova verso sendo disponibilizada a cada 6 meses.Por um lado isso bom, j que voc tem acesso a verses mais atuais dos pacotes, mas por outro lado ruim, pois o lanamento mais freqente de novas verses aumenta sua carga de trabalho como administrador, j que o sistema precisa ser atualizado mais freqentemente.Alm de serem mais espaadas, as verses do CentOS recebem atualizaes de segurana por um perodo muito mais longo, que torna a vida til das instalaes muito maior. Um servidor rodando a verso mais atual do CentOS poderia ser mantido em servio por at 7 anos, recebendo apenas as atualizaes de segurana, o que no seria possvel no Fedora, onde o suporte s verses antigas encerrado muito mais rapidamente.Em resumo, se voc no se importa de utilizar softwares ligeiramente antigos e quer um servidor que oferea um baixo custo de manuteno e possa ser usado durante um longo perodo sem riscos, o CentOS mais recomendvel. Se, por outro lado, voc precisa de verses recentes do Apache, Samba ou outros servios, ou se tem alguma preferncia pessoal em relao ao Fedora, tambm pode utiliz-lo sem medo.Embora o Fedora seja em teoria menos estvel que o CentOS, ambas as distribuies podem ser consideradas bastante estveis. Poderamos dizer que o CentOS "99% estvel" enquanto o Fedora "98% estvel". Ou seja, existe diferena, mas ela relativamente pequena.ndicePrximo: Instalando

Introduo Instalando Usando o yum Repositrios adicionais Plugins Instalando Voltando instalao, voc pode baixar as imagens do sistema no http://www.centos.org/. Na verso 5.1, o sistema distribudo tem nada menos do que 6 CDs de instalao (7 CDs na verso de 64 bits), mas, assim como no caso do Debian, possvel fazer uma instalao minimalista usando apenas o primeiro CD. Se baixar 4 GB no for um problema, voc pode ganhar tempo baixando a verso em DVD. Est disponvel tambm o NetInstall, uma imagem de boot com apenas 7 MB para instalao via rede, onde o instalador baixa os pacotes necessrios via HTTP, FTP ou NFS durante a instalao. perfeitamente possvel usar o NetInstall para fazer uma instalao via web, baixando apenas os pacotes que sero realmente usados (em vez de baixar o DVD inteiro), mas a menos que voc tenha uma conexo muito rpida, ou esteja fazendo uma instalao minimalista, isso no muito recomendvel. O mais comum que o NetInstall seja usado para instalar vrios servidores (imagine o caso de uma empresa de hospedagem, por exemplo) a partir de um mirror local. Para configurar um, voc precisa apenas copiar todos os arquivos do DVD de instalao para uma pasta e compartilhar o contedo usando um servidor web ou FTP, informando o endereo IP do servidor e o diretrio onde esto os arquivos ao instalar o sistema nas demais mquinas. possvel ainda automatizar a instalao atravs do kickstart, um recurso disponvel tambm no Fedora, onde voc gera um arquivo de configurao, contendo instrues para o instalador e indica a localizao do arquivo usando um parmetro de boot, como em: linux ks=http://192.168.1.254/ks.cfg Este exemplo faz com que o instalador configure a rede via DHCP e tente acessar o arquivo atravs de um servidor web interno. possvel carregar o arquivo via NFS, FTP, usando um disquete ou mesmo gerar um CD de instalao personalizado, incluindo o arquivo. Ele uma boa opo para ambientes onde voc precisa realizar um grande nmero de instalaes em pouco tempo. Voc pode ver mais detalhes sobre ele aqui:http://www.redhat.com/docs/manuals/enterprise/RHEL-5-manual/pt-BR/Installation_Guide/ch-redhat-config-kickstart.html O CentOS utiliza o Anaconda, que o mesmo instalador grfico usado no Fedora. Para usar o instalador grfico necessrio ter 512 MB de memria, mas possvel instalar o sistema em mquinas antigas usando o instalador em modo texto, que pode ser acessado usando a opo "linux text" na tela de boot: Assim como em outras distribuies, voc pode incluir opes para o Kernel na linha de boot, de forma a solucionar problemas de compatibilidade, como a "acpi-off", "noapic", "all-generic-ide", "irqpoll" e "outras", como em: linux noapic irqpoll O instalador comea se oferecendo para realizar um teste da mdia de instalao e em seguida pergunta sobre a linguagem do sistema (o portugus do Brasil est disponvel desde as primeiras verses do sistema) e o layout do teclado. Durante a instalao, voc pode ver o log de mensagens geradas pelo instalador pressionando Ctrl+Alt+F3 e ter acesso a um terminal que pode ser usado para solucionar problemas pressionando Ctrl+Alt+F2. Em seguida temos o particionamento dos HDs, que comea com a clssica pergunta sobre utilizar o layout padro, ou criar um layout personalizado: O CentOS utiliza o LVM por padro, criando um nico volume lgico, englobando todo o espao disponvel do HD e criando parties dentro dele. usada tambm uma partio /boot separada, que fica fora do volume LVM, j que o grub no capaz de inicializar o sistema se o diretrio /boot estiver dentro de um volume lgico: O LVM (Logical Volume Manager) um recurso includo no Kernel Linux a partir da verso 2.4 que cria uma camada de abstrao entre o sistema operacional e os HDs (ou outras unidades de armazenamento utilizadas). Ele adiciona alguns complicadores adicionais na configurao, mas, em compensao oferece um conjunto de vantagens bastante interessantes. Imagine que no LVM o sistema no v HDs e parties, mas sim um ou mais volumes lgicos. Cada volume se comporta como se fosse uma partio, que formatada e montada da forma usual (um volume pode ser usado inclusive como partio swap). Estes volumes so agrupados em um grupo de volumes lgicos (logical volume group) que se comporta de forma similar a um HD. O pulo do gato que o grupo de volumes lgicos pode combinar o espao de vrios HDs e ser modificado conforme necessrio, incorporando mais HDs. Os volumes lgicos dentro dele tambm podem ser redimensionados livremente conforme for necessrio. Se voc precisa de mais espao dentro do volume referente pasta home, por exemplo, voc poderia reduzir o tamanho de um dos outros volumes do sistema (que estivesse com espao vago) e aumentar o tamanho do volume referente ao home, tudo isso com o servidor operante. Outra possibilidade ir adicionando novos HDs ao servidor conforme precisar de mais espao. Ao instalar um novo HD, voc comearia criando um volume fsico, englobando todo o espao do HD. Uma vez que o volume fsico criado, voc pode expandir o grupo de volumes lgicos, de forma que ele incorpore o espao referente ao novo HD. A partir da, voc pode expandir os volumes lgicos, usando o espao livre. Caso seja utilizada uma controladora SCSI ou SAS com suporte a hot-swaping, possvel at mesmo adicionar, remover ou substituir HDs, fazendo as alteraes necessrias nos volumes lgicos, tudo sem interrupes. importante enfatizar que o LVM apenas uma mudana na forma como o sistema acessa os discos, ele no um substituto para o RAID. No LVM voc pode agrupar vrios HDs em um nico grupo de volumes lgicos, mas se um dos HDs apresentar defeito, o servidor ficar inoperante e voc perder os dados armazenados no disco afetado, diferente do RAID, onde voc pode sacrificar parte do espao para ter uma camada de redundncia. O grupo de volumes lgicos criado pelo instalador visto pelo sistema como "/dev/VolGroup00" e os volumes lgicos dentro dele so vistos como "/dev/VolGroup00/LogVol00", "/dev/VolGroup00/LogVol01", etc. Estes nomes usados por default no so muito descritivos, mas possvel alter-los usando o prprio particionador. Naturalmente, possvel tambm deixar de usar o LVM, voltando ao sistema normal de particionamento. Nesse caso voc s precisa deletar os volumes e o grupo de volumes lgicos e criar a parties desejadas usando o espao disponvel. Para o particionamento do HD, valem as regras que vimos no meu tutorial anterior sobre instalao de servidores Linux, ou seja, usar volumes separados para os diretrios "/tmp", "/var" e "/home", de acordo com a aplicao do servidor. Em seguida temos a tela de configurao do gerenciador de boot. Diferente de um desktop, onde muitas vezes precisamos configurar o gerenciador para inicializar vrios sistemas operacionais, em um servidor utilizamos sempre um nico sistema, o que simplifica as coisas. Voc pode rodar outros sistemas operacionais simultaneamente usando VMware Server ou o Xen, utilizando mquinas virtuais. A opo "Utilizar uma senha no gerenciador de inicializao" define uma senha de boot, que solicitada pelo grub no incio do boot. Esta senha raramente usada em servidores, pois impede que o servidor seja reiniciado sem que algum esteja presente no local para digitar a senha no boot seguinte. Ela tambm no eficiente como uma proteo contra acesso local do servidor, pois facilmente burlvel. Em seguida temos a configurao da rede. Tanto ao configurar um servidor para a Internet quanto ao configurar um servidor de rede local, muito provvel que voc configure tambm um domnio. Na Internet a funo do domnio obvia, j que atravs dele que os visitantes acessaro os sites hospedados, mas um domnio pode ser til tambm em uma rede local, facilitando o acesso s mquinas e viabilizando o uso de diversos servios adicionais. Mesmo o Active Directory (utilizado em redes Microsoft) fortemente baseado no uso de domnios. Gerenciar nomes de domnio tarefa para o Bind. Por enquanto, voc pode se limitar a configurar o "fully qualified domain name" do servidor, ou seja, seu nome completo, incluindo o nome da mquina e o domnio que ser utilizado, como em "centos.gdhn.com.br": Depois de ajustar o fuso-horrio e definir as senhas do sistema, chegamos seleo dos pacotes que sero instalados. Todas as categorias disponveis so opcionais, de forma que se voc simplesmente desmarcar todas, far uma instalao minimalista do sistema, em modo texto. As categorias importantes no nosso caso so a "Server" (a seleo padro de pacotes, incluindo o Samba, Apache, FTP, etc.) e, opcionalmente, a "Server-GUI", que instala o ambiente grfico e as ferramentas grficas de administrao. interessante ativar tambm o "Packages from CentOS Extras", que torna disponvel um conjunto de pacotes adicionais, disponibilizados pela equipe do CentOS. Marcando a opo "Personalizar agora" voc tem acesso ao menu de seleo de pacotes. Se voc marcou a categoria "Server-GUI" ou uma das categorias desktop, voc notar que os pacotes referentes ao X, alm do Gnome ou KDE e um conjunto de aplicativos grficos estaro marcados. Assim como o Fedora, o CentOS inclui um conjunto de aplicativos grficos para configurao do sistema que podem ser teis em muitas situaes, de forma que muitos administradores preferem manter o ambiente grfico instalado, mesmo em servidores que sero apenas acessados remotamente. Voc pode perfeitamente manter os pacotes relacionados ao ambiente grfico instalados, mas manter o ambiente grfico inativo enquanto no o estiver usando (de forma a no consumir recursos do servidor). Nas primeiras instalaes, recomendo que desmarque os pacotes dentro da categoria "Servidores" e instale cada servio manualmente, assim voc pode estudar melhor o processo de configurao de cada um: Diferentemente do Red Hat Enterprise, que possui verses distintas para servidores (Red Hat Enterprise Linux), servidores de misso crtica (Red Hat Enterprise Linux Advanced Platform) e para estaes de trabalho (Red Hat Enterprise Linux Desktop), cada uma contendo uma coleo de pacotes especficos para as tarefas a que so destinadas, o CentOS uma distribuio unificada, que simplesmente inclui todos os pacotes disponveis nos repositrios. Isso significa que, alm de ser usado como servidor, que o que estudaremos aqui, o CentOS tambm pode ser usado como sistema desktop, j que inclui o Gnome, KDE e um conjunto bastante completo de aplicativos que podem ser marcados durante a instalao. Depois de concluda a cpia dos arquivos, aberto um agente de configurao (que no RHEL chamado de Red Hat Setup Agent), que conclui a configurao do sistema. Duas opes importantes so a configurao do firewall e do SELinux. O configurador do firewall na verdade um wizard, que permite que voc selecione as portas referentes aos servios que ficaro ativos no servidor (as portas selecionadas so abertas e todas as demais fechadas) e, a partir das respostas, gera as regras correspondentes para o IPtables, que o firewall propriamente dito. Alm das portas dos servios padro, voc pode adicionar manualmente qualquer porta que precisar manter aberta. No exemplo estou abrindo a porta 901, usada pelo swat: Voc pode ajustar a configurao do firewall aps a instalao atravs do utilitrio "system-config-securitylevel" (disponvel no Sistema > Administrao > Nvel de Segurana e Firewall). Existe tambm uma verso em modo texto do aplicativo, o "system-config-securitylevel-tui", que pode ser acessada via terminal (e inclusive remotamente, via SSH). possvel tambm desativar a configurao do firewall e configurar as regras do IPtables manualmente, como veremos a seguir. Escrever um script de firewall mais simples do que pode parecer primeira vista. Enquanto estiver estudando, recomendo que faa justamente isso; desativando o firewall na configurao e configurando o IPtables manualmente. Isso evita que voc se depare com problemas inesperados introduzidos por portas fechadas no firewall. Depois que voc entender a configurao manual do IPtables, pode voltar a configurar o firewall atravs do wizard caso prefira. Continuando, temos o SELinux (Secure Linux), um sistema que visa reforar a segurana do sistema, aplicando um conjunto de diretivas rgidas de segurana. O grande problema que o SELinux interfere no funcionamento de um grande volume de servios e de softwares adicionais, o que torna necessrio criar excees para cada caso. Isso faz com que o modo "Enforcing" (Forando) do SELinux seja aconselhvel apenas em situaes onde a segurana realmente seja um fator crtico e onde o administrador possua profundos conhecimentos do sistema, de forma a diagnosticar problemas causados pelas polticas de segurana e criar as excees necessrias. Um meio termo o nvel "Permissive" (permissivo), onde o SELinux aplicado apenas a alguns servios especficos (o Apache e o Bind, por exemplo) e age apenas em relao a eles. Mesmo sem o SELinux, o CentOS uma distribuio bastante segura. Enquanto voc estiver estudando sobre o sistema e utilizando-o em servidores de rede local, interessante desativar o sistema. Com isso, voc evita situaes onde determinados servios no esto funcionando (apesar da configurao estar correta) por causa das restries do SELinux. Para desativ-lo depois da instalao, edite o arquivo "/etc/selinux/config" e substitua a linha "SELINUX=enforcing" ou "SELINUX=permissive" por: SELINUX=disabled necessrio reiniciar o micro para que a alterao entre em vigor. O reboot demora alguns minutos, pois o sistema precisa realizar um conjunto de modificaes nos arquivos. A menos que voc tenha manualmente desmarcado o pacotes "openssh-server" durante a instalao, o servidor SSH ser instalado e ficar ativo por padro, o que permite que voc faa o restante da configurao do servidor remotamente: $ ssh root@servidor O arquivo de configurao do SSH no CentOS o "/etc/ssh/sshd_config", o mesmo usado no Debian e no Ubuntu. O nome do pacote tambm o mesmo, "openssh-server". A nica diferena que o script usado para controlar o servio o "/etc/init.d/sshd" e no "/etc/init.d/ssh". Usando o yum O yum (Yellow dog Update, Modified) o gerenciador de pacotes usado por padro no CentOS, no Fedora e no Red Hat Enterprise. O yum foi originalmente desenvolvido pela equipe do Yellow Dog (uma distribuio baseada no Red Hat, destinada a computadores com chip PowerPC) e foi sistematicamente aperfeioado pela equipe da Red Hat, at finalmente assumir o posto atual. O yum trabalha de forma bem similar ao apt-get, baixando os pacotes a partir dos repositrios especificados nos arquivos de configurao, junto com as dependncias necessrias. Assim como o apt-get, ele capaz de solucionar conflitos automaticamente e pode ser tambm usado para atualizar o sistema. Essencialmente, o yum e o apt-get solucionaram o antigo problema das dependncias (um pacote precisa de outro, que por sua vez precisa de um terceiro) que atormentava os usurios de distribuies mais antigas. Existem muitas diferenas entre o CentOS e o Debian, uma delas o formato dos pacotes utilizados: o CentOS utiliza pacotes .rpm, enquanto o debian utiliza pacotes .deb. Ambos tambm utilizam repositrios separados, com pacotes construdos especificamente para cada uma das duas distribuies, de forma que existem algumas diferenas nos nomes dos pacotes e arquivos de configurao usados. Diferente do apt-get, onde voc precisa rodar o "apt-get update" antes de cada instalao para atualizar a lista de pacotes, o yum faz a atualizao automaticamente cada vez que uma instalao solicitada, checando os repositrios, baixando os headers do pacotes e calculando as dependncias antes de confirmar a instalao, como nesse exemplo: Isso faz com que a instalao de pacotes usando o yum seja um pouco mais demorada que usando o apt-get. Ou seja, ganha-se de um lado mas perde-se do outro. :) Para instalar um pacote, use o comando "yum install", como em: # yum install mysql-server Para remov-lo posteriormente, use: # yum remove mysql-server O yum possui tambm um recurso de busca, que bastante til quando voc est procurando por um pacote, mas no sabe o nome exato, ou em casos de pacotes que possuem nomes diferentes em relao a outras distribuies. Use o comando "yum search", seguido por alguma palavra ou expresso, que faa parte do nome do pacote ou descrio, como em: # yum search samba Ele retorna um relatrio contendo todos os pacotes relacionados, incluindo o texto de descrio de cada um. Isso resulta geralmente em uma lista relativamente longa. Para fazer uma busca mais restrita, procurando apenas nos nomes dos pacotes, use o parmetro "list", como em: # yum list httpd Ele bem menos falador, retornando apenas os pacotes que possuem "httpd" no nome, sem pesquisar nas descries. Uma terceira opo a "provides" que mostra pacotes que incluem um determinado arquivo, pesquisando no no nome ou na descrio, mas sim no contedo dos pacotes. Ele bastante til em casos em que voc precisa de alguma ferramenta ou biblioteca que faz parte de outro pacote maior, como em: # yum provides mcedit Em caso de dvida, voc pode verificar se um determinado pacote est instalado e qual a verso usando o comando "rpm -q", como em: # rpm -q samba samba-3.0.25b-0.el5.4 Para atualizar um pacote j instalado, use o comando "yum update", como em: # yum update samba O comando "yum install" tambm pode ser usado para atualizar pacotes. A diferena entre o "install" e o "update" que o "update" se limita a atualizar pacotes j instalados. Ao perceber que o pacote solicitado no est instalado, ele exibe um aviso e aborta a instalao, como no exemplo abaixo. Isso reduz a possibilidade de voc acabar instalando um novo servio por engano: # yum update mysql-server Loading "installonlyn" pluginSetting up Update ProcessSetting up repositoriesReading repository metadata in from local filesCould not find update match for mysql-server Outra observao que, depois de atualizar um servio, necessrio recarregar o servio (como em "service smb restart") para que a nova verso passe a ser usada. Esta mais uma pequena diferena com relao s distribuies derivadas do Debian, onde os servios so reiniciados de forma automtica depois de atualizados. Para atualizar todo o sistema, comece usando o parmetro "check-update", que lista as atualizaes disponveis: # yum check-update Se usado sem especificar um pacote, o "update" vai atualizar de uma vez s todos os pacotes do sistema, de forma similar ao "apt-get upgrade" do Debian: # yum update Existe ainda o comando "yum upgrade", que um pouco mais incisivo, incluindo tambm pacotes marcados como obsoletos (que no existem mais na verso atual). Ele til em casos em que necessrio atualizar uma verso antiga do sistema: # yum upgrade possvel tambm fazer com que o yum atualize o sistema automaticamente todas as madrugadas. Para isso, basta ativar o servio "yum" e configur-lo para ser ativado durante o boot: # chkconfig yum on# service yum start Isso faz com que a atualizao seja agendada atravs do cron e seja (por padro) executada todos os dias s 4:02 da manh, como especificado no arquivo "/etc/crontab".

Repositrios adicionaisA lista de repositrios usados pelo yum dividida em diversos arquivos, organizados na pasta "/etc/yum.repos.d/". No CentOS, a pasta inclui por padro apenas dois arquivos: "CentOS-Base.repo" e "CentOS-Media.repo". O primeiro inclui os repositrios oficiais da distribuio, enquanto o segundo permite que voc instale pacotes contidos nos CDs (ou no DVD) de instalao.O arquivo "CentOS-Base.repo" contm diversas entradas como a abaixo, uma para cada repositrio:#released updates[updates]name=CentOS-$releasever - Updatesmirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/gpgcheck=1gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5Ao adicionar repositrios adicionais, voc criaria novos arquivos dentro da pasta "/etc/yum.repos.d/", um para cada repositrio adicional.O yum verifica os arquivos dentro da pasta cada vez que executado, fazendo com que o novo repositrio passe a ser usado automaticamente.Normalmente, os responsveis pelos repositrios disponibilizam arquivos de configurao prontos, que precisam ser apenas copiados para dentro da pasta "/etc/yum.repos.d". Para adicionar o repositrio kbs-centos-extras, por exemplo, voc baixaria o arquivo "kbsing-CentOS-Extras.repo", disponvel no http://centos.karan.org/.Assim como o apt-get, o yum utiliza chaves GPG para checar a autenticidade dos pacotes antes de fazer a instalao. Cada pacote assinado digitalmente pelo desenvolvedor, o que atesta que o pacote foi realmente gerado por ele. Mesmo que algum tentasse adulterar o pacote (incluindo um rootkit ou um script malicioso, por exemplo), no teria como falsificar tambm a assinatura, o que levaria o yum a reportar o problema e abortar a instalao.Ao adicionar um novo repositrio, necessrio adicionar tambm a chave pblica do desenvolvedor, usando o comando "rpm --import", como em:# rpm --import http://centos.karan.org/RPM-GPG-KEY-karan.org.txtNormalmente, a URL com a chave pblica GPG fica em destaque dentro da pgina com instrues de como adicionar o repositrio.Da mesma forma, para remover um repositrio posteriormente, voc removeria o arquivo da pasta, de forma que o yum deixe de us-lo. interessante tambm limpar o cache do yum, usando os comandos:# yum clean headers# yum clean packagesPluginsO yum oferece tambm suporte a plugins, que permitem expandir as funcionalidades do gerenciador. Dois plugins bastante populares so o fastestmirror e o protectbase.O fastestmirror faz com que o yum cheque a velocidade dos mirrors a cada instalao e baixe sempre os pacotes a partir do mirror mais rpido (evitando os problemas de lentido que atingem muitos usurios), enquanto o protectbase faz com que o yum d prioridade para os pacotes dos repositrios oficiais, evitando que eles sejam substitudos por pacotes de outros repositrios adicionados manualmente.Para ativar o fastestmirror, basta instalar o pacote "yum-fastestmirror", como em:# yum install yum-fastestmirrorIsso faz com que ele passe a ser usado automaticamente. Voc notar que o yum passar a exibir duas mensagens adicionais durante cada operao:Loading "fastestmirror" pluginLoading mirror speeds from cached hostfileNaturalmente, para que o fastestmirror possa escolher o repositrio mais rpido a utilizar, necessrio que seja especificada uma lista de mirrors dentro da configurao de cada repositrio na pasta "/etc/yum.repos.d". Voc notar que as entradas referentes aos mirrors oficiais incluem uma linha "mirrorlist", que indica a localizao de um arquivo com a lista dos mirrors disponveis, como em:[extras]name=CentOS-$releasever - Extrasmirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extrasAo adicionar novos repositrios manualmente, no se esquea de pesquisar sobre a localizao do arquivo com a lista dos mirrors, de forma a especific-lo na configurao.Para ativar o protectbase, instale o pacote yum-protectbase:# yum install yum-protectbasePara que ele se usado, necessrio adicionar a linha "protect=1" ou "protect=0" na configurao de cada um dos repositrios includos na pasta "/etc/yum.repos.d". Os repositrios com o "protect=1" sero protegidos pelo protectbase, evitando que os pacotes sejam substitudos por pacotes de verses mais recentes includos nos repositrios adicionais. Com isso, os repositrios adicionais passam a realmente ser usados apenas para instalar pacotes que no fazem parte dos repositrios principais, reduzindo bastante a possibilidade de problemas ao usar repositrios no-oficiais. importante proteger pelo menos os repositrios "base" e "updates", dentro do arquivo "/etc/yum.repos.d/CentOS-Base.repo", como em:[base]name=CentOS-$releasever - Basemirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/gpgcheck=1gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5protect=1[updates]name=CentOS-$releasever - Updatesmirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/gpgcheck=1gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5protect=1As demais entradas devem receber a opo "protect=0", como em:[rpmforge]name = Red Hat Enterprise $releasever - RPMforge.net - dag#baseurl = http://apt.sw.be/redhat/el5/en/$basearch/dagmirrorlist = http://apt.sw.be/redhat/el5/en/mirrors-rpmforgegpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rpmforge-daggpgcheck = 1protect = 0