Home
Ferramenta RPM no Gerenciamento de Sistemas GNU/Linux
Contents
1. 33 4 2 Importa o de uma chave p blica eres 37 4 3 Administra o das chaves p blicas dos empacotadores 40 5 A base de dados RPM e eecereereeereereeraeeranna 41 5 1 Os arquivos da base de dados e sesse eseesse sses resseessessee ee 41 5 2 Reconstru o da base de dados ireeeeeeeerrreeees 42 6 Administra o de sistemas GNU Linux baseados em pacotes RPMs 44 6 1 Modos de opera o de RPM reeeeerereereerereerareranos 44 6 2 Modo de consultas ie an aa 47 6 3 Mod de verifica o issu n n ads das Ss Pace aU ODESSA So oca a 56 6 4 Modos de instala o atualiza o e restaura o csstes 60 6 5 Modo de exclus o crer ceecareeaeeaerenanea 66 7 Desenvolvimento de pacotes RPM eee rereeeaereneenes 70 7 1 Introdu o a cria o de pacotes RPM c iremos 70 7 2 O programa exemplo eiee a a 72 7 3 Cria o de uma atualiza o senneennnseoosessenssseoseisseesssesseesseesseesseesss 73 7 4 Conceitos sobre o arquivo Spec cciseeeeerereeeeereeereeranas 75 TA 1 Se o preambuloO seres ee ndtebicaparceipena o 75 7 4 2 Se o de prepara o Yprep ciieereeeeeeerenes 77 7 4 3 Se o de compila o Ybuild e reerereenas 80 7 4 4 Se o de instala
2. 95 VII 1 Introdu o Segundo Guru Labs 2005 a instala o de programas em sistemas do tipo Unix tradicionalmente feita atrav s da compila o de arquivos de c digo fonte O c digo fonte um arquivo salvo no formato de texto puro cujo conte do s o instru es que representam um programa A compila o um processo cujo objetivo a gera o de arquivos bin rios execut veis a partir da tradu o do c digo fonte para um formato execut vel Normalmente as instru es de um programa s o escritas na linguagem C ou C Essas instru es representam a codifica o da l gica necess ria para criar um programa de computador O c digo fonte no estado em que se encon tra n o pass vel de execu o por um computador pois este n o est preparado para interpretar diretamente as instru es do programa escritas nessa linguagem Por isso necess rio utilizar um compilador para gerar um programa execut vel em uma linguagem que a m quina interprete corretamente Um compilador um conjunto de programas que realizam a transforma o do c digo fonte n o execut vel em um c digo objeto Esse c digo objeto ligado s bibliotecas de fun es de forma din mica ou est tica dando origem aos arquivos execut veis As diversas bibliotecas formam uma cole o de fun es pr programadas e dispon veis para uso do programador na constru o de programas Os arquivos de c digo fonte s o
3. N o instala o pacote simplesmente checa e avisa sobre potenciais conflitos Os modos de instala o atualiza o ou restaura o s o funcionalmente id nticos Os exemplos de uso a seguir descrevem alguns casos de uso a Teste da instala o de um pacote que n o tem uma vers o anterior instalada no sistema rpm ivh test coreutils 5 96 1 2 1386 rpm A preparar PEER dE 100 b Atualiza o de um pacote seguido da opera o de reempacotamento dos ar quivos removidos em um pacote no diret rio var spool repackage rpm Uvh repackage util linux 2 13 0 20 1 1386 rpm A preparar PERETETEETEETE EE E E DE E EEE EEE 100 Repackaging 1 util linux PARRA HHRAAHHH HAHH RAHHHHAHHHHHHHHHHHHHHHHHH 100 Upgrading 1 util linux PARRA HHHAAHHHHAHHHHAHHHHAHHHHHHHHHHHHHHHHHHE 100 65 c Atualiza o de um pacote instalado rpm Fvh totem 1 4 1 1 1386 rpm A preparar PEA 100 l totem PEER dA 100 6 5 Modo de exclus o Um dos grandes benef cios introduzidos por um sistema de gerenciamen to de pacotes como RPM a facilidade com que se instala um grande n mero de arquivos atrav s de um nico pacote e tudo com apenas uma linha de comando Entretanto al m das modifica es por instala es e atualiza es de pacotes pode chegar o momento em que um ou mais pacotes n o sejam mais necess rios Neste caso a solu o a remo o destes pacotes do sistema Pensando nisso
4. rpm qip arl 2004 2 1 1686 rpm Name arl Relocations usr local bin usr share doc Version 2004 2 Vendor UFLA FAEPE Release EF Build Date Qua 16 Ago 2006 14 02 17 BRT Install Date not installed Build Host kye2400 kyetoy net Group P s Gradua o Lato Sensu Source RPM arl 2004 2 1 src rpm Size 18817 License GPL Signature DSA SHA1 Qua 16 Ago 2006 14 02 18 BRT Key ID 4c4edad224f0a8la Packager Keynes Augusto lt unasi nospam com gt URL http www ginux comp ufla br arl Summary ARL Administra o em Redes Linux P s Gradua o Lato Sensu Description Este o pacote RPM para o famoso ARL ARL um comando usado para exibir a data e a hora local de um sistema GNU Linux d Checagem da integridade e autenticidade do pacote rpm K arl 2004 2 1 1686 rpm arl 2004 2 1 1686 rpm shal dsa shal md5 gpg OK e Listagem do changelog do pacote rpm qp changelog arl 2004 2 1 1686 rpm S b Ago 05 2006 14 18 08 unasi lt unasi arl nospam com gt Retirado o bug da linha extra 1 Refeito o arquivo spec para apresenta oarl 2004 2 1 i686 rpm shal dsa shal md5 gpg OK gt f Exibi o das informa es internas do pacote rpm qp dump arl 2004 2 1 1686 rpm usr local bin arl 5343 1155747737 48d50807119efb70bb9f008774b8a6e3 0100755 root root 000X usr share doc arl 2004 2 arl html 886 1155747737 8156e80a74fa960c329e0f25b784bde4 0100644 root root 01 0 X usr share doc arl
5. 26 muitos dos recursos desses processadores Surge neste caso uma necessidade de gerar pacotes para uma arquitetura alvo espec fica como 1686 ou Pentium 4 que fornecem op es de maior desempenho para os programas Primordialmen te esta a fun o dos pacotes SRPMs Segundo Guru Labs 2005 um pacote SRPM formado tipicamente por e O c digo fonte original de uma aplica o Pristine Source e As atualiza es patches para este aplicativo e Arquivos auxiliares como os scripts do tipo System V Init e outros para o uso de sistemas como Cron ou PAM e Um arquivo do tipo spec formado por macros RPM e comandos do shell necess rios para criar o pacote bin rio a partir do conjunto de ar quivos de c digo fonte original patches e scripts de suporte Por conven o os pacotes fonte SRPM possuem uma nomenclatura de arquivo id ntica a dos pacotes RPM bin rios A nica diferen a que ao nome do arquivo acrescida a part cula src antes da extens o de arquivo rpm Assim um nome de pacote fonte como bash 3 1 6 2 src rpm um nome de arquivo corretamente formado e v lido para um pacote fonte Nem sempre existir um pacote fonte do tipo SRPM correspondente a um pacote RPM bin rio Uma das raz es para isso nem todo aplicativo empa cotado no formato RPM ser um aplicativo de c digo livre open source Nestes casos apenas os pacotes no formato bin rio RPM podem ser encontrados O ad
6. A Half UNIVERSIDADE FEDERAL DE LAVRAS Pacotes RPM A Ferramenta RPM no Gerenciamento de Sistemas GNU Linux Keynes Augusto de Deus 2006 Keynes Augusto de Deus Pacotes RPM A Ferramenta RPM no Gerenciamento de Sistemas GNU Linux Monografia apresentada ao Departamento de Ci ncia da Computa o da Universidade Fe deral de Lavras como parte das exig ncias do curso de P s Gradua o Lato Sensu em Ad ministra o de Redes Linux para a obten o do t tulo de especialista em Administra o de Redes Linux Orientador Prof Joaquim Quinteiro Uch a LAVRAS MINAS GERAIS BRASIL 2006 Keynes Augusto de Deus Pacotes RPM A Ferramenta RPM no Gerenciamento de Sistemas GNU Linux Monografia apresentada ao Departamento de Ci ncia da Computa o da Universidade Federal de Lavras como parte das exig ncias do curso de P s Gradua o Lato Sensu em Administra o de Redes Linux para a obten o do t tulo de especia lista em Administra o de Redes Linux Aprovada em 28 de Setembro de 2006 Prof Heitor Augustus Xavier Costa Prof Simone Markenson Pech Prof Joaquim Quinteiro Uch a Orientador LAVRAS MINAS GERAIS BRASIL Resumo O gerenciamento dos programas instalados em um sistema GNU Linux uma tarefa complexa e que exige muito do co nhecimento dos administradores de rede A utiliza o de um sistema de empacotamento de programas como RPM permite racionalizar os rec
7. o Os recursos de criptografia e assinaturas digitais usados para proteger os pacotes da inje o de c digo malicioso podem garantir a integridade dos paco tes antes de serem instalados Entretanto uma vez instalados no sistema preci so introduzir mecanismos que garantam a integridade desses arquivos ao longo do tempo Uma forma de checar essa integridade controlar certas propriedades de arquivos e diret rios Assim qualquer mudan a em uma propriedade monito rada pode indicar problemas na seguran a Segundo Uch a 2003 verificado res de integridade de arquivos como AIDE e Tripwire s o as ferramentas indica das para esse servi o Todavia RPM tamb m fornece um m todo de verifica o que permite manter um estrito controle de certas propriedades dos arquivos instalados pelos 56 pacotes De acordo com Uch a 2003 a necessidade de manter esse controle surge a partir do seguinte hist rico Uma quest o cr tica no que se refere seguran a a garantia de confi an a no sistema Em geral t o logo o invasor obt m acesso ao sistema sua pri meira provid ncia garantir a continuidade desse acesso Uma das estrat gias utilizadas para isso o uso de rootkits Esses programas consistem em vers es modificadas de aplicativos comuns ou do pr prio kernel Mesmo sem o uso de rootkits pode ocorrer do invasor instalar um novo aplicativo que lhe d acesso privilegiado RPM pode ajudar na tarefa de manter
8. o Yoinstall reatar 81 7 4 5 Se o de limpeza Yclean eeeeereeeeraernas 82 7 4 6 Se o de arquivos Yfiles c ii ieereeereeeeereererereranereaos 83 7 4 7 Se o hist rico de mudan as Ychangelog 84 7 4 8 Se es preparat rias ou opcionais eceeeeeemeeereereeos 85 7 5 O arquivo exemplo arl spec e ieeeeererereeeerereeeerereanos 86 8 O ambiente de produ o de pacotes RPM 88 V 8 1 Gera o de um par de chaves p blicas ciseesereea 88 8 2 Configura o do ambiente de produ o de RPM 92 9 Constru o de pacotes com o utilit rio rpmbuild e 94 9 1 Utiliza o de pacotes fonte SRPM eee 96 9 2 Constru o dos pacotes para o programa exemplo 98 10 Conclus o assa seres nennen sima arcar tampa A EE ET EE 103 REFER NCIAS BIBLIOGR FICAS ir ireeesmereermeermsersers 106 VI Lista de Quadros Quadro 1 Plataformas e arquiteturas suportadas por RPM 24 Quadro 2 Arquivos da Base de Dados RPM e suas Finalidades 41 Quadro 3 Sintaxe dos Modos B sicos de Opera o de rpm 44 Quadro 4 Caracteres retornados pela verifica o de RPM 58 Quadro 5 Op es de constru o de pacotes de rpmbuild
9. um banco de dados relacional tradicional O mecanismo de ar mazenamento trabalha com uma tabela hash se referenciando aos pares de da dos como um nome valor Este tipo de banco de dados muito r pido para veri ficar uma entrada como o nome de um pacote mas n o t o r pido para intera gir com as outras entradas Uma das coisas boas sobre esta biblioteca que ela est dispon vel no modo de c digo aberto open source e possui API para as linguagens C C Java Perl e Tcl Cada um dos arquivos que formam a base de dados RPM possui uma fun o especializada para um tipo de consulta Algu mas vezes esta base de dados pode ser corrompida sendo necess rio reconstruir a base de dados 5 2 Reconstru o da base de dados Bancos de dados est o sujeitos corrup o de um registro ou de uma ta bela inteira Nos casos mais extremos de corrup o da base de dados pode ser necess rio restaurar uma c pia de seguran a Todavia na maioria dos casos reindexar a base de dados suficiente para restabelecer o funcionamento ou ga rantir a integridade do sistema A op o rebuilddb promove a reindexa o da base de dados partir do arquivo base var lib rpm Packages Os demais ar quivos de ndices ser o recriados com as informa es obtidas nesse arquivo A sintaxe para realizar essa opera o a seguinte rpm rebuilddb 33 Dispon vel em www sleepycat com 42 Mesmo que o banco de dados esteja nteg
10. Usada juntamente com a op o VV para fins de depura o Entre os par metros poss veis de serem usados no processo de remo o talvez o mais interessante seja o modo de teste Neste caso poss vel testar como o sistema procederia a remo o apenas de modo simulado Nada real mente removido rpm evv teste eject 69 7 Desenvolvimento de pacotes RPM 7 1 Introdu o a cria o de pacotes RPM Neste ponto poss vel ter uma vis o dos amplos benef cios de um siste ma de empacotamento de programas como RPM As tarefas de instala o atua liza o e remo o s o reduzidas literalmente a uma linha de comando O sistema RPM torna uma tarefa complexa como a instala o de programas em sistemas GNU Linux algo simples Para entender esse e outros pontos do funcionamento de RPM preciso entender a sua concep o Dois pilares do desenvolvimento de RPM o tornam o sistema robusto e transparente filosofia e programa o O sistema RPM amig vel para o usu rio final e pr tico para desenvolvedores gra as a uma filosofia de desenvolvimento e a uma programa o baseada nesses princ pios Segundo Bailey 2000 a filo sofia de desenvolvimento de RPM teve como uma de suas linhas b sicas tornar mais f cil a vida de usu rios e principalmente de desenvolvedores de pacotes O mesmo visto nas afirma es de Foster Johnson 2005 Os desenvolvedores de RPM especialmente Marc Ewing e Erik Troan
11. bem sucedidos para o uso em sistemas GNU Linux s o o RPM Red Hat Packa ge Manager e o DEB Debian Package Um dos objetivos deste trabalho apresentar os conceitos sobre o forma to de distribui o de aplicativos RPM e o uso da ferramenta de gerenciamento de pacotes rpm Desta maneira usa se a grafia em mai sculas para diferenciar o formato de pacote e min sculas para o aplicativo de gerenciamento Assim rpm se refere ao aplicativo de gerenciamento enquanto RPM define um forma to de distribui o de pacotes Outro objetivo deste trabalho criar uma documenta o que facilite o entendimento dos conceitos da filosofia e dos processos envolvidos na ger ncia de um sistema baseado em pacotes RPM Administradores de sistemas novatos gastam muito tempo na busca de conhecimento sobre o funcionamento do siste ma de gerenciamento de pacotes Reduzir o custo desta curva de aprendizagem importante para a difus o da filosofia GNU Linux e para a qualifica o desses profissionais Este trabalho est estruturado do seguinte modo no cap tulo 2 s o trata dos os conceitos gerais e as defini es da filosofia de gerenciamento de pacotes RPM no cap tulo 3 abordado o tema da obten o de pacotes RPM o cap tulo 4 enfoca tanto as pragas virtuais quanto o sistema de seguran a utilizado por RPM para manter a integridade dos pacotes no cap tulo 5 demonstrado como funciona a estrutura da base de dados de RPM o cap tulo 6 enf
12. o nome do pacote permaneceu com as iniciais yp por tradi o Neste caso fica evidente que o nome do pacote pode ou n o guardar uma similaridade com o nome do aplicativo que o mesmo imple menta Em geral o nome do pacote id ntico ao nome do aplicativo ou ao nome do servi o que o mesmo implementa mas isso n o uma regra O nome do pacote costuma ser um par metro de pesquisa usado na reali za o de uma consulta base de dados de pacotes RPM Al m do par metro nome poss vel tamb m incluir a vers o e a revis o como crit rios opcionais de consulta Nesse caso deve ser observada corretamente a grafia do nome do pacote pois o mesmo pode ter um nome simples ou um nome composto Por exemplo o pacote denominado ypbind 1 19 0 1386 possui um nome simples enquanto o pacote denominado yp tools 2 9 0 1386 possui um nome composto Ent o observa se que para separar nomes compostos usado o tra o Na forma o de n meros de vers o usado o ponto como separador Deste modo caso o nome do primeiro pacote seja usado como um par metro de consulta escreve se ypbind Entretanto para uma consulta tendo como par me tro o nome do segundo pacote este deve ser grafado como yp tools em fun o de ser um nome composto Al m disso nomes de pacote s o sensitivos quanto aos caracteres min sculos e mai sculos A grafia desses nomes deve sempre di ferenciar entre letras mai sculas ou min sculas Outra observa o imp
13. unidire cional e independente podendo ser transmitido separadamente da mensagem Deste modo o receptor possui a mensagem e a assinatura hash gerada partir dela basta ent o confrontar um com o outro novamente para conferir a in tegridade do conte do Caso haja diverg ncia mesmo que de um nico bit o checksum ir acusar a altera o gerando um hash diferente do original Deste modo usando menos recursos computacionais que os processos criptogr ficos poss vel garantir a integridade de arquivos utilizando sum rios de mensagens O sistema RPM utiliza os dois m todos assinaturas GPG de cha ves p blicas para autenticar pacotes e sum rios de mensagens MDS ou SHAL para arquivos Ambas informa es s o armazenadas no pacote e ap s instalado essas informa es tamb m s o mantidas na base de dados para futuras consultas e verifica es de integridade e autenticidade dos arquivos no sistema de arqui VOS 36 30 4 2 Importa o de uma chave p blica O sistema GNU Linux que faz uso de pacotes RPM na maioria das ve zes instala as chaves p blicas do distribuidor No Fedora Core estas chaves es t o armazenadas no diret rio etc pki rpm gpg Entretanto rpm n o faz a im porta o dessas chaves automaticamente Assim for a uma importa o manual das chaves p blicas para que se possa trabalhar com os reposit rios oficiais Arquivos de chaves p blicas s o gerados por programas espec ficos para lid
14. 17 Jul 2006 16 00 53 BRT 1 list Lista os arquivos e os diret rios instalados por um pacote rpm ql bash bin bash bin sh etc skel bash_logout etc skel bash_profile etc skel bashrce As demais sa das foram omitidas provides Lista as depend ncias que este pacote fornece rpm q provides kdelibs config kdelibs 6 3 5 1 2 3 JibDCoP so 4 libartskde so 1 libkabc so 1 libkabc dir so 1 libkabc file so 1 libkatepart so libkatepartinterfaces so 0 As demais sa das foram omitidas R requires Lista as depend ncias requeridas por um pacote 54 scripts Lista os scripts que s o usados no processo de instala o ou desinstala o de um pacote s state Exibe o estado dos arquivos de um pacote O estado de um arquivo pode ser apre sentado como normal n o instalado not installed ou substitu do replaced 55 rpm q bash state normal bin bash normal bin sh normal etc skel bash logout normal etc skel bash profile normal etc skel bashrc As demais sa das foram omitidas triggers triggerscripts Exibe os scripts gatilhos triggers caso o pacote possua algum script rpm q triggers sendmail triggerpostun scriptlet using bin sh sendmail lt 8 10 0 sbin chkconfig add sendmail triggerpostun scriptlet using bin sh sendmail lt 8 11 6 11 usr sbin alternatives auto mta 6 3 Modo de verifica
15. 2004 2 rpm logo png 12588 1155747737 9bb1c3ad707160d6eb36619009268be3 0100644 root root 01 0 X 100 g Exibi o dos arquivos instalados pelo pacotes associados ao nome do pacote rpm qp filesbypkg arl 2004 2 1 1686 rpm arl usr local bin arl arl usr share doc arl 2004 2 arl html arl usr share doc arl 2004 2 rpm logo png h Exibi o dos requerimentos depend ncias do pacote rpm qp requires arl 2004 2 1 1686 rpm libc so 6 libc so 6 GLIBC 2 0 libgcc s so 1 libm so 6 libstdc so 6 libstdc so 6 CXXABI 1 3 rpmlib CompressedFileNames lt 3 0 4 1 rpmlib PayloadFilesHavePrefix lt 4 0 1 1 Instala o do pacote bin rio rpm Uvh arl 2004 2 1 1686 rpm A preparar REP A 100 1 arl REA 100 j Verifica o do pacote instalado rpm Vv arl E EAT usr local bin arl GUS AETI d usr share doc arl 2004 2 arl html ad pa d usr share doc arl 2004 2 rpm logo png k Exibi o dos provimentos do pacote rpm q whatprovides arl arl 2004 2 1 101 l Lista a data e a hora de instala o do pacote rpm q last arl arl 2004 2 1 Qua 16 Ago 2006 15 01 25 BRT m Exibe o estado dos arquivos instalados pelo pacote rpm qs arl normal usr local bin arl normal usr share doc arl 2004 2 arl html normal usr share doc arl 2004 2 rpm logo png n Exibi o dos arquivos do pacote fonte rpm qpl arl 2004 2 1 src rpm arl 2004 2 tar gz arl fixl patch arl spec
16. 2006 Gleydson M Da Silva Dispo n vel na Internet em lt http focalinux cipsga org br guia intermediario index htm gt TANENBAUM Andrew S Redes de Computadores Tradu o Vandenberg D de Souza Rio de Janeiro RJ Editora Campus Elsevier 2003 4a Edi o TANENBAUM Andrew S Sistemas Operacionais Modernos Tradu o Prof Dr Ronaldo A L Gon alves e Prof Dr Lu s A Consularo S o Paulo SP Editora Pearson Prantice Hall 2001 2a Edi o UCH A Joaquim Q SIMEONE Luiz E et al Linux Intermedi rio La vras MG Editora UFLA FAEPE 2003 Cap tulo 6 p ginas 115 126 UCH A Joaquim Q Seguran a em Redes e Criptografia Lavras MG Editora UFLA FAEPE 2003 Cap tulo 3 p ginas 17 22 107
17. a integridade do sistema Atrav s das op es de verifica o poss vel rastrear um conjunto de nove atributos dos arquivos instalados por RPM Esses atributos s o os seguintes e Propriet rio e Grupo e Permiss es e Assinatura MDS e Tamanho e N mero maior e menor apenas para devices e Liga es simb licas e Tempo de modifica o Desta maneira caso um invasor altere uma ou mais dessas propriedades poss vel ficar ciente dessas mudan as pela checagem de RPM A checagem de RPM retorna por padr o apenas as indica es de inconsist ncias Essa incon sist ncia encontra pela compara o entre o valor de uma propriedade no siste ma de arquivos e o valor correspondente armazenado na base RPM O indicativo da inconsist ncia uma cadeia de caracteres associados s propriedades Assim para cada arquivo verificado cuja exist ncia de falhas seja detectada uma linha 35 Devices s o um tipo especial de arquivo usados para definir dispositivos de hardware no diret rio dev 57 com as propriedades modificadas ser exibida O sintaxe dessas linha SM5DLUGT x lt arquivo gt onde cada letra indica uma propriedade conforme o Quadro 4 x um campo que indica o tipo de arquivo para RPM e lt arquivo gt o nome do arquivo verificado A sintaxe geral de um comando de verifica o rpm V verify select options verify options Quadro 4 Caracteres retornados pela
18. ano de 2002 o formato RPM ter sido adotado pela Linux Standards Base como parte desse padr o A vers o 1 2 da especifica o LSB define que RPM o formato padr o para empacotamento de aplicativos em sistemas GNU Linux compat veis com esta especifica o Essa decis o torna RPM anteriormente reconhecido como um padr o de facto para empacotamento de aplicativos GNU Linux tamb m um padr o de jure Essa padroniza o importante para o desenvolvimento de sistemas livres pois sem essas regras estes tendem para a incompatibilidade A empresa Red Hat distribuiu o sistema RPM com o licenciamento de c digo aberto open source license motivo que facilitou a ado o do formato RPM como um padr o de facto por algumas distribui es A ado o como um padr o de jure pela LSB revela o reconhecimento do bom desempenho do siste ma Segundo LSB 2002 os aplicativos devem ser distribu dos no formato de empacotamento RPM conforme definido no ap ndice de 1997 da edi o do livro Maximum RPM A sigla RPM formada a partir do nome em ingl s do Gerenciador de Pacotes Red Hat Red Hat Package Manager como chamado oficialmente A defini o de Open Souce Iniciative OSI pode ser consultada na Internet em http www opensource org 15 2 3 A nomenclatura de pacotes RPM Segundo Foster Johnson 2005 o pacote RPM um arquivo que como qualquer arquivo deve possuir um nome Todavia no caso dos arquivos de
19. baseada na tecnologia da cripto grafia de chave p blica e nos algoritmos de sum rios de mensagens Segundo Tanenbaum 2003 o sistema de criptografia baseado em cha ve p blica proposto por Diffie e Hellman em 1976 era uma id ia radicalmente nova para a poca Pois as chaves de criptografia e descriptografia eram diferen tes e uma n o era derivada da outra Al m disso o algoritmo utilizado para codi ficar as informa es tamb m p blico Esse sistema exige que cada usu rio seja 34 detentor de um par de chaves uma chave p blica e outra privada A chave p bli ca distribu da para qualquer interessado em estabelecer uma comunica o se gura com o dono da chave sendo esta usada para gerar uma mensagem para o seu dono A chave privada de conhecimento apenas de seu dono usada para descriptografar as mensagens codificadas com sua chave p blica Desta maneira poss vel estabelecer um sistema de assinaturas baseado em criptografia de chave p blica O padr o de facto para os algoritmos de cha ve p blica o RSA Rivest Shamir Adleman que permanece resistindo s ten tativas de rompimento por mais de vinte e cinco anos e considerado um algo ritmo muito forte como afirma Tanenbaum 2003 Uma desvantagem do RSA o tamanho m nimo da chave para garantir um n vel desej vel de seguran a ser de 1024 bits isso o torna lento para a codifica o de mensagens grandes Deste modo como demonstra Ta
20. baseados em suas experi ncias anteriores com empacotamento de programas Linux e seus conhecimentos sobre ferramentas de empacotamento de outras pla taformas tinham em mente facilitar a vida de desenvolvedores que utilizassem o sistema RPM Para isso elegeram uma s rie de pontos e caracter sticas que de veriam estar sempre presentes no desenvolvimento de RPM e Facilidade para o uso e Foco orientado para o pacote e Tornar um pacote atualiz vel e Rastreamento das interdepend ncias dos pacotes e Capacidade de consulta a uma base de dados e Seguran a por verifica o 70 e Suporte para m ltiplas arquiteturas e Preserva o do c digo fonte original Pristine Source Enquanto a implementa o de alguns destes conceitos percebida nos modos de instala o atualiza o e remo o outras destas caracter sticas s o vi s veis somente para desenvolvedores de pacotes Desta maneira antes de partir para o desenvolvimento de pacotes RPM preciso antever alguns destes concei tos relacionados com o desenvolvimento de pacotes Na vis o de Bailey 2000 um desenvolvedor pode decidir distribuir seu pr prio programa no formato RPM todavia e se acredita que na maioria dos casos um empacotador est distribuindo um programa que n o foi desenvolvido por ele Como tradicionalmente as aplica es GNU Linux s o programas de c digo aberto comum distribuidores tamb m serem desenvolvedores Deste modo es
21. cada um dos est gios de constru o do pacote As mesmas op es s o v lidas para arqui I que possuem um arquivo spec inclu do e que s o construi vos do tipo tarbal dos com as op es t id nticas s op es b Al m das op es de est gios de constru o podem ser utilizados par metros opcionais chamados de rpmbuild options A fun o destas op es passar par metros para rpmbuild modificando valores de op es que normal mente s o definidas no pr prio arquivo spec A mudan a destes par metros modifica o comportamento da constru o do pacote De acordo com Ewing et al 2002 a sintaxe destas op es buildroot Directory O valor passado em Directory sobrescreve o valor do r tulo Buildroot definido no arquivo spec 37 Um arquivo tarball gerado pelo utilit rio tar com op o de compacta o por GZip Possuem extens o tar gz 95 clean Remove a rvore de diret rios onde os arquivos foram produzidos ap s os paco tes terem sido gerados norebuild N o executa novamente o est gio build Usado para testar arquivos spec prmsource Remove os arquivos fonte do diret rio SOURCES ap s a constru o do pacote rmspec Remove o arquivo spec do diret rio SPECS ap s a constru o do pacote short circuit Salta a execu o de determinados est gios V lido somente com as op es be e bi permite continuar a constru o a partir do pr ximo est gio onde hav
22. de programas no GNU Linux No cap tulo Ferramentas de Desenvolvimento em Camargo 2005 feita uma introdu o sobre o assunto N o s o explicados os detalhes do funcio namento destas ferramentas pois isso est fora do escopo deste trabalho Para mais detalhes consulte Camargo 2005 Esses arquivos automatizar o o pro cesso de configura o e compila o do programa exemplo arl A seguir s o listados os arquivos configure in e Makefile in usados para exemplificar a constru o do pacote ARL Arquivo configure in AC INIT arl c AC PROG CXX AC LANG AC PROG MAKE SET AC CHECK LIB ncurses main AC MSG ERROR Instale ncurses AC OUTPUT Makefile Arquivo Makefile in CXX QCXXA CFLAGS QCXXFLAGSA LDFLAGS QLDFLAGSQ arl arl o CXX LDFLAGS lt o a arl o arl c CXX CXXFLAGS c lt clean RM arl o distclean RM arl config o Makefile all arl A fun o do arquivo configure in checar se o ambiente possui os requisitos b sicos necess rios para a compila o E checada a presen a de com piladores bibliotecas e depend ncias Caso os requisitos estejam resolvidos en 79 t o gerado um arquivo Makefile Este por sua vez somente ser usado na se o build respons vel pela compila o do c digo fonte e gera o dos execut veis A seguir apresentado um exemplo da se o prep que faz uso das macros setup e patch Se o P
23. distribu dos geralmente no formato tar gz Esse formato de arquivo simplesmente c digo fonte empacotado por um utilit rio como o Tar e compactado no formato Gzip Ap s obter o c di go fonte de um programa preciso descompactar e desempacotar o arquivo tar gz Somente ap s esses procedimentos poss vel realizar a compila o Na 1 Um utilit rio para empacotamento de arquivos usado em sistemas GNU Linux Acr nimo de Tape Archive 2 Umutilit rio usado para compactar arquivos no sistema GNU Linux compila o s o gerados arquivos execut veis que podem ser instalados no siste ma e enfim serem executados pelo computador No GNU Linux esses processos envolvidos na compila o podem ser feitos manualmente atrav s de comandos do operador no terminal e exigem am plo conhecimento do funcionamento do sistema Desta forma para usu rios menos experientes esses processos s o difi cultadores na amplia o do uso de sistemas GNU Linux Obter os arquivos de c digo fonte escolher os locais de instala o configurar e realizar a compila o s o processos relativamente complexos Al m disso para realizar esse processo de compila o o ambiente do sistema deve estar configurado com a presen a de uma s rie de requisitos tais como arquivos de bibliotecas de desenvolvimento compiladores editores de li ga o e outros programas envolvidos nos processos de compila o Deste modo exigido um esfor o na a
24. faz pas sar por um produtor de pacotes 88 Detalhes do funcionamento do GnuPG ou sobre criptografia de chave p blica est o fora do escopo deste trabalho Mais informa es sobre GnuPG po dem ser obtidas na documenta o de GnuPG Informa es sobre a tecnologia de criptografia de chave p blica podem ser obtidas em Tanenbaum 2003 Uma vez que n o recomend vel gerar pacotes autenticado como o su perusu rio preciso realizar uma s rie de procedimentos para ajustar o ambien te de um usu rio comum que far o papel de empacotador Esses ajustes s o para configurar GnuPG e para criar o par de chaves p blica e privada A primeira vez que GnuPG executado por um usu rio comum automa ticamente criada uma estrutura de diret rios para abrigar as chaves e os chavei ros deste usu rio Basta invocar o programa gpg como no exemplo seguinte gpg gpg directory home empacotador gnupg created gpg criado novo ficheiro de configura o home empacotador gnupg gpg conf gpg AVISO op es em home empacotador gnupg gpg conf ainda n o est o activas nesta execu o gpg porta chaves home empacotador gnupg secring gpg criado gpg porta chaves home empacotador gnupg pubring gpg criado gpg V em frente e digite sua mensagem CTRL C gpg Interrupt caught exiting Ap s invocar o programa gpg criado o diret rio oculto gnupg o ar quivo personalizado de configura o gp
25. informa es sobre o pacote al m da vers o revis o ou arquitetura Nesse exemplo o nome kernel smp indica que este um pacote pr prio para uso em computadores com suporte a SMP Segundo Tanenbaum 2001 sistemas SMP s o computadores que pos suem mais de um processador sejam estes reais f sicos ou virtuais l gicos e al m disto compartilham o mesmo barramento e a mesma rea de mem ria RAM Deste modo baseado no nome do pacote fica evidente que este arquivo deve ser instalado em um sistema com estas caracter sticas Este nome de arqui vo indica que este Kernel possui caracter sticas apropriadas aos sistemas SMP O segundo componente do nome de arquivo de um pacote a vers o A vers o formada por uma s rie num rica que representa a evolu o deste aplica tivo ao longo de seu desenvolvimento Um n mero de vers o normalmente incrementado quando um aplicativo recebe revis es importantes ou quando mo difica es t o significativas s o feitas que podem at torn lo incompat vel com suas vers es anteriores 11 SMP Symmetric MultiProcessing acr nimo para Multiprocessamento Sim trico 19 Segundo Guru Labs 2005 o campo da vers o deve conter somente n meros A inclus o de letras n o aceita e ir causar erros nas ferramentas que manipulam estes nomes de pacotes A indica o de n mero de vers o uma ca racter stica definida pelo desenvolvedor do aplicativo N o existem re
26. integridade atrav s das op es de seguran a Nesta se o ser demonstrado como criar um par de chaves uma p bli ca e outra privada que ser o usadas para assinar e checar as assinaturas dos pa cotes produzidos neste trabalho A fun o destas chaves assinar digitalmente os pacotes garantindo a integridade de seu conte do e a autenticidade do pacote A assinatura de pacotes n o obrigat ria entretanto por motivos bvios de seguran a recomendado usar somente pacotes que possam ser checados atrav s de suas assinaturas digitais O risco de instalar um programa com c digo malicioso consider vel Desta maneira faz parte do conjunto de boas pol ticas de um administrador trabalhar preferencialmente com pacotes assinados e de fornecedores que sejam comprovadamente seguros Ao desenvolver pacotes o correto fornecer uma chave p blica para que os usu rios de seus pacotes possam proceder a checagem da sua autenticidade e da sua integridade De acordo com Guru Labs 2005 a quest o das assinaturas digitais de pacotes pode ser assim descrita RPM fornece a capacidade de assinar digitalmente os pacotes gerados usando a tecnologia de criptografia de chave p blica de GPG Assinaturas digi tais s o importantes para que os usu rios dos seus pacotes possam checar a inte gridade e autenticidade dos mesmos Assim se certificam que n o esta instalan do um pacote que possui c digo malicioso criado por um usu rio que se
27. o se o BUILD build make 7 4 4 Se o de instala o install Ap s conclu do o processo de compila o do aplicativo os arquivos exe cut veis gerados est o armazenados em um diret rio usado para realizar esse processo Esses arquivos n o podem ser empacotados desta forma preciso cri ar uma hierarquia de diret rios id ntica hierarquia que esses arquivos encon trar o ao serem instalados em um sistema GNU Linux Entretanto usar a estrutura de diret rios original do sistema hospedeiro onde o pacote est sendo montado n o uma id ia pr tica Uma vez que n o recomend vel construir pacotes como superusu rio ent o n o poss vel utilizar a estrutura de diret rios real do sistema Al m disso proceder desta forma impli caria em quest es de seguran a pois caso esse processo resultasse em erros o sistema hospedeiro ficaria danificado A solu o criar uma estrutura de diret rios virtual por m id ntica hi erarquia de diret rios real que o programa encontrar ao ser instalado O sistema RPM oferece duas vari veis de ambiente para realizar estas tarefas cujos nomes s o bastante semelhantes mas com fun es distintas A primeira vari vel RPM BUILD DIR usada para referenciar o dire t rio onde o programa ser compilado Normalmente o valor desta vari vel HOME rpmbuild BUILD este um diret rio criado exatamente para receber os arquivos gerados durante o proces
28. o armazenar uma assinatura digital gerada a partir de criptografia de chave p bli ca ou a partir de um sum rio de mensagens como MDS5 cuja fun o garantir a integridade do pacote e de seus arquivos O cabe alho se constitui de blocos de dados que funcionam como uma etiqueta para fornecer informa es sobre o pacote S o encontradas nessa se o informa es sobre por exemplo n mero de vers o descri o do pacote e tipo de licenciamento O conte do payload a se o que armazena os arquivos a serem insta lados pelo pacote Essa se o respons vel pela carga til de um pacote pois os arquivos contidos nessa se o s o instalados quando um pacote instalado Arquivos nessa se o s o compactados no formato gzip Uma vez descompacta dos esses arquivos est o no formato de arquivo compat vel com cpio podendo ser extra dos com o utilit rio rpm2cpio 16 Segundo Tanenbaum 2003 MDS o acr nimo para Message Digest 5 ou sum rio de mensagens vers o 5 um tipo de checagem para validar arquivos e garantir a integridade de seu conte do 25 3 Pacotes RPM e SRPM Detalhes e formas de uso 3 1 Os tipos de pacotes RPM e SRPM Segundo Foster Johnson 2005 s o dois os tipos de pacotes RPM que podem ser usados por um administrador os pacotes bin rios conhecidos por RPM e os pacotes fonte chamados de SRPM Cada um destes possui fun es distintas e tamb m s o diferentes qu
29. os projetistas de RPM implantaram as mesmas facilida des encontradas no modo de instala o tamb m no modo de remo o de pacotes Apesar da remo o de pacotes n o ser uma tarefa muito comum em sis temas servidores em ambientes de testes ou em uma esta o de trabalho para uso pessoal a remo o de pacotes rotineira comum nestes casos experi mentar um programa e desistir de utiliz lo pouco tempo depois Para um usu rio comum pode n o ser t o vis vel a vantagem de ter um sistema como RPM controlando a remo o de programas do sistema O usu rio leigo pode pensar que o mais simples remover o diret rio de instala o e est resolvida a quest o da exclus o de um programa Mas n o t o simples assim A remo o de um conjunto de arquivos pode fazer com que outros programas tamb m parem de funcionar Os sistemas 66 GNU Linux s o fortemente baseados em compartilhamento de rotinas atrav s de arquivos de bibliotecas de fun es Entretanto se por um lado um dos grandes trunfos introduzidos pelo sistema de gerenciamento de pacotes RPM a checagem das depend ncias du rante a instala o por outro tamb m importante a seguran a trazida pelo siste ma durante a remo o de um programa Atrav s de estrito controle das rela es entre os pacotes RPM pode detectar e impedir a remo o de qualquer pacote que seja requerido por outro para funcionar corretamente Deste modo o sistema impede que
30. pa cotes RPM esses nomes n o s o aleat rios ou insignificantes De acordo com Guru Labs 2005 a nomenclatura de um pacote RPM padronizada e fornece uma s rie de informa es sobre o aplicativo que est empacotado A estrutura de nomes de arquivos de pacotes RPM possui o seguinte padr o NOME VERS O REVIS O ARQUITETURA RPM Deste modo um nome de arquivo de um pacote RPM formado por cin co partes b sicas que s o separadas umas das outras por tra os ou pontos S o constituintes do nome de arquivo de pacote RPM o nome do apli cativo a vers o a revis o a arquitetura e a extens o de arquivo Desta maneira quando se avalia um nome de arquivo de um pacote RPM poss vel identificar detalhes desses componentes comuns na forma o do nome A partir dessas par t culas que formam o nome pode se extrair variadas informa es sobre o pacote em quest o S o exemplos v lidos de nomes de pacotes v kernel smp 2 4 18 3 1586 rpm v vpbind 1 19 0 1386 rpm v vp tools 2 9 0 1386 rpm v vyum 2 6 0 1 noarch rpm O nome do pacote geralmente identifica a aplica o que est empacota da No caso do pacote ypbind 1 19 0 1386 rpm ele identifica uma conhecida aplica o denominada NIS Network Information Service O NIS era original 16 9 mente chamado de p ginas amarelas Yellow Pages Contudo essa era uma marca registrada da Sun Microsystems ent o o nome foi alterado para NIS Entretanto
31. pequenos ajustes ou corre es no aplicativo ou mesmo no pacote Assim a vers o do aplicativo perma nece a mesma mas uma revis o foi feita para corrigir problemas com o aplicati vo ou com o pacote As revis es tamb m podem indicar que o desenvolvedor 20 13 14 aplicou uma nova atualiza o patch desenvolvida para aquela vers o O quarto componente do nome de arquivo de um pacote a arquitetura A arquitetura identifica o tipo de processador para o qual o pacote foi constru do Pacotes constru dos para um determinado tipo de CPU podem n o funcio nar plenamente em outro tipo de CPU Isso ocorre porque durante o processo de constru o do pacote caracter sticas espec ficas existentes em uma CPU s o ati vadas no processo de compila o do aplicativo Deste modo um pacote cons tru do para uma arquitetura espec fica pode utilizar recursos ou fun es pr prias dessa arquitetura com maior desempenho Outro ponto importante diferenciar os conceitos de plataforma de computadores de arquitetura de processadores Segundo Intel 2006 ar quitetura o projeto b sico de um microprocessador Pode englobar a tecnologia de processos e ou outros aperfei oamentos da arquitetura Por exemplo os processadores Pentium 3 e Pentium 4 ambos produzi dos pela Intel possuem diferentes arquiteturas ou seja seus projetos b sicos s o diferentes De acordo com as defini es de Foster Johnson 2005
32. plataforma defi ne uma fam lia de processadores que apresentam arquiteturas diferentes entre si mas que entretanto mant m uma similaridade m nima para formarem uma pla taforma Por exemplo a plataforma denominada Intel compat vel 32 bits apresenta uma s rie de fam lias de processadores como i386 1486 1586 e 1686 Estes por sua vez podem ou n o ser do mesmo fabricante mas certamen te s o da mesma plataforma apesar das arquiteturas diversas Outros exemplos a fam lia de processadores Duron produzidos pela AMD e a fam lia Segundo D gitro 2006 em computa o um patch uma atualiza o de software para corre o de problemas bugs de um programa ou para melhorar a performance ou usabilidade deste Segundo D gitro 2006 CPU o acr nimo para Central Processing Unit o c rebro do computador tamb m referido como processador ou processador central AMD um concorrente da Intel na produ o de processadores Pode ser localizado em www amd com br 21 de processadores Celeron produzidos pela Intel s o ambos da mesma platafor ma Todavia eles s o de fabricantes distintos e t m arquiteturas tamb m distin tas Mesmo assim pertencem mesma plataforma denominada Intel compat vel 32 bits pois possuem um conjunto m nimo de instru es que os tornam com pat veis Ambos podem ser utilizados para executar um sistema operacional como o GNU Linux compilado para a plataforma Intel compat vel 3
33. seguran a dos diret rios e arquivos a serem instalados De acordo com Silva 2006 as permiss es de seguran a s o os atributos relativos seguran a do sis tema de arquivos que impedem que usu rios mal intencionados realizem opera es indevidas com os arquivos As opera es mais comuns com arquivos s o ler editar gravar apagar e copiar Para realizar uma dessas opera es o usu rio deve ser explicitamente autorizado Desta maneira as permiss es de seguran a definem o comportamen to do sistema sempre que um usu rio tenta acessar um arquivo para realizar uma dessas opera es S o essas permiss es que determinam se a opera o liberada ou bloqueada para o usu rio que solicitou a opera o Para entender o completo funcionamento das permiss es consulte Silva 2006 Parte dos par metros pr configurados no pacote podem ser personaliza dos pelo administrador no momento da instala o Um exemplo o diret rio de instala o do aplicativo Contudo recomend vel n o alterar essas pr configu ra es e procurar usar a configura o padr o 14 8 2 2 O formato RPM de empacotamento Na avalia o de Nemeth 2004 entre os sistemas de empacotamento RPM Red Hat Package Manager e DEB Debian que s o funcionalmente id nticos batalhas foram travadas para definir o melhor formato Na pr tica o formato RPM parece ter vencido a guerra Uma das raz es dessa afirma o no
34. sobre constru o de pacotes RPM vista neste traba lho a demonstra o pr tica da constru o dos pacotes do programa exemplo ARL possibilita testar os conhecimentos adquiridos Antes de iniciar a constru o de pacotes RPM preciso certificar se da exist ncia dos requisitos e das configura es necess rias De acordo com Guru Labs 2005 os seguintes pacotes devem estar ins talados e s o b sicos para o desenvolvimento de programas gcc gec c make bison e binutils Al m destes as bibliotecas de desenvolvimento usa das tamb m devem estar presentes Por estar fora do escopo deste trabalho indi car passo a passo a constru o de um ambiente de desenvolvimento o modo mais simples de obter este ambiente instalar o sistema GNU Linux com o per fil de desenvolvimento As principais distribui es GNU Linux possuem este perfil para instala o Al m disto a partir da vers o 4 x o sistema RPM passou a ser distribui do em uma s rie de pacotes de acordo com as finalidades dos utilit rios O utili t rio encarregado de proceder a constru o dos pacotes rpmbuild que insta lado pelo pacote rpm build Portanto este pacote deve ser instalado no sistema Outro pacote que deve ser instalado no caso da distribui o Fedora Core o pacote fedora rpmdevtools que implementa v rios utilit rios usados na constru o de pacotes Conforme afirmado anteriormente n o recomend vel construir pacotes usando o s
35. tente e O modo de restaura o freshen utilizado quando necess rio atu alizar um pacote caso Isso significa que se n o existir uma vers o ante rior deste programa instalada ent o o sistema encerra sem instalar qual quer arquivo Essa a diferen a b sica entre os modos de atualiza o e de restaura o O significado da palavra restaura o neste contexto tem o sentido de deixar novo ou refrescar Neste sentido se aproxima mais do termo atualiza o Assim enquanto o modo de instala o instala o modo de atualiza o atualiza ou instala o modo de restaura o somente atualiza um pacote Apesar das diferen as sutis de cada caso preciso estar atento para qual op o usar De acordo com Foster Johnson 2005 tanto a op o U ou i podem ser usadas para instalar um pacote Ambas realizam uma s rie de passos que permi tem preparar o sistema para a instala o instalar e realizar ajustes ap s uma ins tala o Esses passos s o descritos do seguinte modo e Checagem das depend ncias necess rias para o pacote funcionar e Checagem por eventuais pacotes que possam representar conflitos e Realiza o de tarefas de pr instala o como a cria o de diret rios e Descompress o dos arquivos do pacote que se encontram no formato Gzip diretamente em seus diret rios de instala o e Realiza o de tarefas de p s instala o como a remo o de arquivos tempor rios usad
36. 102 10 Conclus o A instala o de aplicativos em sistemas GNU Linux uma tarefa com plexa que requer amplos conhecimentos sobre compila o de programas e sobre a estrutura de diret rios do sistema No passado diversos sistemas do tipo Unix possu am ferramentas para facilitar a ger ncia de programas instalados Todavia essas tentativas de desenvolvimento de sistemas de gerenciamento de pacotes n o foram bem sucedidas por diversos motivos tais como n o preservavam o c digo fonte e n o possu am suporte para m ltiplas arquiteturas Desta maneira esses aplicativos deixam a desejar e n o se tornaram um padr o de facto como RPM acabou sendo Baseada nestas dificuldades a empresa Red Hat planejou e financiou o desenvolvimento de um sistema de empacotamento que tivesse como filosofia a facilidade de uso tanto para usu rios quanto para desenvolvedores de pacotes O sistema RPM foi projetado por especialistas que reuniram o conhecimento acu mulado com os erros de desenvolvimento dos sistemas anteriores e objetivaram solucionar a maior parte dos problemas encontrados nessas ferramentas O sistema RPM fornece um conjunto de m todos para manipular paco tes mantendo as informa es em uma base de dados que pode ser consultada Diversas caracter sticas vistas ao longo deste trabalho demonstram que RPM um sistema bastante funcional e flex vel do ponto de vista dos administradores de sistemas GNU Linux A gama de op es para c
37. 2 bits mas n o podem executar o GNU Linux compilado para outra plataforma por exem plo Power PC Desta forma a escolha de pacotes deve sempre ser compat vel com a ar quitetura do processador onde ser o executados O desempenho dos aplicativos desses pacote ser maior em fun o de terem sido constru dos objetivando o uso de caracter sticas especiais de um determinado processador Processadores da ar quitetura 1686 por exemplo t m capacidade para executar programas compila dos para as arquiteturas 1386 1486 1586 e 1686 A cada nova arquitetura lan ada por um fabricante as caracter sticas das arquiteturas anteriores s o en globadas e expandidas No caso da instala o de um pacote constru do para a arquitetura 1386 em um computador cujo processador seja da s rie 1686 diversos recursos avan ados presentes nesse tipo de CPU e que poderiam ser utilizados podem ter sido desativados na compila o do aplicativo O impacto no desempenho ser sentido durante a execu o do aplicativo ou mesmo em caracter sticas funcionais do aplicativo que podem ser inclusive completamente desativadas Determinados aplicativos podem exigir uma certa arquitetura para serem totalmente funcionais isso ocorre caso fa am uso de instru es exclusivas dessa arquitetura comum que algumas distribui es somente disponibilizem pacotes para a arquitetura 1386 Esse tipo de pacote da arquitetura i386 pode ter um me nor desempenho em sistemas co
38. Com binando os par metros das op es de sele o e de consulta definida a sintaxe b sica do modo de consulta descrita por Ewing et al 2002 do seguinte modo rpm q query select options query options OP ES DE SELE O POR PACOTE rpm q query PACKAGE NAME Consulta se existe na base um pacote cujo nome indicado por PACKAGE NA ME rpm q bash bash 3 1 6 2 a all Consulta o nome dos pacotes instalados em um sistema rpm qa curl devel 7 15 libvorbis 1 1 2 rsync 2 6 6 2 2 gnome menus 2 13 5 5 2 gtk2 engines 2 7 4 T bash 3 1 6 2 As demais sa das foram omitidas f file FILE Consulta qual o pacote instalou o arquivo especificado em FILE Deste modo poss vel relacionar um arquivo com um pacote 48 rpm qf bin bash bash 3 1 6 2 fileid MD5 Consulta qual arquivo possui um determinado sum rio MDS retornando o nome do pacote que instalou o arquivo rpm q fileid 50b0fbd6e5f6c0754255ed25c83ae509 bash 3 1 6 2 g group GROUP Consulta os pacotes que pertencem a um determinado grupo A rela o completa dos grupos suportados no Fedora Core pode ser obtida em usr share doc rpm 4 4 2 GROUP rpm q group System Environment Shells tcsh 6 14 5 2 1 bash 3 1 6 2 hdrid SHA1 Consulta qual pacote possui uma assinatura SHAI Nota Essa assinatura imut vel e faz parte do cabe alho do pacote p package PACKAGE FILE A flexibilidade de RPM perm
39. QDN por exemplo ftp fedora com sendo que esse endere o deve ser resolvido por um servidor de nomes de dom nio DNS Tamb m poss vel indicar diretamente um endere o IPv4 Internet Protocol vers o 4 na forma decimal por exemplo 200 245 64 1 Normalmente RPM tenta acesso ao servi o utilizando a porta TCP pa dr o No caso de servidores FTP 21 a porta padr o Os servidores HTTP utili URL Uniform Resource Locator um ponteiro que indica uma informa o espec fica dispon vel na Internet As URL s o comumente conhecidas como endere os eletr nicos FQDN Acr nimo para Fully Qualified Domain Name ou Nome de Dom nio Totalmente Qualificado DNS Acr nimo para Domain Name System ou Sistema de Nomes de dom nios 31 zam a porta 80 como padr o para seu funcionamento Caso o servi o seja ofere cido em uma porta que n o seja padr o necess rio especificar tamb m qual esse n mero de porta O caminho at o pacote pode incluir uma s rie de diret ri os e sub diret rios al m do nome do pr prio pacote Essas rotas e nomes de vem ser corretamente grafados levando se em considera o mai sculas e mi n sculas bem como incluir a extens o do arquivo desejado Segundo Ewing et al 2002 caso seja usado um servidor proxy para FTP ou HTTP as informa es sobre o endere o e o n mero da porta do servidor proxy podem ser especificadas do seguinte modo ftpproxy HOST O host definido
40. REP prep setup cd _topdir patch P 0 cd RPM_BUILD_DIR name version configure 7 4 3 Se o de compila o bui ld Uma vez que o c digo fonte est ajustado chegado o momento da compila o Essa tarefa realizada na se o build Essa se o n o possui ma cros somente s o usados comandos de terminal relacionados com o processo de compila o Par metros podem ser passados para o compilador atrav s de co mandos usados nessa se o Normalmente os programas possuem uma docu menta o sobre como proceder sua compila o e instala o Essa se o deve se guir essas instru es de acordo com o que o desenvolvedor definiu Nos casos em que o programa oferece as facilidades das ferramentas au totools fornecido o script Makefile respons vel pela compila o do progra ma Segundo Bailey 2000 essa se o se resume a um comando make ou algo mais complexo caso o programa requeira Entretanto a maioria dos programas atuais s o preparados deste modo Para ilustrar o funcionamento da se o build foram anteriormente es critos os arquivos configure in e makefile in A ferramenta autoconf usada para gerar os scripts configure e Makefile Isso torna o processo de compila o do programa exemplo ar1 totalmente autom tico 80 Assim a se o build neste caso se resume ao comando make que far o processo de compila o A seguir apresentado um exemplo dessa se
41. a Uch a 2003 a maior parte dos programas maliciosos existentes s o h bridos dessas tr s categorias de pragas Desta maneira eles podem explo rar as melhores caracter sticas de cada um desses tipos de praga virtual Em con sequ ncia essas pragas virtuais v rus seguem se propagando atrav s de redes como a Internet aproveitando se das falhas em sistemas para se instalar ver mes ou ficam ocultas dentro dos sistemas cavalos de Tr ia para cometer il ci tos eletr nicos Deste modo invasores de sistemas computacionais inicialmente podem distribuir seu c digo malicioso inclu do em pacotes de programas Mais tarde ao serem executados esses programas iniciam ou facilitam a execu o de um ataque Isso poss vel pois o c digo malicioso pode criar verdadeiros buracos na seguran a do sistema expondo falhas que levam a um ataque remoto Programas distribu dos no formato de pacotes como os RPM s o exce lentes locais para esconder essas pragas virtuais Como os sistemas GNU Linux s o baseados em sua grande maioria em programas de c digo aberto poss vel introduzir mudan as no c digo fonte compilar e distribuir pacotes adulterados Pensando exatamente na seguran a dos sistemas em rela o possibili dade de inje o de c digo malicioso dentro de pacotes foram criados mecanis mos para garantir a integridade dos pacotes e dos arquivos distribu dos atrav s de pacotes RPM Essa seguran a totalmente
42. a instala o se torne inconsistente por causa da remo o indevida de um pacote O processo de remo o um modo simples para eliminar qualquer vesti gio de um pacote instalado em um sistema Ainda existem as op es de pr e p s remo o Essas op es permitem manter o controle do que deve ser feito an tes durante e depois que um pacote removido Como demonstra Foster John son 2005 as macros preun e postun s o executadas antes e ap s um pro cesso de desinstala o ajustando o ambiente enquanto um pacote preparado para ser removido ou ap s essa remo o De acordo com Bailey 2000 uma s rie de passos s o realizados para que um pacote possa ser removido do sistema com um nico comando e Uma checagem na base de dados confirmando as depend ncias e executado um roteiro script de pr remo o Caso exista um e feita uma checagem para verificar se os arquivos de configura o do pacote foram alterados Caso positivo feita uma c pia de seguran a desses arquivos com seu nome alterado e checado se cada arquivo listado como parte deste pacote exclusivo do pacote ou compartilhado com outros pacotes Somente no caso em que seja exclusivo ent o o arquivo removido 67 e E executado um roteiro script de p s remo o Caso exista um e Remo o de todos os registros referentes ao pacote da base de dados Conforme relaciona Ewing et al 2002 o formato geral de um
43. a se o de um arquivo spec considerada um est gio da constru o de um pacote Assim poss vel manipular a constru o de um pacote executando as se es em uma certa ordem conforme elas v o sendo escritas e resolvidas A sintaxe geral de rpmbuild rpmbuild bSTAGE tSTAGE rpmbuild options SPEC Os est gios definidos com a op o b build s o usados quando h um arquivo spec externo Os est gios usados com a op o t tarball s o usados quando o desenvolvedor disponibilizou junto ao arquivo do tipo tar gz um ar quivo do tipo spec que tamb m auxilia a constru o de pacotes Normalmente as op es de constru o build s o mais usadas O mais comum construir pacotes bin rios a partir de pacotes fonte do tipo SRPM As op es de constru o s o definidas no Quadro 5 de acordo com as informa es de Ewing et al 2002 94 Quadro 5 Op es de constru o de pacotes de rpmbuild Op o Op o Est gios Executados Pacotes Gerados ba ta prep build e install Bin rio e Fonte bb tb prep build e install Somente Bin rio bp tp prep Nenhum bc tc prep build Nenhum bi ti prep build e install Nenhum bl Il Faz um check list em files Nenhum bs ts Nenhum Somente Fonte Essas op es podem ser usadas durante a depura o de um arquivo do tipo spec Deste modo a sintaxe pode ser checada passo a passo em
44. anto ao modo de trabalhar com eles Segundo Guru Labs 2005 os pacotes bin rios s o aqueles que normal mente s o usados para instalar um aplicativo diretamente no sistema Segundo Foster Johnson 2005 esses pacotes s o uma aplica o completa ou bibliotecas de fun o compiladas para uma arquitetura particular Esses pacotes bin rios s o aplica es que podem ou n o depender da instala o de outros pacotes para se rem executados Esses arquivos que fornecem fun es para outros programas s o chama dos de depend ncias e s o distribu dos na forma de pacotes bin rios Normal mente uma depend ncia uma biblioteca mas n o obrigatoriamente podendo ser um aplicativo qualquer necess rio para o funcionamento de outro programa Deste modo pode se observar que pacotes bin rios possuem programas que s o previamente compilados e est o prontos para serem instalados em uma arquite tura espec fica Em contrapartida pacotes fonte cont m a aplica o no formato de arquivo de c digo fonte De acordo com Guru Labs 2005 o sistema RPM pode trabalhar com arquivos de pacotes fonte denominados SRPMs Source RPMs usando os para construir um pacote bin rio para uma arquitetura espec fica Assim como citado anteriormente as distribui es GNU Linux s o for madas por pacotes gen ricos para a arquitetura 1386 Desta maneira n o apro veitam as funcionalidades dos processadores de ltima gera o e n o utilizam
45. ar com criptografia tas como o PGP Pretty Good Privacy ou GnuPG Quando exportada uma chave vista como um bloco de texto puro inserido em uma armadura de caracteres do tipo ASCIT Por exemplo o arquivo da chave p blica do reposit rio extras do Fedo ra Core instalado no diret rio etc pki rpm gpg cujo nome RPM GPG KEy fedora extras e t m como conte do uma chave p blica Este arquivo pode ser usado para validar pacotes obtidos seja via FTP ou HTTP deste repo sit rio n o oficial Entretanto para que rpm possa validar os pacotes obtidos atrav s de re posit rios de terceiros ou n o oficiais preciso importar a chave p blica dis ponibilizada pelo empacotador Em sistemas Fedora Core 5 importar a chave equivalente a instalar um pacote chamado gpg pubkey x onde x o identifica dor da chave Ap s o processo de importa o uma chave pode ser consultada ou exclu da usando os mesmos recursos dispon veis para manipular pacotes Na maioria das vezes a chave pode ser obtida diretamente do site do re posit rio nos discos de instala o ou atrav s de pacotes RPM criados com a fi nalidade de distribuir arquivos de chaves p blicas Informa es sobre GPG podem ser obtidas em http www gnupg org documentation PGP usa o algoritmo IDEA International Data Encryption Algorithm que patenteado Por esta raz o n o considerado totalmente software livre Deste modo GPG mais comu
46. as como arquivos Ap s sua instala o a base de dados armazena informa es apenas sobre pacotes e pacotes n o pos suem extens o Deste modo o arquivo yp tools 2 9 0 1386 rpm conceitual mente diferente do pacote implementado por ele que neste caso chamado yp tools 2 9 0 1386 Compreender a nomenclatura de pacotes e entender a diferencia o entre nomes de arquivos e nomes de pacotes importante para entender o funciona mento das consultas base de dados RPM A seguir apresenta se um exemplo de consulta que utiliza o nome composto do pacote como par metro de pesquisa rpm q vp tools vp tools 2 9 0 10 Acr nimo para Request for Comment S o documentos que a descrevem segundo uma padroniza o t cnica 18 Essa consulta retorna como resposta o nome vp tools a vers o 2 9 e a revis o 0 do pacote poss vel tamb m consultar as informa es sobre a arquitetura para a qual o pacote foi constru do Para isso basta utilizar uma sintaxe mais complexa na consulta Normalmente essa informa o omiti da pois um pacote instalado somente pode pertencer a uma arquitetura compati vel com a m quina consultada No exemplo seguinte a arquitetura consultada i386 denominada como Intel compat vel 32 bit rpm q vyp tools qf name version release arch n vp tools 2 9 0 1386 Observando um nome de arquivo tal como kernel smp 2 4 18 3 1586 rpm poss vel extrair outros tipos de
47. cluir os registros sobre os pacotes nessa base de dados No Quadro 3 est o relacionados os modos de opera o de RPM poss vel observar que cada modo de opera o acompanhado de um conjunto de par metros Esses situados entre colchetes s o opcionais e podem ser combi nados entre si para obten o de um resultado desejado Os modos de opera o e os par metros podem ser identificados por seu nome curto ou por um nome lon go como usual na maioria dos comandos e par metros do shell do GNU Linux Quadro 3 Sintaxe dos Modos B sicos de Opera o de rpm Opera o Fun o Sintaxe Query Consulta rpm q query select options query options Verify Verifica rpm V verify select options verify options Install Instala rpm i l install install options PACKAGE FILE Upgrade Atualiza rpm U upgrade install options PACKAGE FILE Freshen Restaura rpm F freshen install options PACKAGE FILE Erase Remove rpm e erase allmatches nodeps noscripts notriggers repackage test Check Seguran a rpm K checksig nosignature nodigest 44 Segundo Ewing et al 2002 al m dos modos b sicos de opera o existe um conjunto de par metros que s o considerados op es gerais Essas op es s o usadas separadamente dos modos de opera o saber help Imprime uma longa lista de ajuda sobre v r
48. coman do de remo o usando rpm rpm e erase op es PACKAGE NAME As seguintes op es podem ser usadas allmatches Remove as vers es do pacote que combinam com a vari vel PACKAGE NAME Se v rios pacotes combinam com o valor desta vari vel e for tentada a remo o sem usar essa op o ent o uma mensagem de erro exibida rpm e allmatch gpg pubkey nodeps N o checa as depend ncias antes de desinstalar um pacote noscripts nopreun nopostun N o executa as macros de mesmo nome A op o noscripts usada durante a remo o de pacotes equivalente a nopreun nopostun e desativa a execu o das seguintes macros preun e postun 68 notriggers notriggerun notriggerpostun N o executa qualquer macro gatilho trigger do tipo determinado A op o notriggers equivalente a notriggerun notriggerpostun e desa tiva a execu o das macros Wtriggerun e triggerpostun repackage Reempacota os arquivos antes de apag los O pacote previamente instalado ser renomeado de acordo como o valor da macro repackage name fmt e ser criado no diret rio definido pela macro repackage dir o valor padr o para este par metro var spool repackage Esta op o reconstr i um pacote antes de remov lo Pacotes assim n o s o completos e n o devem ser instalados novamente test N o desinstala realmente um pacote apenas simula a remo o
49. comando usado para exibir a data e a hora local de um sistema GNU Linux Se o PREP prep setup cd _topdir patch P 0 cd RPM_BUILD_DIR name version configure Se o BUILD 86 bui ld make Sec o INSTALL install rm rf RPM_BUILD_ROOT mkdir p RPM_BUILD_ROOT RPM_DOC_DIR name version mkdir p RPM BUILD ROOT usr local bin cp RPM BUILD DIR f name fversion arl RPM BUILD ROOT usr local bin arl cp RPM BUILD DIR f name fversiony arl html RPM BUILD ROOT RPM DOC DIR fname Yfversiony arl html cp RPM BUILD DIR f name fversion rpm logo png RPM BUILD ROOT RPM DOC DIR iname Niversiont rpm logo png Se o CLEAN clean rm rf RPM_BUILD_ROOT Se o FILES files defattr root root usr local bin arl doc usr share doc iname iversion arl html doc usr share doc iname iversiont rpm logo png Se o CHANGELOG changelog Coment rio sobre o changelog Sat Aug 5 2006 14 18 08 unasi lt unasi arl nospam com gt Retirado o bug da linha extra 000001 Refeito o arquivo spec para apresenta o 87 8 O ambiente de produ o de pacotes RPM 8 1 Gera o de um par de chaves p blicas Anteriormente foram demonstrados os processos de importa o de uma chave p blica para o chaveiro de RPM Deste modo pacotes obtidos de fornece dores cuja chave p blica estivesse no chaveiro de RPM poderiam ser checados quanto a autenticidade e
50. dministra o do sistema para que seja poss vel trabalhar com arquivos de c digo fonte Al m das quest es relati vas ao processo de compila o sistemas que n o utilizam uma forma de geren ciamento de pacotes s o mais dif ceis de serem atualizados e mantidos pelo ad ministrador A maioria dos usu rios precisa usar o sistema GNU Linux apenas para editar um texto ler o correio eletr nico ou acessar a Internet Esses usu rios n o devem se tornar especialistas em sistemas de computa o apenas para con seguir utilizar seus aplicativos Mesmo administradores de sistemas podem perder muito tempo produti vo com esses detalhes Seus empregadores podem n o estar dispostos a pagar pelo tempo gasto para instalar e manter um grupo de programas manualmente Essas caracter sticas tornam a instala o atualiza o e remo o de aplicativos em sistemas GNU Linux um processo lento e bastante t cnico Contudo foram desenvolvidas ferramentas que possibilitam um melhor gerenciamento dos aplicativos instalados no sistema Os aplicativos podem ser distribu dos em um formato pronto para a instala o o que elimina esses proce dimentos manuais de instala o e a complexa opera o de compila o Esse for mato de distribui o de aplicativos chamado de empacotamento de aplicativos Assim um pacote um arquivo cujo conte do um aplicativo pronto para ser instalado em um sistema Segundo Nemeth 2004 os formatos de pacotes mais
51. do permite que aprendendo alguns pou cos comandos seja poss vel trabalhar eficientemente com a ferramenta Usu rios avan ados e desenvolvedores ter o suporte das v rias op es de uso que permitem integrar RPM a aplicativos e personalizar as consultas de modo que o ambiente seja checado de acordo com as necessidades pessoais de cada administrador Desta maneira a indica o do uso RPM para administradores de siste mas GNU Linux fato consumado Os benef cios no uso do sistema s o amplos a documenta o do sistema consistente e seu desenvolvimento permanente O dom nio de uma ferramenta como RPM representa mais seguran a es tabilidade e praticidade para administradores que est o envolvidos na ger ncia de ambientes com muitas m quinas ou que requerem um controle restrito sobre os programas instalados 105 REFER NCIAS BIBLIOGR FICAS BAILEY Edward C Maximum RPM on line 2000 Copyright Red Hat Inc Dispon vel em PDF na Internet em lt http www rpm org max rpm gt CAMARGO Herlon A Automa o de Tarefas Lavras MG Editora UFLA FAEPE 2005 Cap tulo 5 p ginas 125 138 D GITRO Tecnologia Gloss rio tecnol gico on line 2006 Coordena o Eng Djan de Almeida do Ros rio desenvolvida por Adm Cl udio Brancher Kerber apresenta termos tecnol gicos na rea de telecomunica es Dispon vel na Internet em lt http www portaldigitro com br novo glossario digi
52. e de desenvolvedores Outra op o de localiza o de pacotes s o os desenvolvedores que dis ponibilizam seus pr prios reposit rios particulares Estes por sua vez podem estar fora do formato usado pelo programa de atualiza o Neste caso ainda poss vel baixar e instalar esses pacotes diretamente utilizando o pr prio sistema RPM como um cliente FTP ou HTTP Assim apesar da exist ncia de aplicativos para manipular a atualiza o de pacotes o sistema RPM tamb m pode ser usado para essa finalidade Entre tanto o uso de RPM como um sistema de atualiza o requer mais conhecimento por parte do administrador pois rpm n o capaz de resolver as depend ncias e n o atualizar update o sistema em um nico comando como o Yum ou o apt get s o capazes de fazer Caso um administrador esteja procurando por um pacote que n o encon trou nos reposit rios oficiais extras ou de terceiros que sejam de seu conheci mento pr vio poss vel utilizar as ferramentas de busca da Internet como o Google ou recorrer aos sites especializados em fornecer pacotes De acordo com Uch a Simeone et al 2003 existem v rios sites espe cializados na divulga o e distribui o de pacotes Merecem men o o Souce Forge Freshmeat e o RPMFind Este ltimo um sistema de buscas espec fico e muito eficiente para encontrar pacotes RPM podendo filtrar pacotes de acordo com v rios crit rios como distribui o arquitetura e no
53. e diret rios virtual Depois que os arquivos s o empacotados reco mend vel limpar este diret rio essa se o ser executada no fim do processo 82 Durante testes de constru o de pacotes essa se o pode ser desativada tempo rariamente Um exemplo pode ser visto a seguir clean rm rf RPM_BUILD_ROOT 7 4 6 Se o de arquivos files Ap s o processo de instala o os arquivos execut veis bibliotecas e do cumenta o est o prontos para serem empacotados Entretanto nem todos os ar quivos gerados ou usados durante a compila o far o parte do mesmo pacote Cada arquivo gerado durante a compila o ir para um tipo de pacote espec fico de acordo com sua finalidade ou mesmo n o ser o empacotados Assim arquivos bin rios de configura o e documenta o ir o para o pacote bin rio enquanto arquivos de c digo fonte patches scripts do tipo Sys tem V Init ir o para o pacote fonte Arquivos de c digo fonte de bibliotecas e ca be alhos usados pelas linguagens C ou C podem ser inclu dos em um pacote de desenvolvimento Existe ainda o pacote de depura o debug criado automa ticamente por RPM Al m disso poss vel criar sub pacotes bin rios Segundo Guru Labs 2005 essa se o lista os arquivos e diret rios que devem ser inclu dos em cada pacote listado um ou mais arquivos por li nha e caracteres curingas podem ser usados As rotas definidas nessa se o s o re
54. e secreta evita que terceiros que indevidamente tenham obtido a chave privada possam us la para assinar algo O processo de cria o da chave pode ser visto a seguir gpg gen key Por favor selecione o tipo de chave desejado 1 DSA and Elgamal default 2 DSA apenas assinatura 5 RSA apenas assinatura Sua op o 1 DSA keypair will have 1024 bits ELG E keys may be between 1024 and 4096 bits long What keysize do you want 2048 O tamanho de chave pedido 2048 bits Por favor especifique por quanto tempo a chave deve ser v lida O chave n o expira lt n gt chave expira em n dias 90 lt n gt w chave expira em n semanas lt n gt m chave expira em n meses lt n gt y chave expira em n anos A chave valida por 0 O Key does not expire at all Is this correct y N You need a user ID to identify your key the software constructs the user ID from the Real Name Comment and Email Address in this form Heinrich Heine Der Dichter lt heinrichhQduesseldorf de gt Nome completo Keynes Augusto Endere o de correio eletr nico unasilnospam com Coment rio Unasi Voc selecionou este identificador de usu rio Empacotador Unasi lt unasiQnospam com gt Muda N ome C oment rio E ndere o ou 0 k S air O Voc precisa de uma frase secreta para proteger sua chave Precisamos gerar muitos bytes aleat rios uma boa id ia realizar outra atividade digitar no teclado mover o mouse u
55. e seguran a que os administradores pre cisam para realizar suas tarefas de administra o de programas Do ponto de vista do desenvolvimento de pacotes RPM fornece as ferra mentas para que o administrador tenha a liberdade de trabalhar com pacotes fon te e reconstruir ou recompilar de modo personalizado aplicativos inteiros ape nas com uma linha de comando sem qualquer complica o t cnica ou te rica A alta padroniza o das tarefas de produ o de pacotes permite criar dis tribui es inteiras com qualidade al m de permitir a atualiza o dos pacotes com o m nimo de esfor o dos empacotadores Grande parte do sucesso do sistema RPM se deve ao fato de estar acopla do s ferramentas de desenvolvimento denominadas autotools Esse conjunto de aplicativos facilita a prepara o compila o e instala o de programas no sistema GNU Linux O sistema RPM utiliza intensamente essas ferramentas para construir seus pacotes bin rios 104 Ent o seja na vis o da ger ncia de sistemas ou na vis o de desenvolvi mento de pacotes RPM um sistema maduro cujo desenvolvimento aponta para uma estabilidade ainda maior Se pode observar pelos v rios autores consulta dos que foram elogiosos para com a ferramenta e ressaltaram seus benef cios import ncia e as facilidades oferecidas pelo sistema na ger ncia de programas A aprendizagem do uso de RPM conseguida com um treinamento r pi do A forma como o sistema idealiza
56. em HOST ser usado como um servidor PROXY para as transfe r ncias o que permite usar FTP atrav s de um FIREWALL que usa um sistema de PROXY Essa op o pode ser configuradas atrav s da macro ftpproxy ftpport PORT O n mero da porta TCP definida na op o PORT usada caso um servi dor PROXY esteja sendo usado Esta op o pode ser definida na macro Y ftpport httpproxy HOST O host definido em HOST ser usado como um servidor PROXY para as transfe r ncias usando o protocolo HTTP Essa op o pode ser definida na macro Y httpproxy httpport PORT O n mero da porta TCP que ser usada para a conex o definido em PORT Essa op o pode ser especificada na macro httpport 27 O servi o de proxy ou encaminhamento fornecido por sistemas como o Squid ou mesmo o pr prio Apache 32 4 Mecanismos de seguran a de RPM 4 1 As pragas virtuais e a seguran a dos pacotes RPM Apesar dos sistemas GNU Linux serem reconhecidos pelo timo n vel de seguran a que oferecem e pelo baixo n mero de pragas virtuais que atacam es ses sistemas sabido que nenhum sistema imune a falhas Normalmente as falhas de programa o s o as mais exploradas por pragas virtuais S o variados os tipos de ataques existentes Os nicos pontos que esses ataques t m em co mum s o visam cometer uma fraude eletr nica ou burlam a seguran a do siste ma para prover acesso ao sistema para que invasores possam realizar
57. estaurar freshen ou instalar install no vos pacotes o administrador precisar conhecer as pequenas diferen as entre es ses modos de opera o antes de utiliz los Assim essas tr s opera es apesar de conceitualmente diferentes podem ser vistas em um nico t pico pois na pr tica s o bastante similares As diferen as de cada caso v o definir realmente qual dessas opera es utilizar e O modo de instala o install usado quando um administrador deseja instalar um novo pacote no sistema Desta maneira n o havendo qualquer vers o anterior deste pacote instalada no sistema essa a op o certa para usar e O modo de atualiza o upgrade usado quando o qu um adminis trador deseja substituir um pacote instalado por uma vers o mais atual deste mesmo pacote Existindo uma vers o anterior ela ser removida do sistema para dar lugar nova vers o No caso de n o existir uma ver s o anterior instalada o sistema RPM far a instala o do pacote como uma nova instala o Desta maneira no modo de instala o o pacote instalado e n o h preocupa o com vers es anteriores RPM permite a instala o de v rias vers es diferentes do mesmo pacote mesmo que a base de dados fique inconsistente No modo de atualiza o RPM remo ver a vers o anterior Usar a op o de instala o no lugar da op o de 60 atualiza o na maioria dos casos torna a base de dados RPM inconsis
58. este modo arquivos de pacote RPM possuem um nome terminado com a extens o de arquivo rpm Arquivos de pacote possuem extens o nomes de pacotes n o a possuem Deste modo xsane gimp 0 99 2 2 1386 rpm o ar quivo RPM do pacote xsane gimp 0 99 2 2 1386 15 Algumas arquiteturas podem n o estar citadas nesse quadro devido aos constantes lan amentos de processadores 23 Quadro 1 Plataformas e arquiteturas suportadas por RPM Plataforma Arquiteturas Intel compat vel 32 bit i386 i1486 1586 1686 athlon Intel compat vel 64 bit ia64 HPAlpha alpha alphaev5 alphaev56 alphapca56 alphaev6 alphaev67 Sparc Ultra Sparc Sun sparc sparcv9 sparc64 ARM armv3l armv4b armv4l MIPS mips mipsel Power PC ppc ppciseries ppcpseries ppc64 Motorola 68000 series m68k m68kmint IBM RS6000 rs6000 IBM 5 390 i370 s390x s390 Independente noarch 24 2 4 As se es de um pacote RPM Segundo Foster Johnson 2005 um arquivo do tipo pacote RPM composto internamente por quatro se es Sendo nesta ordem rea de identifi ca o lead assinatura signature cabe alho header e conte do payload A rea de identifica o constru da de acordo com a vers o de RPM usada para construir o pacote Pode ser chamada tamb m de lead termo ingl s cujo sentido preced ncia A assinatura aparece ap s o lead e tem como fun
59. et Advanced Packaging Tool usado pelos sistemas Debian e seus derivados o urpmi usado pelo Man driva o yum Yellowdog Updater Modified usado pelo Fedora e o emerge usa do pelo Gentoo O apt get portado para sistemas RPM sendo usado em distri bui es como Conectiva A partir da disponibilidade de um sistema de atualiza o esta passa a ser a fonte secund ria para obten o de pacotes seja para insta la o ou atualiza o Atualmente o sistema de atualiza o usado pelo Fedora Core o Yum 18 CD ROM Disco compacto somente de leitura DVD Digital Versatile Disc 19 A p gina oficial do sistema yum fica em http linux duke edu yum 28 que fortemente acoplado ao RPM para encontrar baixar e atualizar ou instalar um pacote O sistema Yum pesquisa e resolve as depend ncias de um pacote an tes de sua instala o ou atualiza o Para isso o sistema utiliza o conceito de re posit rios de pacotes Reposit rio de pacotes uma cole o de pacotes dividida em diversas categorias normalmente dispon veis na Internet O reposit rio respons vel por armazenar os pacotes base que originalmente formam uma distribui o e os pa cotes referentes s atualiza es do sistema Reposit rios tamb m podem conter pacotes extras ou n o oficiais mantidos por desenvolvedores particulares Em resumo o reposit rio o local mais indicado para procurar por um pacote para sua distribui o Os reposit rios f
60. fraudes Segundo Tanenbaum 2001 uma categoria de ataques aos quais os sis temas GNU Linux s o bastante vulner veis s o os chamados ataques de dentro do sistema Dentre os v rios tipos de ataques desta categoria destaca se o ata que denominado Trojan Horse ou cavalo de Tr ia O sugestivo nome dado a esse tipo de ataque descreve o seu modo de opera o que pode ser resumido da se guinte maneira Juntamente com um programa aparentemente inocente como um jogo interessante est embutido um c digo malicioso que recebe o nome ge n rico de cavalo de Tr ia Ao ser executado esse c digo gera um comportamen to inesperado dentro do sistema podendo agir de variados modos As pragas virtuais atuam roubando informa es adulterando partes do sistema apagando dados abrindo brechas na seguran a ou danificando total mente o sistema for ando a sua reinstala o As pragas virtuais s o hoje uma re alidade no cotidiano da administra o de sistemas de computadores e redes Os administradores devem estar sempre alerta para evitar e identificar esses ataques quando acontecem fazendo da seguran a um item primordial De acordo com Uch a 2003 c digo malicioso um programa criado com finalidades mal intencionadas como facilitar uma invas o ou furtar dados 33 S o exemplos de categorias de programas maliciosos os v rus de computador os programas cavalo de Tr ia Trojan Horse e os programas vermes Worms Como afirm
61. g conf para o usu rio e os arquivos chaveiros pubring gpg e secring gpg respectivamente para armazenar as chaves p blicas e privadas deste usu rio Ap s o aviso do programa gpg que diz V em frente e digite sua mensagem o usu rio deve interromper a execu o de gpg teclando simultaneamente CTRL e C control C Criada a estrutu ra de diret rios para GnuPG o pr ximo passo criar as chaves de acordo com 89 as instru es a seguir a Invocar o programa gpg com a op o gen key b Escolher o tipo de criptografia desejada Atualmente recomendada a op o DSA e Elgamal por quest es de qualidade do algoritmo c Escolher o tamanho da chave Atualmente 2048 bits uma boa escolha sen do inclusive a sugest o padr o de GnuPG d Escolher o tempo de validade da chave Chaves de autentica o de pacotes n o devem expirar Ent o escolher a op o a chave n o expira e Confirmar se os dados estiverem corretos f Escolher uma identifica o para a chave Uma identifica o um campo for mado pelo nome completo do empacotador um coment rio e um endere o de correio eletr nico para contato Este campo ter o seguinte formato Nome Completo Coment rio lt e mailQnospam com gt Digitar as op es e confirmar no final com 0 K g Este passo envolve a escolha de uma frase secreta que funciona como uma se nha a ser pedida sempre que algum pacote precise ser assinado A fras
62. go fonte escrito na linguagem C denominado arl c que ser modificado preciso criar uma atualiza o para esse programa de modo que o ajuste na programa o seja feito antes que o programa possa ser empacotado No intuito de criar uma atualiza o patch para este programa os se guintes procedimentos devem ser feitos e Descompactar o c digo fonte e Criar uma c pia de arl c como nome de arl c orig e Editararl c com um editor de texto e corrigir o erro Em seguida sal var as mudan as e Gerar um arquivo com as diferen as entre os programas originais e os programas modificados Para isso usar o comando di ff diff Naur arl c orig arl c gt arl fixl patch Esse arquivo com as diferen as arl fixl patch ser inclu do como uma atualiza o no momento da cria o do pacote como ser demonstrado mais adiante neste trabalho poss vel visualizar a linha onde houve a corre o do programa Neste exemplo um trecho de c digo n foi removido Uma lista gem do conte do desse arquivo de atualiza o pode ser vista a seguir BUILD arl 2004 2 arl c orig 2006 08 10 16 02 48 000000000 0300 BUILD arl 2004 2 arl c 2006 08 10 16 03 01 000000000 0300 Ga 7 5 7 5 time_t lt lt time NULL ptr localtime amp lt printf ARL Administra o de Redes Linux s n asctime ptr printf ARL Administra o de Redes Linux s asctime ptr 74 7 4 Conceitos sobre o arqui
63. gras pa dronizadas para quando um n mero de vers o deve ser incrementado Cada de senvolvedor define a numera o de vers es de seu aplicativo do modo que lhe seja mais conveniente Entretanto este n mero de vers o deve sempre ser cres cente entre uma vers o antiga e uma vers o nova Por exemplo o pacote kernel smp 2 4 18 3 1586 rpm informa que a vers o deste pacote 2 4 18 Deste modo se identifica um kernel da s rie 2 4 Segundo Ribeiro 2004 os n meros de s rie de pacotes do kernel terminados com n meros pares indicam um kernel est vel Os n meros de s rie terminados com mpares indicam um kernel em desenvolvimento Uma utilidade para esses n meros de s rie caracterizar funcionalidades presentes no aplicativo Desta maneira um pacote da s rie 2 4 pode n o ter caracter sticas funcionais presen tes na s rie 2 6 Assim o nome da vers o importante tamb m para que o ad ministrador possa definir o uso dos pacotes em fun o das novas tecnologias contidas neles O terceiro componente do nome de arquivo de um pacote a revis o ou release O termo ingl s release significa libera o Basicamente esse termo ca racteriza a libera o de uma revis o Desta maneira se considera a libera o de um pacote como uma revis o Afirma Guru Labs 2005 que a revis o o indi cativo de que mesmo ap s os testes realizados com uma vers o ou mesmo ap s o empacotamento de uma vers o foram necess rios
64. ia parado anteriormente sign Inclui em tempo de execu o uma assinatura GPG no pacote Essa assinatura tamb m pode ser inclu da posteriormente usando o utilit rio rpmsign target Platform Permite definir uma plataforma para a constru o do pacote A plataforma deve ser compat vel com o processador do hospedeiro N o poss vel construir pacotes para uma plataforma incompat vel com seu processador 9 1 Utiliza o de pacotes fonte SRPM Segundo Foster Johnson 2005 a maior parte do trabalho com rpm build ser para criar pacotes bin rios a partir de um arquivo tarball e um spec Todavia tamb m poss vel obter pacotes fonte SRPM preparados pelo distri buidor do sistema e us los para gerar um pacote bin rio Um pacote fonte SRPM como qualquer outro pacote bin rio RPM do 96 ponto de vista estrutural poss vel utilizar as op es de consulta para extrair in forma es diretamente desses pacotes e realizar a sua instala o Por m a insta la o de um pacote fonte do tipo SRPM um tanto diferente da instala o de um pacote bin rio RPM Normalmente um pacote bin rio implementa arquivos em uma s rie de diret rios que juntos v o formar um aplicativo No caso dos pacotes fonte SRPM os arquivos implementados s o unicamente um arquivo do tipo tarball alguns arquivos com patches e scripts e um arquivo do tipo spec Ou seja o ar quivo fonte SRPM instala no sistema os requisi
65. ic key asc 8 2 Configura o do ambiente de produ o de RPM Inicialmente o ambiente de RPM preparado para que o superusu rio possa construir pacotes No sistema Fedora Core a estrutura de diret rios arma zenada sob usr src redhat usada para a constru o de pacotes pelo superu su rio Todavia n o recomend vel a constru o de pacotes usando o superu su rio por diversas quest es de seguran a envolvendo o sistema hospedeiro Em fun o dessas caracter sticas preciso configurar o ambiente para que um ou mais usu rios comuns possam realizar a tarefa de empacotar progra mas O pacote fedora rpmdevtools oferece o script fedora buildrpmtree que realiza automaticamente a configura o do ambiente para o usu rio Basica mente as configura es feitas pelo script s o e Cria o do diret rio rmpbuild na pasta particular do usu rio e dos sub diret rios BUILD SOURCES SPECS RPMS e SRMPS Utilizados para abrigar os arquivos usados durante a constru o e tamb m os pacotes ge rados nesse processo 92 e Cria o do arquivo rpmmacros no diret rio particular do usu rio com os ajustes na macro topdir apontando para a estrutura de diret rios em echo HOME rpmbuild As configura es neste arquivo v o se sobrepor s configura es globais As configura es referentes ao uso de chave p blica devem ser feitas manualmente para que seja poss vel assi nar pacotes usando GnuPG Cas
66. implementa 7 4 2 Se o de prepara o Wprep Para Bailey 2000 enquanto no pre mbulo a maioria das informa es para consumo humano e t m pouca rela o com o processo de constru o do pacote na se o prep o foco inteiramente voltado para os processos que preparam o programa para ser constru do Deste modo nessa se o que s o inclu das as instru es para proceder as seguintes tarefas e Cria o de um diret rio onde a aplica o ser constru da e Descompacta o do c digo fonte dentro deste diret rio e Aplica o de patches se necess rio e Realiza o de qualquer opera o necess ria para deixar os fontes pron tos para a compila o 11 primeira vista essa se o parece com um script do shell Todavia essa impress o n o errada pois isso mesmo que ela Essa se o tida como uma das mais complexas de um arquivo spec Contudo RPM fornece objetos pr programados que facilitam bastante sua constru o Esses objetos recebem o nome de macros RPM De acordo com Guru Labs 2005 as macros podem ser compreendidas do seguinte modo Macros s o amplamente usadas para realizar configura es em variadas partes de RPM Essas configura es podem ser globais ou pessoais As macros globais s o armazenadas em usr lib rpm macros As macros de uso pes soal s o armazenadas no arquivo rpmmacro que cada usu rio construtor de pacotes possui em seu dire
67. ing et al 2002 Op es de Sele o select options PACKAGE NAME a all f file FILE g group GROUP p package PAC KAGE FILE fileid MDS hdrid SHAT pkgid MDS tid TID queryby number HDRNUM triggeredby PACKAGE NAME whatprovides CAPABILITY whatrequires CAPABILITY Op es de Consulta query options changelog c configfiles d docfiles dump filesbypkg i info last 1 list provides gf queryformat QUER YFMT R requires scripts s state triggers triggerscripts Op es de Verifica o verify options Op es de Instala o install options aid allfiles badreloc excludepath OLDPATH excludedocs force h hash ignoresize ignorearch ignoreos includedocs justdb no deps nodigest nosignature nosuggest noorder noscripts notrig gers oldpackage percent prefix NEWPATH relocate OLDPATH NEW PATH repackage replacefiles replacepkgs test 46 6 2 Modo de consultas O sistema RPM uma base de dados que armazena informa es sobre pacotes instalados em um sistema GNU Linux Deste modo uma consulta query uma opera o realizada com certa frequ ncia por um administrador O sistema de consultas de RPM possui uma flexibilidade compar vel s instru es SQL utilizadas para criar consultas persona
68. ios par metros do comando version Imprime a vers o do rpm em uso e encerra quiet Imprime o m nimo poss vel de mensagens normalmente somente mensagens de erros ser o exibidas V Exibe mais mensagens de informa es VV Exibe v rias informa es teis em um processo de depura o debug rcfile FILELIST Define uma rela o de arquivos separados por dois pontos que realizam a confi gura o do aplicativo rpm Os arquivos definidos em FILELIST s o lidos seq en cialmente por rpm sendo que somente obrigat ria a exist ncia do primeiro ar quivo A esta lista acrescido o valor da vari vel SHOME O valor padr o para FILELIST usr lib rpm rpmrc usr lib rpm redhat rpmre etc rpmre rpmro pipe CMD Direciona a sa da de rpm para um comando definido em CMD dbpath DIRECTORY Define uma rota alternativa para os arquivos da base de dados O valor padr o para DIRECTORY var lib rpm 45 root DIRECTORY O valor atribu do para DIRECTORY define a raiz do sistema de arquivos para as opera es Observe que isso significa que o caminho da base de dados ser relati vo ao valor definido em DIRECTORY Este ser usado para checagem das depen d ncias ou por qualquer macro por exemplo por post se instalando ou prep se construindo um pacote Defina esse valor ap s um comando chro ot 2 para DIRECTORY Esses par metros s o reunidos em quatro grupos de op es conforme define Ew
69. ite tamb m consultar informa es sobre pacotes n o instalados especificando seu nome em PACKAGE FILE O valor dessa vari vel pode apontar para um pacote que n o seja local Deste modo os protocolos FTP ou HTTP s o usados para baixar download o cabe alho do pacote que ser lido para obten o das informa es 49 pkgid MD5 Consulta o pacote cujo identificador MDS O sum rio MDS referente ao conte do payload e ao cabe alho header do pacote querybynumber HDRNUM Consulta qual n mero do registro est associado ao pacote na base de dados Essa op o usada apenas para fins de depura o debugging Retorna o nome do pa cote associado ao registro cujo n mero foi definido em HDRNUM rpm q querybynumber 45 xorg x1l utils 1 0 1 1 2 specfile SPECFILE Consulta um arquivo spec definido em SPECFILE como se esse fosse um pa cote Entretanto nem todas as informa es por exemplo as listas de arquivos estar o dispon veis para consulta tid TID Consulta os pacotes que possuem um determinado identificador de transa o de finido em TID Um r tulo com uma estampa de tempo no formato Unix Unix time stamp correntemente usada como um identificador de transa o Os os pa cotes instalados ou removidos em uma nica transa o possuem um identificador comum id ntico O que n o faz dessa uma boa op o de sele o triggeredby PACKAGE NAME Consulta os pacotes que s o engatilhad
70. ivo O r tulo Group indica a qual categoria o aplicativo pertence O r tulo URL aponta para um endere o na Internet onde poss vel encontrar informa es sobre o programa Normalmente este o endere o dos desenvolvedores desta aplica o O r tulo Packager armazena o nome e o contato do empacotador do programa O conta to pode ser um endere o de correio eletr nico ou a URL de um site de controle de erros como por exemplo lt http bugzilla redhat com bugzilla gt O r tulo Source neste exemplo faz uso dos r tulos RPM fname e 76 version empregando esses r tulos como vari veis Os mesmos ser o subs titu dos por seus valores definidos anteriormente no pr prio arquivo spec poss vel utilizar qualquer r tulo v lido e reconhecido por RPM O r tulo Patch utilizado para listar as atualiza es que ser o aplicadas ao c digo fonte original As atualiza es devem ser inclu das na ordem que se r o aplicadas e os respectivos arquivos devem estar salvos no diret rio SOUR CES criado para abrigar os fontes durante a gera o de um pacote Os r tulos BuildRequires e Requires s o opcionais pois RPM calcula as depend n cias em tempo de execu o Entretanto desej vel que as depend ncias e reque rimentos sejam relacionadas j que isso facilita a compila o do pacote Por fim o r tulo Wdescription usado para criar um pequeno texto com a descri o sobre a funcionalidade que o pacote
71. lativas ao diret rio definido na vari vel RPM_BUILD_ROOT sendo que cada valor que representa um caminho completo at um arquivo ou diret rio ser ajustado automaticamente por RPM Assim cada rota deve come ar com uma barra indicando o diret rio raiz real Diversas macros podem ser usadas nessa se o A macro defattr usada para definir propriedades de dono e grupo e configurar as permiss es dos arquivos ou diret rios listados ap s est macro Para configurar individualmente 83 um arquivo ou diret rio deve ser usada a macro attr De acordo com Ewing et al 2002 as macros listadas a seguir s o usa das para definir o tipo de um arquivo Assim durante uma consulta poss vel filtrar os arquivos por seu tipo Essas macros s o assim definidas e config Define que o arquivo de configura o Usada com o par metro noreplace indica que este arquivo deve ser mantido inalterado no caso de uma atualiza o e doc Indica que o arquivo de documenta o e license Indica que o arquivo uma licen a e readme Indica que o arquivo possui instru es que devem ser lidas e ghost Indica que o conte do deste arquivo n o ser inclu do no pay load do pacote e dir Indica um diret rio Um exemplo desta se o pode ser visto a seguir Wfiles Wdefattr 0770 root root usr local arl 2004 2 bin arl doc usr local arl 2004 2 doc arl html doc usr local arl 2004 2 doc rpm logo
72. lizadas em bancos de dados relacio nais Todavia como visto na se o 5 1 como afirma Foster Johnson 2005 RPM usa o sistema de banco de dados Berkeley DB que n o um sistema rela cional mas baseado em rvores bin rias e pares de campos indexados por hash O que torna o sistema muito r pido para esse tipo de consulta O sistema RPM n o fornece relat rios padronizados de consulta mas ferramentas para que o administrador possa criar suas pr prias consultas de acordo com suas necessidades pessoais Esta flexibilidade poss vel gra as a uma s rie de r tulos tags que descrevem um campo de um registro de RPM Um r tulo como uma vari vel que ser substitu da pelo conte do real do campo armazenado em um registro Desta maneira poss vel construir con sultas personalizadas e com um n vel de controle das informa es bastante gra nular Al m disso tamb m vi vel o uso de comandos de consulta em scripts do shell ou inseridos no c digo de programas escritos com uma linguagem inter pretada como Per1 ou Python Isso aumenta as possibilidades de uso das consul tas RPM A op o querytags relaciona os nomes v lidos dos r tulos atualmente suportados por RPM rpm querytags 34 SQL Strutured Query Language Linguagem Estruturada de Consultas 47 Al m dos r tulos que permitem personalizar a sa da das consultas RPM oferece tamb m uma s rie de comandos opcionais definidos no Quadro 3
73. m de ser encontrado nas distribui es GNU Linux j que utiliza o OpenPGP que somente utiliza algoritmos n o patenteados ou licenciados sob GPL 37 Esta ltima op o por exemplo est dispon vel para o reposit rio inde pendente Livna Este um reposit rio n o oficial para o Fedora Core que mant m uma s rie de pacotes bastante populares entre eles est o os drivers pro priet rios da Nvidia e da ATI usados para dar suporte 3D s placas de v deo desses fabricantes Esses s o arquivos que n o s o inclu dos na distribui o ofi cial pois n o s o c digo livre O projeto Fedora Core somente distribui pacotes criados a partir de programas de c digo livre Para utilizar o reposit rio Livna basta baixar e instalar o pacote RPM fornecido pelo reposit rio Este pacote instala os arquivos para configurar o re posit rio junto ao Yum al m da chave p blica usada para autenticar os pacotes em um processo totalmente automatizado Todavia nem sempre existem pacotes de chaves p blicas dispon veis e neste caso ser preciso importar manualmente uma chave p blica de um empa cotador para que rpm possa utiliz la Este um processo relativamente f cil de ser feito Para exemplificar como rpm lida com a checagem da integridade de pacotes ser mostrada a importa o da chave do reposit rio extras do Fedora Core saber a O pacote fedora rpmdevtools 1 5 1 fc5 noarch rpm foi obtido do repo sit rio ex
74. m processadores mais modernos ou n o utilizar novos recursos dessas CPUs como afirmado anteriormente Este tipo de pacote 22 considerado gen rico e s o feitos para serem executados nas arquiteturas da plataforma Intel compat vel 32 bits o que representa uma sub utiliza o dos recursos dos processadores mais modernos O Quadro 1 relaciona os tipos de plataforma e de arquitetura indicados por Foster Johnsson 2005 para as quais poss vel criar pacotes RPM Neste Quadro destaca se a arquitetura denominada noarch Pacotes cuja arquitetura seja nomeada como noarch indicam que se trata de um pacote constru do de modo que teoricamente seja independente da arquitetura Afirma se teoricamente uma vez que dependendo do que este pacote implementa a transi o entre plataformas pode exigir ajustes Normalmente pa cotes denominados sem arquitetura implementam documenta o al m de al gumas vezes implementar tamb m scripts do shell ou programas escritos em uma linguagem interpretada como Perl Neste tipo de pacotes no campo referen te a arquitetura l se noarch Por exemplo yum 2 6 0 1 noarch rpm um nome de um pacote que independente da arquitetura do processador para ser instalado O aplicativo Yum escrito na linguagem interpretada Python Esse pacote ser instalado em uma arquitetura que tenha o sistema Python instalado O quinto elemento componente do nome de arquivo de um pacote a ex tens o D
75. me do pacote 21 FTP e HTTP s o protocolos usados para transfer ncia de arquivos ou p ginas da Web 22 Google uma ferramenta de busca da Internet dispon vel em www google com br 23 Encontrados em www souceforge net www freshmeat net e www rpmfind net 30 24 25 26 3 3 RPM como um cliente FTP e HTTP O sistema RPM pode realizar fun es como um cliente FTP ou HTTP para obter pacotes As opera es de consulta de informa es do cabe alho ins tala o ou atualiza o podem ser feitas em pacotes armazenados em locais ex ternos como um servidor FTP ou HTTP dispon vel na Internet As transfer ncias usando o protocolo FTP s o feitas de modo passivo FTP PASV e nos casos em que n o s o indicados um usu rio e uma senha usado por padr o acesso an nimo A diferen a na sintaxe no uso de RPM como uma ferramenta FTP no lugar de indicar uma rota at o pacote indicar um URL A sintaxe para utili zar URLs como caminho at o pacote a seguinte ftp USER PASSWORDQGHOST PORT caminho para o pacote rpm A maioria dos reposit rios de pacotes aceita acesso an nimo Deste modo as op es de seguran a como usu rio e senha s o opcionais Nos casos em que essas informa es s o obrigat rias e a senha seja omitida um prompt ser exibido para que a senha seja digitada em tempo de execu o O hospedeiro dos pacotes pode ser indicado atrav s de seu nome de do m nio totalmente qualificado F
76. ministrador n o poder fazer modifica es no c digo fonte dos programas desse pacote pois este um aplicativo de c digo fechado 17 Cron um utilit rio para o agendamento de tarefas PAM Pluggable Authentication Modules for Linux 27 3 2 Obten o de pacotes RPM e SRPM Um sistema operacional como o GNU Linux est em constante evolu o Novas vers es de programas surgem quase que diariamente seja para con sertar falhas de seguran a encontradas no c digo de algum programa ou para aprimorar a funcionalidade de uma aplica o Por esta raz o mais cedo ou mais tarde um sistema GNU Linux sofrer mudan as e ser preciso fazer altera es nos programas instalados Essas altera es s o basicamente a instala o a atualiza o ou a remo o de algum pacote do sistema Deste modo todo administrador deve obter os pacotes atualizados para realizar a manuten o de seu sistema A fonte prim ria de pacotes formada pelos discos de instala o Estes podem ser um conjunto de CDs ROM ou um DVD mas estes pacotes ficam rapidamente desatualizados Assim logo ap s a instala o de um sistema GNU Linux atrav s dos discos de instala o preciso obter as atualiza es de seguran a e de aprimoramento Atualmente os principais sistemas GNU Linux s o dotados de um meca nismo de atualiza o Segundo Morimoto 2005 os mais conhecidos progra mas usados para atualiza o de sistemas s o o apt g
77. ncontrado por RPM A apresenta o de um sinal de in terroga o 2 significa que este campo n o p de ser verificado Normalmente a causa disso a insufici ncia de permiss es do usu rio que realiza o teste Deste modo RPM n o tem como determinar essa propriedade pois depende da per miss o para realizar o teste ficando o valor indefinido rpm V bash missing d usr share man man1 times 1 gz UG d usr share man man1 umask 1 gz De acordo com Ewing et al 2002 durante uma verifica o padr o to dos os atributos s o verificados Entretanto poss vel desabilitar a verifica o de alguns atributos do processo atrav s do uso das op es de verifica o verify options a seguir relacionadas nodeps nofiles noscripts nodigest nosignature nolinkto nomd5 nosize nouser nogroup nomtime nomode nordev 59 6 4 Modos de instala o atualiza o e restaura o Mais cedo ou mais tarde o administrador de um sistema GNU Linux pre cisar modificar seu sistema atrav s de uma opera o de atualiza o ou de insta la o Um dos principais motivos que levam a realizar uma dessas opera es s o as corre es de seguran a Outro importante motivo a evolu o do c digo dos programas que formam um pacote Os desenvolvedores podem introduzir funci onalidades que um administrador pode precisar em seus sistemas Seja para atualizar upgrade r
78. nenbaum 2003 o sistema de cripto grafia de chave p blica garante o sigilo e a integridade dos dados Todavia o n vel de consumo computacional para usar RSA ou outro algoritmo de criptografia muito grande tornando seu uso restrito a algumas opera es cr ticas Em fun o disso surgiram os sum rios de mensagem por exemplo o MDS Message Digest 5 e o SHAI Secure Hash Algorithm 1 Segundo Ta nenbaum 2003 os sum rios de mensagem n o se preocupam com a quest o do sigilo das informa es entretanto s o extremamente eficientes em rela o in tegridade dos dados Sum rios de mensagens podem ser vistos como somat rios de checagem checksum Um algoritmo matem tico aplicado utilizando cada um dos bits que formam a mensagem Assim a partir deste conte do gerada uma assinatura digital nica chamada hash A altera o em apenas um nico bit da mensagem gera um hash bem distinto do original Outra vantagem dos sum rios de mensagem o fato do hash gerado n o 28 Os sum rios de mensagem s o genericamente denominados MD acr nimo para Message Digest 29 sabido que um hash pode se repetir mas a probabilidade disso acontecer de 2 sendo considerada nula 35 guardar qualquer refer ncia em rela o mensagem que foi introduzida para ser assinada Em fun o disso n o poss vel deduzir uma mensagem partir do hash criptogr fico gerado pelo sum rio de mensagem Ou seja o hash
79. o De acordo com Guru Labs 2005 quando um programa est sendo preparado para empacotamento normalmente ele precisa de modifica es em seu c digo fonte S o v rios os motivos para fazer modifica es sendo o mais comum aplicar corre es ao c digo para eliminar erros de programa o Uma atualiza o patch um trecho de c digo fonte que reflete uma mudan a no c digo original de um programa Segundo Guru Labs 2005 o processo de cria o de uma atualiza o pode ser assim descrito Atualiza es s o facilmente criadas Para criar uma atualiza o patch basta obter o c digo fonte original e fazer uma c pia deste arquivo incluindo a extens o de arquivo orig Em seguida basta fazer as altera es necess rias no c digo O pr ximo passo usar o comando diff para criar um arquivo com as diferen as entre o arquivo alterado e o original Esse arquivo com as di feren as um patch a ser aplicado na cria o de um pacote Supondo que a aplica o exemplo denominada arl vers o 2004 2 ser empacotada no formato RPM os procedimentos para tal tarefa podem s o descri tos a seguir 36 O utilit rio diff faz parte do pacote diffutils usado para comparar as diferen as entre dois arquivos 73 O arquivo de c digo fonte denominado arl 2004 2 tar gz e ao ser desempacotado pelo comando tar d origem a um diret rio de nome arl 2004 2 Esse programa exemplo possui um arquivo de c di
80. o 2006 a sigla para Application Program Interface um conjunto de rotinas protocolos e ferramentas para a constru o de aplicativos de software 11 4 5 2 Conceitos Gerais 2 1 Conceitos b sicos sobre pacotes Na vis o de Foster Johnson 2005 um pacote basicamente um arqui vo compactado cujo conte do um conjunto de arquivos de diferentes formatos e tipos e que juntos formam um aplicativo Apesar de possuir v rios arquivos um pacote visto como uma unidade at mica e por isso indivis vel Assim sendo esse conjunto de arquivos deve necessariamente fazer parte de um mesmo aplicativo ou no m nimo estar ligado por similaridade de fun o Em geral os arquivos que formam um pacote s o do tipo bin rios execut veis arquivos de configura o scripts do shell imagens icones arquivos de som arquivos de documenta o e manuais Por m qualquer tipo de arquivo pode ser empacotado pelo sistema RPM Todavia deve se ressaltar que um pacote nem sempre somente um aplicativo para ser instalado no sistema Um pacote pode ser tamb m uma cole o de arquivos necess rios para a configura o do pr prio ambiente do sistema Assim observa se que a distribui o de arquivos no formato de pacote facilita tamb m a configura o do pr prio sistema GNU Linux e n o somente a distri bui o de aplicativos ou programas utilit rios Um exemplo deste fato o pacote rootfiles utilizado para config
81. o queira o usu rio poder obter os mesmos ajustes atrav s de co mandos manuais para a cria o dos diret rios e arquivos como no exemplo a se guir a Cria o da estrutura de diret rios para constru o de pacotes mkdir p rpmbuild SOURCES SPECS BUILD SRPMS RPMS mkdir rpmbuild RPMS i386 1686 b Cria o do arquivo rpmmacros para o usu rio com o seguinte conte do _topdir echo HOME rpmbuild debug package nil smp mflags j3 arch install post usr lib rpm check rpaths usr lib rpm check buildroot signature gpg gpg path home empacotador gnupg gpg name Empacotador Unasi lt unasiQnospam com gt gpgbin usr bin gpg Segundo Guru Labs 2005 incluindo estas op es no arquivo rpmma cros o usu rio poder assinar os pacotes gerados por RPM 93 9 Constru o de pacotes com o utilit rio rpmbuild At a vers o 3 x o comando rpm realizava as tarefas relacionadas com a administra o de pacotes e com a gera o dos pacotes A partir da vers o 4 x essas tarefas foram adequadamente distribu das entre alguns utilit rios de acor do com a fun o a ser realizada Desta maneira em sistemas modernos vers es maiores que 4 x o utilit rio respons vel pela gera o dos pacotes denominado rpmbuild Segundo Ewing et al 2002 rpmbuild usado tanto para a constru o de pacotes bin rios quanto pacotes fonte Para o utilit rio rpmbuild cad
82. oca as opera es com pacotes tanto na teoria como na pr tica o cap tulo 7 introduz a cria o de pacotes RPM o cap tulo 8 trata do tema de ajuste do ambiente para a produ o 10 3 de pacotes RPM por fim no cap tulo 9 demonstra se as op es de uso da ferra menta de constru o de pacotes denominada rpmbuild A leitura atenta desses cap tulos fornece a base te rica e pr tica para a produ o de pacotes RPM pelo leitor Por ser esse um tema muito extenso fica invi vel cobrir detalhes como o uso de ferramentas gr ficas usadas no gerenciamento de pacotes RPM o fun cionamento das APIs fornecidas pela Red Hat e usadas nas linguagens Perl C e Python Tamb m n o ser o abordados o uso avan ado das ferramentas forneci das pelo sistema RPM e aspectos ligados programa o de macros Outros te mas paralelos que necessitem de aprofundamento t cnico e que por isso est o fora do escopo do tema principal poder o ser melhor compreendidos atrav s das indica es de leitura e da bibliografia recomendada As explica es dos termos e dos conceitos sobre o sistema RPM ser o feitas com nfase no ponto de vista dos administradores de sistemas Para tanto ser utilizado o ambiente baseado em caractere apesar da exist ncia de interfa ces gr ficas para os gerenciadores Os exemplos pr ticos deste trabalho foram feitos em um sistema GNU Linux Fedora Core 5 usando a vers o 4 4 2 de RPM API Segundo D gitr
83. onsulta permite manter um estrito controle so bre os sistemas instalados Diversas op es de uso permitem manipular pacotes procedendo a instala o atualiza o e remo o com um simples comando Do ponto de vista do gerenciamento de programas distribu dos neste for mato RPM se tornou o padr o de facto para a ind stria de distribui o de aplica tivos Al m das propriedades do pr prio sistema RPM o gerenciamento de pro 103 gramas ainda conta com as ferramentas de atualiza o como o apt get e o Yum A maioria das tarefas pode ser feita atrav s de interfaces gr ficas que facilitam a gest o dos programas instalados As facilidades para o gerenciamento implantadas por RPM permitem um ganho de produtividade se comparadas aos m todos tradicionais de instala o e manuten o de sistemas poss vel manter um sistema sempre atualizado com as ltimas vers es de seguran a ou de aprimoramento com um grau de esfor o muito pequeno Na administra o de sistemas GNU Linux moderna o uso de pacotes altamente recomendado Os principais motivos para usar o sistema RPM de pa cotes s o agilidade e seguran a O uso de pacotes evita a complexidade do ambi ente de desenvolvimento e reduz as chances de erros a um n vel praticamente nulo muito dif cil imaginar algu m administrando um ambiente com v rias m quinas utilizando o m todo manual de instala o e manuten o O sistema RPM oferece a desenvoltura agilidade
84. orma es sobre o pacote O pre mbulo formado por r tulos um por linha seguidos por dois pontos e uma atribui o de valor para o r tulo Como no exemplo a seguir 75 Summary ARL Administra o em Redes Linux Name arl Version 2004 2 Release 1 License GPL Group P s Gradua o Lato Sensu URL http www ginux comp ufla br arl Vendor UFLA FAEPE Packager Keynes Augusto lt unasiQnospam com gt Source name version tar gz Patch0 arl fixl patch Prefix usr local bin Wdescription Este o pacote RPM para o famoso ARL ARL um comando usado para exibir a data e a hora local de um sistema GNU Linux Os r tulos name version e release armazenam respectivamente o nome o n mero da vers o e da atualiza o do pacote Os valores inclu dos nes tes r tulos ser o usados pela base de dados de RPM para referenciar o pacote O nome do pacote normalmente reflete o nome do aplicativo que ele implementa Mas isso n o uma regra r gida podem haver exce es Os valores armazenados nestes r tulos n o t m qualquer liga o real com o nome do arquivo RPM Caso um arquivo RPM seja renomeado ainda as sim poder ser instalado As informa es destes r tulos s o mantidas inalteradas quando ocorre uma renomea o de arquivo Um nome de arquivo somente uma conven o O que define o tipo de um arquivo o seu n mero m gico O r tulo License indica o tipo de licenciamento do aplicat
85. ornecidos pelo distribuidor s o chamados reposit rios oficiais Os reposit rios espelho chamados tamb m de mirrors s o c pias id nticas dos reposit rios oficiais A fun o dos mirrors distribuir geograficamente a carga no uso de reposit rios Isso alcan ado repli cando o conte do dos reposit rios oficias em v rios outros Deste modo o tr fego dos reposit rios oficiais n o sobrecarrega a Inter net nem o reposit rio oficial Reposit rios s o recursos escassos seu uso deve ser o mais racional poss vel preciso conscientizar os usu rios quanto a essas caracter sticas dos reposit rios para evitar desperd cio de largura de banda com o tr fego exagerado de pacotes pela Internet poss vel criar reposit rios parti culares para uso de uma rede local Outra forma manter caches de pacotes desta forma os pacotes baixados anteriormente s o reaproveitados No Fedora Core o reposit rio respons vel pelas atualiza es denomi nado updates Os arquivos desse reposit rio s o atualiza es de programas dis tribu dos na rela o de pacotes chamados oficiais Entretanto nem todos os pacotes mais populares s o suportados pelo distribuidor como pacotes oficiais Desta maneira outro reposit rio muito popular o reposit rio extras 20 O termo ingl s mirrors significa espelhos 29 Nele s o armazenados pacotes n o oficiais que s o distribu dos e mantidos por membros da comunidad
86. ortante nomes de arquivos de pacotes t m obriga toriamente a extens o rpm A extens o de arquivos est relacionada com os tipos MIME e com n meros m gicos que identificam esses arquivos no sistema Segundo Tanenbaum 2003 MIME o acr nimo para Multipurpose In O endere o eletr nico da Sun Microsystems na Internet www sun com br 17 ternet Mail Extensions conceitos que s o definidos nas RFC 2045 a 2049 Ba sicamente os tipos MIME definem categorias de arquivos distintas por suas ex tens es de arquivo Extens es de arquivos s o importantes pois permitem asso ciar arquivos aos programas utilit rios com capacidade de manipul los Deste modo quando o sistema se depara com uma extens o registrada ele pode dispa rar automaticamente um utilit rio ou indicar ao usu rio que abra o arquivo com um utilit rio apropriado para manipular esse tipo de arquivo Segundo o manual do comando file os n meros m gicos est o em um arquivo em usr share file magic Esses s o identificadores do conte do do arquivo que podem ser consultados informando sobre o tipo do arquivo Quan do um utilit rio tenta ler ou executar um arquivo associado o n mero m gico consultado para confirmar se a opera o pode ser realizada Se nos nomes de arquivos obrigat ria a exist ncia de uma extens o em contrapartida nomes de pacotes n o t m extens o Enquanto n o instalados no sistema os pacotes devem ser vistos apen
87. os triggered por outros pacotes defini dos em PACKAGE NAME whatprovides CAPABILITY Consulta qual pacote fornece um recurso especificado em CAPABILITY rpm q whatprovides firefox firefox 1 5 0 4 1 2 fc5 50 whatrequires CAPABILITY Consulta quais os pacotes requerem o pacote definido em CAPABILITY como de pend ncia rpm q whatrequires yum pirut 1 0 1 1 Os par metros das op es de consulta s o assim definidos por Ewing et al 2002 na documenta o de RPM OP ES DE CONSULTA POR PACOTE changelog Exibe o hist rico de modifica es do pacote O hist rico de modifica es uma lista formada pelas altera es que foram feitas em um programa para consertar erros de programa o bugs ou para implementar mudan as no programa rpm q changelog coreutils Qua Mai 25 2005 Tim Waugh lt twaugh redhat com gt 5 2 1 48 Prevent buffer overflow in who 1 bug 158405 Sex Mai 20 2005 Tim Waugh lt twaugh redhat com gt 5 2 1 47 Better error checking in the pam patch bug 158189 AS demais sa das foram omitidas c configfiles Lista os arquivos de configura o instalados pelo pacote rpm q bash configfiles etc skel bash_logout etc skel bash profile etc skel bashrc 51 d docfiles Lista os arquivos de documenta o instalados pelo pacote Os arquivos de docu menta o podem incluir p ginas de manual man e documentos em outros forma t
88. os de arquivo como HTML PDF e texto puro rpm q coreutils docfiles usr share man man1 nice 1 gz usr share man man1 nl 1 gz usr share man man1 nohup 1 gz usr share man manl od 1 gz As demais sa das foram omitidas dump Exibe diversas informa es sobre o arquivo O uso dessa op o em conjunto com l c d O cabe alho dessa op o assim definido caminho tamanho mtime md5sum modo dono grupo isconfig isdoc rdev liga o rpm q bash dump ASs demais sa das foram omitidas usr share man manl umask 1 gz 40 1139638495 4bdb94bc6cd57b2a9431dbfa590040f2 0100644 root root 01 0 X usr share man manl unalias 1 gz 40 1139638495 4bdb94bc6cd57b2a9431dbfa590040f2 0100644 root root 01 0 X usr share man manl unset 1 gz 40 1139638495 4bdb94bc6cd57b2a9431dbfa590040f2 0100644 root root 01 0 X usr share man manl wait 1 gz 40 1139638495 4bdb94bc6cd57b2a9431dbfa590040f2 0100644 root root 01 0 X 52 filesbypkg Lista o nome do pacote seguido do nome de um arquivo que pertence a esse paco te Os os arquivos do pacote s o listados rpm q bash filesbypkg bash bin bash bash bin sh bash etc skel bash_logout bash etc skel bash_profile bash etc skel bashrc bash usr bin bashbug 32 i info Exibe informa es sobre o pacote incluindo o nome a vers o e uma descri o longa entre outras informa es As informa es s o retiradas da se o cabe alho do pacote Esta op o usa q
89. os no processo e Atualiza o da base de dados RPM Esta opera o mant m a integridade da base de dados 61 De acordo com Ewing et al 2002 a sintaxe b sica para cada um des ses modos a seguinte rpm i install install options PACKAGE FILE rpm U upgrade install options PACKAGE FILE rpm F freshen install options PACKAGE FILE Os par metros das op es de instala o install options s o comparti lhados pelos tr s modos e podem ser utilizados de acordo com suas finalidades Desta maneira preciso estar atento para qual op o usar adequadamente De acordo com Ewing et al 2002 a sintaxe dos par metros de instala o podem ser assim descritas allfiles Instala ou atualiza os arquivos de um pacote ignorando se eles existem badreloc Usada com a op o relocate permite realocar os caminhos paths n o apenas aquelas constantes em OLDPATH e inclu dos na sugest o do pacote bin rio excludepath OLDPATH N o instala arquivos cujo caminho comece com OLDPATH excludedocs N o instala qualquer arquivo que esteja marcado como documenta o isso inclui p ginas de manual e documentos texinfo force Equivale a replacepkgs replacefiles e oldpackage h hash Imprime uma barra indicativa 50 vezes o caractere demonstrando visualmente o andamento do processo de instala o de um pacote Usada com a op o v ignoresize 62 N o checa antes se o e
90. p o no triggers equivalente ao uso de todas juntas e desativa a execu o das seguintes macros Wtriggerin Wtriggerun e Wtriggerpostun oldpackage Permite que uma opera o de atualiza o substitua um pacote atualmente instala do por outro cuja vers o seja mais antiga Normalmente RPM n o permite a ope ra o de rebaixamento de vers o downgrade percent Exibe as porcentagens medida que os arquivos s o descompactados Esta fun o pode ser usada quando outros programas ou ferramentas que executam rpm prefix NEWPATH Redefine a localiza o para instala o dos arquivos de um pacote direcionando os arquivos para o caminho definido na op o NEWPATH relocate OLDPATH NEWPATH Permite realocar pacotes bin rios traduzindo os caminhos que se iniciam com OLDPATH na sugest o de reloca o do pacote para o novo valor em OLDPATH Esta op o pode ser usada repetidamente se diversas vari veis OLDPATH ser o realocadas 64 repackage Reempacota os arquivos novamente em um pacote antes de apag los O pacote previamente instalado ser nomeado de acordo com o valor da macro repac kage name fmt e ser criado no diret rio indicado pela macro repacka ge dir O valor padr o var spool repackage replacefiles Instala os pacotes mesmo que ele substitua arquivos de pacotes j instalados replacepkgs Instala os pacotes se alguns deles estiverem instalados anteriormente test
91. p s a desinstala o S o se es opcionais e pre executada antes da instala o e post executada ap s a instala o e preun executada antes da desinstala o e posun executada ap s a desinstala o 85 Outras duas se es opcionais s o utilizadas para serem executadas em modo condicional Isso significa que para serem executadas necess rio que uma condi o qualquer seja verdadeira ou falsa Por exemplo um sistema que interage com o aplicativo de envio de correio eletr nico pode ter um comporta mento diferente se o sistema instalado for Sendmail ou Postfix Assim estas se es gatilho ser o disparadas em fun o do ambiente em que o pacote for instalado Essas se es s o e triggerin executada quando o pacote instalado ou atualizado e triggerrun executada quando o pacote removido 7 5 O arquivo exemplo arl spec Uma listagem completa do arquivo arl spec apresentada a seguir Summary ARL Administra o em Redes Linux P s Gradua o Lato Sensu Name arl Version 2004 2 Release 1 License GPL Group P s Gradua o Lato Sensu URL http www ginux comp ufla br arl Vendor UFLA FAEPE Packager Keynes Augusto lt unasiQnospam com gt Source0 name version tar gz Patch0 arl fixl patch Prefix usr local bin Prefix usr share doc Buildroot _tmppath name version root Wdescription Este o pacote RPM para o famoso ARL ARL um
92. png 7 4 7 Se o hist rico de mudan as changelog Segundo Guru Labs 2005 esta se o armazena um hist rico com as altera es feitas pelos desenvolvedores do pacote Deste modo poss vel ter um acompanhamento da evolu o do desenvolvimento do aplicativo Cada entrada nessa se o deve seguir uma sintaxe pr definida como a seguir 84 Coment rio sobre o changelog Data da altera o empacotador lt e mail de contato gt vers o release Descri o da altera o Descri o de outras altera es Cada nova entrada deve ser inclu da no come o do arquivo Um exem plo desta se o pode ser visto a seguir Wchangelog Lan amento Sat Aug 5 2006 14 18 08 unasi lt unasi arlQnospam com gt Retirado o bug da linha extra 41 Refeito o arquivo spec para apresenta o gt 7 4 8 Se es preparat rias ou opcionais Al m destas se es consideradas b sicas existem outras se es conside radas avan adas e usadas para ajustar o ambiente antes ou ap s uma instala o ou remo o Segundo Guru Labs 2005 algumas vezes necess rio executar comandos em um sistema antes ou ap s um programa ser instalado Essas se es s o listadas ap s a se o arquivos e s o simplesmente scripts do shell usando comandos de terminal para realizar tarefas diversas por exemplo criar uma con ta de usu rio para um programa ou remover algum diret rio que n o mais ne cess rio a
93. ra o administrativa que envolve aspectos de seguran a do sistema rpm import etc pki rpm gpg RPM GPG KEY fedora extras c Realizada novamente a checagem poss vel confirmar o sucesso desta vez A mensagem exibida gpg Ok indica que o pacote integro rpm checksig fedora rpmdevtools 1 5 1 fc5 noarch rpm fedora rpmdevtools 1 5 1 fc5 noarch rpm shal dsa shal md5 gpg OK 32 O usu rio root o administrador do sistema e possui os poderes totais para realizar fun es administrativas 39 4 3 Administra o das chaves p blicas dos empacotadores De acordo com Ewing et al 2002 ap s as chaves p blicas serem im portadas por rpm poss vel fazer a sua manuten o utilizando a sintaxe padr o para a manipula o de pacotes Deste modo uma consulta para obter informa es sobre as chaves instaladas pode ser feita do seguinte modo rpm q gpg pubkey gpg pubkey 1lac70ce6 41bebeef Uma vez obtido o identificador ID da chave poss vel fazer uma con sulta completa rpm qi gpg pubkey lac70ce6 Name gpg pubkey Relocations not relocatable Version lac70ce6 Vendor none Release 41bebeef Build Date Qui 27 Jul 2006 11 10 13 BRT Install Date Qui 27 Jul 2006 11 10 13 BRT Build Host localhost Group Public Keys Source RPM none Size 0 License pubkey Signature none Summary gpg Fedora Project lt fedora extrasQfedoraproject org gt Description Restan
94. ro ainda assim poss vel exe cutar esse comando para remover registros n o usados reduzindo o tamanho dos arquivos de ndice e otimizando as consultas base de dados recomend vel manter uma c pia de seguran a antes de executar esse comando Outra caracte r stica desse comando que sua execu o demorada Assim preciso ter paci ncia e aguardar que os ndices sejam recriados Um modo de verificar a integri dade de uma base de dados listar os pacotes e em seguida reconstruir a base de dados e comparar os resultados com uma nova consulta Caso as tentativas de recuperar uma base de dados tenham falhado en t o as informa es sobre os pacotes instalados no sistema s o perdidas Neste caso poss vel iniciar um novo banco de dados partir do zero Apesar da exist ncia da possibilidade de continuar trabalhando com um sistema que teve sua base de dados perdida essa n o uma atitude recomenda da pois afeta a seguran a do sistema de arquivos A op o neste caso reinsta lar o sistema e ser mais prevenido da segunda vez 43 6 Administra o de sistemas GNU Linux baseados em pacotes RPMs 6 1 Modos de opera o de RPM O sistema RPM oferece sete modos b sicos de opera o para a manipu la o de pacotes O sistema RPM funciona como um banco de dados desta ma neira os modos de opera o podem ser vistos como m todos que permitem in cluir consultar atualizar verificar ou ex
95. sar os discos durante a gera o dos n meros primos isso d ao gerador de n meros aleat rios uma chance melhor de conseguir entropia suficiente gpg home empacotador gnupg trustdb gpg banco de dados de confiabilida de criado gpg key D411BE4A marked as ultimately trusted chaves p blica e privada criadas e assinadas gpg a verificar a base de dados de confian a gpg 3 marginal s needed 1 complete s needed PGP trust model gpg depth O valid 1 signed O trust 0 0q On Om Of lu pub 1024D D411BE4A 2006 08 14 Key fingerprint 722F D688 9C90 A874 A3FC DFE2 0485 841D D411 BE4A uid Keynes Augusto Unasi lt unasilQnospam com gt sub 2048g A4653366 2006 08 14 h Verificar a gera o da chave com a op o list keys gpg list keys home empacotador gnupg pubring gpg pub 1024D D411BE4A 2006 08 14 uid Empacotador Unasi lt unasiQnospam com gt sub 2048g A4653366 2006 08 14 91 i O passo seguinte exportar essa chave para um arquivo gpg public key asc em um formato que possa ser importada pelo chaveiro de RPM So mente ap s esse processo poss vel verificar pacotes assinados com esta chave gpg export armor gt home empacotador gpg public key asc j Importa o da chave para o chaveiro de RPM A importa o de uma chave p blica para o chaveiro de RPM uma ope ra o exclusiva do superusu rio por quest es de seguran a rpm import home empacotador gpg publ
96. ses distribuidores acabam por implementar mudan as no c digo seja para adaptar melhor os programas ao seu sistema ou mesmo para corrigir erros de programa o no c digo original Estas sucessivas mudan as le vavam a uma situa o de perda de controle sobre as mudan as e acabavam por descaracterizar o c digo fonte original Assim n o era mais poss vel separar o que c digo original do que atualiza o Para Bailey 2000 isso levou se guinte solu o raro uma aplica o obtida na Internet n o ter seu c digo fonte altera do antes de ser empacotado Neste ponto entra o conceito de c digo original Pristine Source Quando este c digo empacotado por RPM ele integral mente inclu do no pacote mantendo os arquivos que formam o programa sem qualquer modifica o As atualiza es patches s o mantidas separadas do c digo original em uma cole o de atualiza es Deste modo as atualiza es patches s o mantidas separadamente em rela o ao c digo fonte original permitindo rastrear as m ltiplas vers es de um 71 pacote Deste modo um desenvolvedor passa a possuir um arquivo com o c di go fonte original normalmente um arquivo do tipo tar gz um conjunto de atu aliza es patches que modifica esse c digo fonte e arquivos de suporte caso sejam necess rios como os scripts do tipo System V Init ou outros Juntas estas partes formar o um pacote fonte RPM que dar origem aos paco
97. so de compila o Essa vari vel criada automaticamente por RPM A segunda vari vel RPM_BUILD_ROOT O valor desta vari vel defi 81 nido atrav s do r tulo Buildroot configurado na se o pre mbulo O valor desta vari vel define um diret rio raiz virtual Nesta estrutura o programa pode ser virtualmente instalado antes de ser empacotado De acordo com Bailey 2000 nesta se o s o inclu dos os comandos necess rios para instalar o programa Caso o autor do programa tenha inclu do um script de instala o essa se o ter somente um comando make install ou install Caso contr rio os processos ser o feitos com comandos do shell relacionados com a manipula o de arquivos A cria o dos diret rios e a c pia dos aplicativos para seus devidos locais no caso do programa exemplo arl se r o feitas deste modo como observado na listagem a seguir Winstall rm rf RPM_BUILD_ROOT mkdir p RPM_BUILD_ROOT RPM_DOC_DIR name version mkdir p RPM BUILD ROOT usr local bin cp RPM BUILD DIR Y iname iversiony arl RPM BUILD ROOT usr lo cal bin arl cp RPM BUILD DIR Y iname iversiony arl html RPM_BUILD_ROOT RPM DOC DIR fname fversiont arl html cp RPM BUILD DIR fname fversion rpm logo png RPM_BUILD_ROOT RPM DOC DIR iname iversiony rpm logo png 7 4 5 Se o de limpeza wclean Essa uma se o usada apenas para apagar os arquivos inclu dos na es trutura d
98. spa o no sistema de arquivos suficiente para instalar o pacote ignorearch Permite que a instala o ou atualiza o de um pacote mesmo que a arquitetura para o qual o pacote foi constru do n o combine com a arquitetura do host ignoreos Permite que a instala o ou atualiza o de um pacote mesmo que o sistema ope racional para o qual o pacote foi constru do n o combine com o S O do host includedocs Instala os arquivos de documenta o Este o comportamento padr o justdb Atualiza somente a base de dados mas n o atualiza o sistema de arquivos nodigest N o verifica o sum rio do pacote ou do cabe alho quando lendo o pacote nosignature N o verifica a assinatura do pacote ou do cabe alho quando lendo o pacote nodeps N o faz a checagem das depend ncias antes de instalar ou atualizar um pacote nosuggest N o exiba sugest es de pacotes para prover uma depend ncia que esteja faltando noorder N o reordena os pacotes para uma instala o Uma lista de pacotes pode ser nor malmente reordenada para satisfazer depend ncias noscripts nopre nopost nopreun nopostun N o executa a macro de mesmo nome A op o noscripts equivalente ao 63 uso de todas juntas e desativa a execu o das seguintes macros pre post preun e postun notriggers notriggerin notriggerun notriggerpostun N o executa nenhuma macro gatilho trigger de mesmo nome A o
99. t rio pessoal As macros definidas na configura o pessoal v o se sobrepor s macros globais As macros s o desenvolvidas pelos distribuidores e apresentam diferen as entre si recomend vel cuidado no uso de macros quando um pacote for para uso de mais de uma distribui o Na se o prep existem duas macros que facilitam o trabalho de desen volvimento de um pacote as macros setup e patch A primeira utilizada para criar a estrutura de diret rios necess ria para a compila o e para descom pactar o c digo fonte nestes diret rios enquanto a segunda usada na aplica o de atualiza es patches quando isso for necess rio Como citado anteriormente nessa se o que o c digo fonte deve ser totalmente preparado para compila o Isso inclui descompacta o dos fontes aplica o dos patches e checagem dos requisitos para compila o As macros wsetup e patch fazem as duas primeiras fun es mas para realizar a checa gem dos requisitos preciso usar as ferramentas denominadas autotools Segundo Camargo 2005 o projeto GNU desenvolve ferramentas que fazem a checagem dos requisitos do sistema e buscam facilitar o processo de compila o de um programa Ferramentas como autoconf automake au toheader e libtool s o chamadas genericamente de autotools Essas ferra mentas s o usadas para criar os conhecidos scripts configure e Makefile 78 geralmente utilizados durante a compila o
100. te da sa da da chave omitida A exclus o de uma chave p blica tamb m pode ser feita usando coman dos de rpm como no exemplo a seguir rpm e gpg pubkey lac70ce6 40 5 A base de dados RPM 5 1 Os arquivos da base de dados A base de dados RPM reside em var lib rpm sendo formada pelos arquivos descritos no Quadro 2 Quadro 2 Arquivos da Base de Dados RPM e suas Finalidades Arquivo Finalidade Basename O arquivo base Conflictname Armazena poss veis conflitos entre pacotes Dirnames Armazena as rotas dos pacotes Filemd5s Controle MD5 Sum dos arquivos Group Controle dos Grupos de cada pacote Installtid Controle ID de instala o Name Nomes dos pacotes Packages Controles de pacotes Providename O que prov Provideversion Qual vers o prov Pubkeys Chaves p blicas dos desenvolvedores Removed Controle de remo es Requirename Controle dos requerimentos Requireversion Controle das vers es dos requerimentos Shalheader Controla os sum rios SHA1 do cabe alho Sigmd5 Controla os sum rios MD5 do cabe alho Triggername Controle de gatilhos 41 Estes arquivos possuem em sua maioria o formato bin rio Berkeley DB Segundo Foster Johnson 2005 a biblioteca Berkeley DB pode ser descri ta da seguinte maneira A biblioteca Berkeley DB fornece uma API simples para um banco de dados Ela n o
101. tes bin rios RPM 7 2 O programa exemplo Para ilustrar o processo de constru o de um pacote RPM e os conceitos envolvidos nessa tarefa preciso ter um programa exemplo que sirva de refe r ncia na demonstra o pr tica deste trabalho Para tanto utilizar um programa real poderia tornar o exemplo muito complexo A solu o foi criar um pequeno programa cuja fun o servir de prot ti po para a cria o do pacote O programa exemplo ser chamado ARL Este pro grama foi escrito utilizando a linguagem C padr o e possui um nico arquivo de c digo fonte denominado arl c que ser usado para gerar um arquivo obje to drl o que ap s o processo de liga o feito pelo compilador dar origem a um execut vel chamado arl A finalidade deste programa exemplo exibir o texto ARL Administra o de Redes Linux seguido da data e da hora do siste ma quando invocado Propositalmente o programa ARL possui um pequeno ajuste em seu c digo de programa o Neste caso preciso criar uma atualiza o patch para que este programa funcione como desejado O c digo fonte do arquivo arl c pode ser integralmente visto na listagem a seguir 72 amp include lt stdio h gt include lt time h gt int main struct tm ptr time t lt lt time NULL ptr localtime amp lt printf ARL Administra o de Redes Linux s An asctime ptr 7 3 Cria o de uma atualiza
102. tes no vamente adaptando os nova vers o da distribui o Um dos principais motivos dessa incompatibilidade est relacionado com a quest o da hierarquia dos diret rios Apesar dos esfor os de padroniza o promovidos por entidades como a LSB atrav s de documentos como o FHS comum que a hierarquia de diret rios seja levemente diferente entre as distribui es O local de instala o de um programa na hierarquia do sistema de arquivos uma das op es pr definidas pelo empacotador do aplicativo Como a hierar quia de diret rios de cada distribui o apresenta pequenas diferen as em rela o s outras distribui es as distribui es podem se tornar incompat veis Esse fato gera incompatibilidades tamb m no uso dos pacotes Mesmo entre distribui es que utilizam um sistema de empacotamento de aplicativos id ntico n o h compatibilidade total Al m disso a ferramenta de gerencia mento de pacotes pode ser implementada de maneira diferente entre as distribui es Por essas raz es recomend vel na maioria das vezes utilizar pacotes criados especificamente para a vers o da distribui o em uso LSB acr nimo para Linux Standard Base entidade que define padr es abertos encontrada em www linuxbase org FHS acr nimo para Filesystem hierarchy Standard um protocolo para localiza o de arquivos e diret rios 13 Outra op o previamente definida pelo empacotador s o as permiss es de
103. tos para a constru o de pacotes Desta maneira quando instalados pacotes fonte SRPM s o alocados na estrutura de diret rios criada para a constru o de pacotes Os arquivos tarball os scripts e os patches s o alocados no diret rio SOURCES enquanto o arquivo spec salvo no diret rio SPECS Informa es sobre pacotes fonte n o s o sal vas na base de dados RPM As consultas s o feitas diretamente ao arquivo paco te Normalmente ap s serem usados para a constru o de pacotes esses arqui vos s o apagados do sistema O sistema RPM oferece dois modos de trabalhar com pacotes fonte Pode ser usado o modo rebuild ou recompile de acordo com a finalidade desejada Segundo Bailey 2000 os dois modos de opera o s o quase pratica mente id nticos a nica diferen a descrita do seguinte modo O modo rebuild faz as seguintes tarefas instala o pacote fon te descompacta os fontes compila instala o programa no sistema virtual e limpa o diret rio onde a aplica o foi constru da Al m disso a cons tru o de um pacote bin rio tamb m realizada Enquanto a op o recompile tamb m faz todos esses passos mas n o gera nenhum pacote essa a nica diferen a entre os dois modos Ent o na verdade esses dois modos s o vistos como atalhos para simpli ficar as opera es de compila o e constru o de pacotes 97 9 2 Constru o dos pacotes para o programa exemplo Baseado na teoria
104. tras Feita a checagem da integridade do pacote poss vel verificar que o sistema n o possui a chave p blica deste reposit rio Assim n o poss vel determinar se este um pacote confi vel rpm checksig fedora rpmdevtools 1 5 1 fc5 noarch rpm fedora rpmdevtools 1 5 1 fc5 noarch rpm SHA1 DSA shal md5 GPG N O OK FALTAM AS CHAVES GPG lac70ce6 31 O reposit rio Livna pode ser encontrado em http rpm livna org 38 O pr ximo passo importar a chave do reposit rio extras para que seja poss vel fazer a checagem de integridade e instalar o pacote com um grau de confiabilidade e seguran a b necess rio obter o arquivo da chave diretamente de uma fonte segura Essa pode ser o site do reposit rio ou de um dos discos de instala o pois usual o empacotador distribuir a chave p blica junto aos pacotes A instala o de uma chave p blica uma opera o cr tica para a segu ran a do sistema Ao importar uma chave o administrador afirma que confia to talmente na chave e nos pacotes assinados por essa chave p blica Caso uma chave falsa seja importada pacotes adulterados poder o ser instalados e passa r o pela checagem de seguran a sem indicar qualquer falha No sistema Fedora Core o arquivo com a chave do reposit rio extra est localizado no diret rio etc pki rpm gpg A importa o de chaves para uso de rpm uma opera o exclusiva do superusu rio root pois se trata de uma ope
105. tro php gt EWING Marc JOHNSON Jeff TROAN Erik RPM Documenta o toda documenta o dispon vel em usr share doc rpm 4 4 2 incluindo os manuais man Copyright Red Hat Linux 2002 FOSTER JOHNSON Eric RPM Guide on line 2005 Copyright 2003 2005 Red Hat Inc Dispon vel na Internet em lt http fedora redhat com docs drafts rpm guide en index html gt GURU LABS Creating Quality RPMs on line 2005 Copyright Guru labs sob a licen a Creative Commons Dispon vel na Internet em lt http Av ww guru labs com GURULABS RPM LAB GURULABS RPM GUIDE v1 0 PDF gt INTEL Corporation Informa es sobre processadores Intel on line 2006 Copyright Intel Corporation Dispon vel na Internet em lt http www intel com portugues products processor number definitions htm gt 106 LSB Linux Standard Base LSB vers o 1 2 da especifica o on line Dis pon vel na Internet em lt http www linuxbase org spec refspecs LSB 1 2 0 gLSB bookl html gt MORIMOTO Carlos E Linux Entendendo o Sistema Guia Pr tico Porto Alegre RS Editora Sul Editores 2005 la Edi o NEMETH Evi Manual completo do Linux S o Paulo SP Editora Pearson Makron Books 2004 la Edi o RIBEIRO Uir Certifica o Linux Rio de Janeiro RJ Editora Axcel Bo oks 2004 la Edi o SILVA Gleydson M da Guia Foca Linux Edi o 5 45 da Vers o In termedi rio on line 2006 Copyleft 1999
106. ueryformat se nenhum formato for especifica do Tamb m poss vel exibir qualquer uma das informa es do cabe alho sepa radamente usando r tulos rpm qi bash Name bash Relocations usr Version Pg Vendor Red Hat Inc Release 5 Ja Build Date S b 11 Fev 2006 04 14 58 BRST Install Date Seg 17 Jul 2006 16 00 53 BRT Build Host hs20 bc1 6 build redhat com Group System Environment Shells Source RPM bash 3 1 6 2 src rpm Size 5298847 License GPL Signature DSA SHA1 Seg 06 Mar 2006 16 58 29 BRT Key ID b44269d04f2a6fd2 Packager Red Hat Inc lt http bugzilla redhat com bugzilla gt URL http www gnu org software bash Summary The GNU Bourne Again shell bash version 3 1 Description The GNU Bourne Again shell Bash is a shell or command language interpreter that is compatible with the Bourne shell sh Bash incorporates useful features from the Korn shell ksh and the C shell csh Most sh scripts can be run by bash without modification This package bash contains bash version 3 1 which improves POSIX compliance over previous versions last Ordena os pacotes em uma lista de acordo com a data e hora de instala o Os pa cotes mais recentes s o exibidos no in cio da lista Esta op o deve ser usada em 53 conjunto com um par metro para definir quais pacotes ser o listados rpm qg System Environment Shells last tcsh 6 14 5 2 1 Seg 17 Jul 2006 16 04 03 BRT bash 3 1 6 2 Seg
107. uperusu rio Deste modo o ambiente de constru o de pacotes deve ser configurado para um usu rio comum seguindo as instru es do cap tulo 8 deste trabalho Configurado o ambiente de produ o basta alocar o arquivo tar ball e os patches no diret rio SOURCES al m do arquivo spec no diret rio SPECS para iniciar os testes de constru o dos pacotes 98 Seguindo as instru es do cap tulo 9 poss vel proceder a compila o dos arquivos e a cria o dos pacotes fonte e bin rio com a seguinte sintaxe rpmbuild ba target i686 sign arl spec Depois de constru dos o pacote bin rio alocado automaticamente no diret rio em rpmbuild RPMS 1686 e o pacote fonte em rpmbuild SRPMS Ambos est o prontos para serem usados com os v rios modos de RPM A se guir apresentada uma s rie de exemplos de comandos RPM aplicados aos pa cotes fonte e bin rio criados demonstrando o correto funcionamento da constru o de pacotes a Exibi o dos nomes dos arquivos que s o implementados pelo pacote rpm qlp arl 2004 2 1 1686 rpm usr local bin arl usr share doc arl 2004 2 arl html usr share doc arl 2004 2 rpm logo png b Exibi o apenas dos arquivos de documenta o implementados pelo pacote rpm qdp arl 2004 2 1 1686 rpm usr share doc arl 2004 2 arl html usr share doc arl 2004 2 rpm logo png c Exibi o das informa es do pre mbulo do pacote bin rio ar1 2004 2 1 1686 rpm 99
108. urar o sistema Esse pacote n o instala um aplicativo mas alguns arquivos no diret rio root Esses arquivos s o similares aos arquivos do diret rio etc skel que s o colocados nas pastas pessoais dos usu rios comuns quando na cria o desses usu rios No caso do pacote rootfiles esses arquivos s o especialmente ajustados para o uso do superusu rio e instalados no momento da cria o desta Rooffiles um pacote da distribui o FEDORA e pode ter um nome diferente para outras distribui es Basicamente os arquivos s o bash profile bash logout e bash re Observe que s o todos arquivos ocultos 12 6 7 conta administrativa Diferentemente da instala o pelo processo manual que exige a compi la o do c digo fonte a instala o de um pacote bin rio dispensa esse processo No pacote bin rio os arquivos est o compilados e prontos para instala o Os pacotes bin rios s o totalmente ajustados para serem instalados na vers o da dis tribui o GNU Linux para o qual foram criados Isso torna um pacote constru do para uma certa distribui o exclusivo da vers o para o qual foi criado apesar de haver exce es como os pacotes sem arquitetura ou mesmo criados para funcionar em m ltiplas distribui es Esta exclusividade pode ser vista como uma desvantagem no uso dos pacotes pois na atual forma como s o criados a cada nova vers o do sistema operacional necess rio reconstruir os paco
109. ursos empregados nessa tarefa Ao mesmo tempo que tr s benef cios para a seguran a integridade e a qualidade dos programas instalados desta forma Entender o funcionamento deste mecanismo importante para a forma o dos profissionais em administra o de redes Linux Neste trabalho ser realizada a abordagem dos principais conceitos relacionados com a gest o e gera o de pacotes de programas utilizando a ferramenta RPM Tema discutido e exemplifica do em seus variados aspectos atrav s de uma abordagem vol tada para a administra o de redes de computadores baseadas em sistemas GNU Linux IV Sum rio RE o KOO Li Kota PNR RR OR RS PD A PRE RR A PR RR ERRA 8 2 Conceitos Grai Sri seara erein eass T eaea SINA ONDA ERR R ADA e aa PAS ao 12 2 1 Conceitos b sicos sobre pacotes iieeeeeereeererererererens 12 2 2 O formato RPM de empacotamento eee 15 2 3 A nomenclatura de pacotes RPM serenas 16 2 4 As se es de um pacote RPM sssssssssssessessessenessessesstessssessressesses gt 25 3 Pacotes RPM e SRPM Detalhes e formas de uso ees 26 3 1 Os tipos de pacotes RPM e SRPM s ss eeeeereerererenes 26 3 2 Obten o de pacotes RPM e SRPM ceeeeseererereeeanes 28 3 3 RPM como um cliente FTP e HTTP 31 4 Mecanismos de seguran a de RPM eee eee ereeeeneraes 33 4 1 As pragas virtuais e a seguran a dos pacotes RPM
110. verifica o de RPM S mbolo Significado Finalidade S Size tamanho Monitora o tamanho do arquivo M Mode permiss es Monitora as permiss es 5 Assinatura MD5 Monitora a assinatura MD5 D Device Monitora os n meros maior menor de um device L Link Liga o Monitora uma Liga o U User Dono Monitora o Dono G Group Grupo Monitora o Grupo T Time Modification Monitora o mtime Por exemplo o pacote bash instala diversos manuais referentes a seus utilit rios A verifica o de RPM pode ser demonstrada pela introdu o de mo difica es controladas em dois arquivos de documenta o man desse pacote Os manuais est o armazenados no diret rio em usr share man man1 Um arquivo ser renomeado e o outro ter alterada a propriedade de dono e de grupo Em seguida ser feita a verifica o desse pacote por RPM Os comandos a seguir realizam as modifica es nos dois arquivos 58 cd usr share man manl mv times 1 gz copia times 1 gz chown unasi unasi umask 1 gz A verifica o de RPM acusa a aus ncia missing do arquivo renomeado e mostra os caracteres UG indicando que o dono User e o grupo Group do outro arquivo foram alterados Um campo verificado e que n o apresentou falhas de seguran a indicado por um ponto Sa das literais como missing indicam o estado atual do pacote Neste caso a sua aus ncia uma vez que o arquivo foi re nomeado n o p de ser e
111. vo spec Segundo Bailey 2000 o arquivo spec usado por RPM para controlar o processo de constru o de um pacote Um arquivo deste tipo uma cole o de instru es formada por macros usadas por RPM podendo ou n o possuir instru es de comandos do shell ou outra linguagem interpretada Podem ser usadas Perl ou Python por exemplo Esse conjunto de macros RPM e comandos interpretados vai guiar o pro cesso de compila o do c digo fonte dando origem a um aplicativo Posterior mente RPM pode criar tanto um pacote bin rio quanto um pacote fonte ou am bos Para tanto utilizar os arquivos gerados nesse processo de constru o O arquivo spec o ponto central da produ o de um pacote A qualidade da constru o de um arquivo spec determina todo o processo de cria o do pa cote De acordo com Bailey 2000 um arquivo spec tem muitas responsabili dades e tarefas durante a constru o de um pacote o que acaba por torn lo um pouco complexo O modo encontrado para diminuir esta complexidade foi a sua divis o em se es Cada uma delas fica respons vel por uma das partes relacio nadas com o processo de cria o de um pacote como se pode observar anali sando cada uma dessas se es 7 4 1 Se o pre mbulo Segundo Bailey 2000 a primeira se o de um arquivo spec o pre mbulo cuja fun o armazenar os dados sobre o pacote Estes ser o exibi dos quando um usu rio consultar inf
Download Pdf Manuals
Related Search
Related Contents
JACHÈRE ENVIRONNEMENT ET FAUNE SAUVAGE MELLIFÈRE Zentralsteuerung Bedienungsanleitung 10 Instalação Hidraulica pdf - Sika Liquid Plastics MONOGRAPHIE DE PRODUIT NASONEX suspension PRODUCT GUIDE 4, India Exchange Place, Kolkata – 700 001. OIL INDIA LIMITED Arat NS1356 holder 2005 Hephaestus Final Report - University of Detroit Mercy ECE 取扱説明書ダウンロード Copyright © All rights reserved.
Failed to retrieve file