Atenção: Antes de iniciar os procedimentos aqui documentados, garanta que sua Coleção de Ports esteja atualizada: portnap fetch postnap update

Tamanho: px
Começar a partir da página:

Download "Atenção: Antes de iniciar os procedimentos aqui documentados, garanta que sua Coleção de Ports esteja atualizada: portnap fetch postnap update"

Transcrição

1 Este documento é um meta artigo, constituido de uma série de artigos que documentam de forma prática a criação de um ambiente completo de controle e versionamento de projetos de desenvolvimentodesoftware,utilizandosubversion,trac,tortoisesvn,entreoutrosrecursos. Apesar de originalmente projetados para desenvolvimento de software, sistemas de versionamento concorrentepode,evemsendoutilizadoacadadiaparaumasériedeatividadesdistintas.éporissoque afreebsdbrasiltemdisponibilizadoaseusclientesestedocumento,parapermitirquepossamcriare implantarumsistemadessetipoporsisó.seodesejar,podemsolicitaranossotimedeconsultoriaque implantemososistemaparavocê,clientefreebsdbrasil.seráumprazer. O time de Consultoria da FreeBSD Brasil tem ampla experiência na implantação e treinamento in company para uso do Subversion como sistema de versionamento de projetos com sistema de desenvolvimentoparalelo.temosgrandesuniversidadeseinstitutosdetecnologiacomoclientesque usamumambientedeversionamentocriadopelafreebsdbrasil. Agrandevantgaemdoambientecriadoéafacilidadedeimplementar,manter,eatualizar,garantidas pelacoleçãodeportsdofreebsd,alémdaperformancequeoambienteofereceemfreebsd,jáqueo SubversionfazusodeBDB(BerkeleyDatabases)paragerenciarseurepositório,eessetipodebasede dados tira reconhecido proveito do subsistema de gerenciamento de memória e VM integrada do FreeBSD,alémdoSubversion,Trac,TortoiseSVNeoutros,ser,comoFreeBSD,licenceadossobLicença BSD. Se você é cliente FreeBSD Brasil e deseja ter um ambiente completo de desenvolvimento e versionamentoconcorrente,entreemcontatoimediatamentecomnossotimedesuporteeconsultoria, atravésdoportacorporativo( consultoria@freebsdbrasil.com.br. Atenção: Antesdeiniciarosprocedimentosaquidocumentados,garantaquesuaColeçãode Portsestejaatualizada: portnap fetch postnap update

2 PARTEI SUBVERSION Introdução A cada dia sistemas de versão concorrente vem sendo utilizados para os mais diversos fins. No passado era realidade apenas em grandes ambientes de desenvolvimentoparalelo,ondeliteralmentedezenasdedesenvolvedoresdemandavam acessosimultâneoaosmesmosarquivos,eterumsistemadeversãoconcorrenteera imperativo para garantir adequadamente um ambiente de trabalho concorrente, e principalmente,garantirsegurançadessesdados,deformaqueseumdesenvolvedor interferissenegativamentenotrabalhodeoutro,asmudançasemquestãopudessem serfacilmenterevertidasaoestadoanterior. Hojeapopularizaçãodoambientedeversãoconcorrentesémaior,eousodessas aplicações não torna se mais simples ou acessível, mas sim, mais necessária. O ambientedeversionamentohojeéparecidocomoqueera,emtermosoperacionais,há uma década atrás. Porém os conceitos de desenvolvimento evoluíram, e hoje até mesmo projetos com um ou dois desenvolvedores sãomantidosem base deversão concorrente,poisgarantesegurançaeacompanhamentohistóricodaevoluçãodecada projeto. Maisqueisso,nãoapenasprojetosdedesenvolvimentodesoftwareusamsistemas de versionamento hoje. Desde desenvolvimento de websites até documentos de editoraçãoeletrônica,comocoreldrawouphotoshop,incluindodocumentosdetexto formado Word ou OpenOffice, são mantidos em sistemas de versão concorrente. A possibilidade de backup automatizado e fácil, garantindo aumento de segurança, e reversão de modificações, são o principal motivador para a adoção desse tipo de ambiente de desenvolvimento.

3 Hoje existem dezenas de opções de sistemas de versionamento de projetos, esses sistemas são conhecidos com SCM ou apenas VCS (Version Control System). Alguns sistemasvcscomerciais,maisconhecidossão: ClearCase MicrosoftTeamFoundation Perforce E alguns sistemas de controle de versão livres, mais conhecidos são: CVS Subversion GIT Outros sistemas VisualSourceSafe PVCS SVK HG BZR menos conhecidos: Entreossistemasproprietários,oClearCaseéomaisconhecido,porémdeforma geralofereceumaboarelaçãoentrecustoerecursos,apesardenãoterperformance como outros concorrentes, e portanto não indicado para ambientes de desenvolvimento muito grandes (e muito grandes nos referimos a centenas de modificações por dia, literalmente por centenas de desenvolvedores simultânea/paralelamente). Entreosdesenvolvedoresquetrabalhamcomdiversossistemasdeversionamento,

4 aopçãocomercialmaisadotada,econsideradaamelhornoquesitofuncionalidades, facilidadedeusoeperformanceéoperforce.porém,operforceéconhecidoporserum sistemadealtocustoemsuasversõesmaiscompletas. OsistemaabertomaisconhecidoéoCVS,exatamenteporexistirhámaistempo,e seraprimeiraimplementaçãolivrecomumnúmeroderecursosqueotornasseviávela ser utilizado em todo tipo de ambiente, de qualquer porte, de projetos pequenos a gigantescos.ocvséaopçãodeescolhamaiscomum,entrelivresecomerciais.ao menosporenquanto. OProjetoFreeBSDéumdosmaiscompexos,dinâmicoseorganizadosprojetosde desenvolvimentodesoftwarenomundo.éoúnicoprojetoquejátevetesedepós graduaçãodefendida,poisseumodeloexclusivomostra sediferenteemuitoeficiente. NoProjetoFreeBSD,existeumtimecentral,chamadoCoreTeam,compostode7a 9 desenvolvedores, que coordenam as políticas e objetivos do Projeto. Porém, o desenvolvimento ativo acontece paralelamente em um ambiente de versionamento concorrenteemtrêsárvoresindependentes,sãoelas: 1. Aárvoredosrc(oFreeBSDdefato); 2. AárvoredePorts; 3. A árvore de Documentação; E, diferente de outros projetos livres ou proprietários, o acesso efetivo a essas árvoresdedesenvolvimentonãoécoordenadoousupervisionadoporum,ouumtime dedesenvolvedoreschefe.cadaumdoscercade400desenvolvedoresfreebsdtem liberdade,esãoresponsáveisporsuasmodificações,epodemrealizaressasmudanças nos ramos de desenvolvimento, segurança ou produção do sistema, sem nenhuma supervisão, sendo os único responsáveis por suas mudanças. Esse é um modelo regido por normas e regras bem estabelecidas, e

5 principalmente,apesardeaprimeiravistaparecercaóticoeanárquico,émuitobem projetado,rígidoemprocedimentos,eprincipalmentefuncional,ofereceliberdadepara evolução distribuída do Projeto, sem depender de decisões centralizadas. Exatamente por isso o Projeto FreeBSD é um dos maiores exemplos de desenvolvimentoparalelodesoftwarenomundohoje.todososoutrosprojetos,como Linux,NetBSD,OpenBSD,ouatémesmodedesenvolvimentodesoftwareproprietário seguemospadrõesconvencionais,tendoumlíder,ouumsupervisorresponsávelpela auditoriaecontroledetudoqueacontece,dasatividadesdecadadesenvolvedor,ou tem um time responsável por essa tarefa. ExatamenteporissooProjetoFreeBSDéconhecidocomooambientequemais põe a prova sistemas de desenvolvimento e versionamento concorrente. OCVSháanostemsidooprincipalsistemadeversionamentoutilizado,etem atendido o Projeto muito bem. Contudo, não é o único. Oficialmente os sistemas utilizados no Projeto são CVS e Perforce. Sim, o comercial e caríssimo Perforce. OProjetoFreeBSDnãoadquirelicençasdoPerforce,tãopoucousaversõesilegais. O Perforce é doado ao Projeto FreeBSD, pois vários desenvolvedores FreeBSD são financiadospelaperforce,eprincipalmentetambémporqueoperforcegostadeterum dos maiores projetos de Software do mundo, com características tão peculiares ao pontodeexistirtesedepósgraduaçãoestudando o,queusaoprojetofreebsdcomo referência, pois de forma geral poucos projetos tem esse nível de complexidade. Inúmeros commiters FreeBSD preferem trabalhar no Perforce do que no CVS. Quasemetade.AsdesvantagensdoCVSsãoofracosuporteaversionamentobinário, ausência de alguns recursos adotados recentemente em outros sistemas, e também menor performance geral que outras soluções, como o próprio Perforce. Não oficialmente, árvores alternativas são usadas por commiters com outros sistemas,comogit.porém,nãosãoiniciativasoficais,edeformageralsãousadaspor

6 poucos desenvolvedores. Contudo, o CVS tem sua liderançaameaçadaacadadiaporumnovo sistema: Subversion (ou apenas SVN). OSubversionapresenta,entretodasasopções,umadasmelhoresimplementações noquesitoperformance,concorrendolado a ladocomperforce.apresentaomelhor suporte a versionamento de arquivos binários do mundo, pois utiliza o BSDiff e BSDPatchcriadosporColinPercival,commiterFreeBSD.Temaindaavantagemdeser licençabsd,trabalharcomumconceitomaissimplesdeárvoregenealógicadeversões, oferecerrecursosmodernos,eterodesenvolvimentomuitomaisativoquequalquer outro sistema de versionamento livre. O Projeto FreeBSD planeja migrar para os próximos 18 meses sua estrutura primáriadecvsparasvn.hojeosvnjáéutilizado,experimentalmente. Nestesendereços: ÉpossívelacompanharominuciosotrabalhodeavaliaçãodasalternativasaoCVS, suaslimitações,suasvantagens,eseusrecursos.etambémépossívelobservaromaior trabalho, realizado por Nik Clayton, acerca da migração para SVN. Exatamente pelo destaque maior que SVN tem hoje em dia, qualquer nova implantaçãodesistemasdeversionamentoutilizasvn.cvsésistemalegado,etodosos projetostendemamigrardecvsparasvn.algunsdosmaisfamososprojetosquejá realizaram essa migração são:

7 Apache ApacheFoundation SpamAssassin ApacheFoundation KDE KDEProject Mono Samba Conectiva/Mandriva Outros... UmcomparativoentreSubversioneoutrossistemasdeversãoconcorrente,pode serencontradoaqui: ObjetivoDesteArtigo Ao longo deste documento configuraremos o mais completo ambiente de trabalhoutilizandosubversion,queinclui: Subversion; Apache2comsuporteaDB4.2 Módulomod_davparaApache2 Módulomod_dav_svnparaApache2 Módulomod_authz_svnparaApache2 Com esse ambiente, combinaremos duas das mais poderosas ferramentas do mundo de Software Livre, o Apache e o Subversion. Subversion suporta transporte nativo, protocolo svn://, local, protocolo file:// e remoto com ssh:// e também com Apache, utilizando ou

8 integraçãodeseuambientedeautenticaçãocomsistemanativo(usuáriosdosistema local), bem como através dos sistemas de autenticação Apache. AintegraçãocomApacheéamaisindicada,eaqueutilizaremos.Aofinalda primeiraetapanósteremos: RepositórioSVNtotalmentefuncional; ControledeAcessoporUsuárioseGruposemCadaRepositório,sendofeitopelo arquivo/usr/local/etc/svn_authz.conf; Definiçãodeusuáriosesenhasem/usr/local/etc/svnpasswd Estruturaderepositóriodisponívelem/usr/home/svn Efaremosnossosprimeirostestecriandoumrepositório,fazendonossoprimeiro checkout, adicionando o primeiro arquivo e por último, realizando nosso primeiro commit. InstalaçãodoApache2 AprimeiraetapaégarantirqueoApache2.0estejainstaladoemseuambiente,e comsuporteadb4,nomínimoaversãodb4.2,paraisso,atravésdacoleçãodeports dofreebsdbastaapenas: cd /usr/ports/www/apache20/ make WITH_BERKELEYDB=db42 install clean InstalandooSubversion Agora é necessário instalar o Subversion com suporte a APR do Apache2, com suportea MOD_DAV_SVN,suportea MOD_SVN_AUTHZ ecomsuportea ASVN.Deforma geralissoseriaumatarefaumtantoquantoárduaemanual,emoutrossistemas.mas

9 nãoatravésdacoleçãodeportsdofreebsd,ondeesseprocedimentoseresumea: cd /usr/ports/devel/subversion/ make WITH_MOD_DAV_SVN=yes WITH_APACHE2_APR=yes \ WITH_SVNSERVE_WRAPPER=yes WITH_ASVN=yes install clean Se houver qualquer conflito ou problema na compilação do /usr/ports/www/neon (queéumadependênciaaessenossoambiente),deinstalee reinstale o,combinando pkg_delete -f neon-\* cd /usr/ports/www/neon/ make install clean EretorneaoprocedimentodeinstalaçãodoSubversion. ConfiguraçãodoApache Nosso ambiente almejará a mais complexa abordagem, onde existirão diversos repositórios,cadaqualcomsuaprópriapolíticadeacesso,ondeaprincípiotodosterão acessodeleitura(acessoanônimo)masapenasusuáriosautenticadospoderãofazer modificaçõesemcadarepositório.apolíticadeacessopoderáserredefinidaaqualquer momento através do arquivo de controleauthzdosubversion,queaprenderemosa seguir. Todas as operações feitas através do sistema WEB_DAV, (sistema de Directories sobreprotocolohttp)emespecialdomod_dav_svnfazemverificaçõesdesegurança quedependemdonomedaestaçãolocalserplenamenteconhecidapeloapache.então assumiremos que no seu ambiente, já existe uma entrada DNS adequadamente configurada,queaponteparaoservidorondeestáosubversion,eessaentradatenhao

10 nome: svn.dominio.com.br Qualquernomeéválido,edefatoseuservidorprovavelmentejáteráumnomede DNS adequadamente configurado. Pode utilizar esse nome, não há necessidade, obviamente,deteraexpressão svn noendereçodohost. Garanta que seu FreeBSD esteja com hostname devidamente configurado (hostname= svn.dominio.com.br, no /etc/rc.conf), adicione as entradas apropriadasno/etc/hosts: IP svn.dominio.com.br svn localhost.localdomain localhost EditeoarquivodeconfiguraçãodoApache, vi /usr/local/etc/apache2/httpd.conf ProcurepelaentradaServerNameeconfigure aapropriadamente: ServerName svn.dominio.com.br ProcurepeloblocodeentradasLoadModule,eobservequeoPortsjáadicionouas seguintesentradasnofinaldessebloco: LoadModule dav_module libexec/apache2/mod_dav.so LoadModule dav_svn_module libexec/apache2/mod_dav_svn.so LoadModule authz_svn_module libexec/apache2/mod_authz_svn.so DessaformacarregamososmódulosDSOdoApachequenosdásuporteàDAV,

11 DAV_SVNeAUTHZ_SVN,oprimeiroésuportegeralaWEB_DAV,osegundoésuporte ao SVN através do protocolo encapsulado em uma implementação padrão WEB_DAV,eoúltimogarantesuporteaosrecursosdeautenticaçãodeusuáriosestilo SVN,paraacessoaosrepositórios. Se o ports não adicionar essas entradas, desconfie que o procedimento de instalaçãodosubversionnãofoicompletadoadequadamenteouquealgodeuerrado, reviseasaídadoprocessoereinicieainstalaçãodosubversion.setudofoicompletado comsucessoéprovávelqueseuhttpd.confjátenhasidomodificadodrásticamente,eo sistemadeportsnãoidentificouondeadicionaressasentradas,entãogarantaqueesses módulosexistemem ${PREFIX}/libexec/apache2/ Onde${PREFIX}porpadrãoequivalea/usr/local: ls /usr/local/libexec/apache2/*svn*.so E adicione as entradas apropriadamente em seu httpd.conf (normalmente desnecessário,poisraramenteoportsnãoconseguiráadiciona lasparavocê). Atenção: Esseéomomentoapropriadoparavocêpensaremmodosdeacesso,permissões, autoridade e direitos. Considere que o Apache terá que ter acesso de escrita na estruturaderespositóriodosubversion.entãovocêpodegarantirporexemploqueo grupo do Apache (www) tenha direito de escrita em todos seus repositórios Subversion,ousepreferircriarumgrupoadicional,queteráprivilégiosdeescritanos seus repositórios, e colocar o usuário do Apache (www) nesse grupo, ou ainda substituirogrupocomqueoapacheexecutará,atravésdadirectiva: Group <grupo>

12 Atenção: Esseéomomentoapropriadoparavocêpensaremmodosdeacesso,permissões, autoridade e direitos. Considere que o Apache terá que ter acesso de escrita na estruturaderespositóriodosubversion.entãovocêpodegarantirporexemploqueo grupo do Apache (www) tenha direito de escrita em todos seus repositórios Subversion,ousepreferircriarumgrupoadicional,queteráprivilégiosdeescritanos seus repositórios, e colocar o usuário do Apache (www) nesse grupo, ou ainda substituirogrupocomqueoapacheexecutará,atravésdadirectiva: Setiverdúvidassobreamelhorabordagem,ouseuambientenãoestiverdedicado a outras funções complementares, continue seguindo este documento e use a abordagemaquiindicada.umaoutraopçãomaiselaboradaéutilizaracls.porém, desnecessária. Nossa estratégia de permissõesseráamaisseguraopossível,dandoapenasos direitosdeacessoqueoapacheprecisa,apenasnosdiretóriosapropriados,enadaalém disso,inclusive,sematribuirprivilégioadicionalalgumanenhumarquivooutornaro grupowwwproprietáriodosarquivosdosubversion. Adicioneentãoumgrupochamado'svn'.Essegruposeráproprietáriodenosso ambientederepositório,eteráprivilégiosdeescritaexclusivamenteondenecessário, nenhumlocalamais: pw groupadd svn Agoragarantequeousuáriowww(querodaoApache)sejapartedessegrupo,sem modificaragrupoprimáriodousuário,tãopoucofazendooapacherodarcom Group svn Basta garantir no sistema que o usuário Apache seja parte do grupo svn complementarmente(nãogrupoprimário).paraisso,seguindooclássicoebomestilo

13 BSD,bastausaropw(1)eadicionarousuáriowwwcomomembrodogruposvn: # pw moduser www -G svn Ousepreferirediteo/etc/groupenaentradadogruposvn,naúltimacoluna, adicioneousuáriowwwcomomembro.sehouver(normalmentenãohaverá,exceto emabientecomplexodedesenvolvimento)maisdeumusuárionessegrupo,alistadeve serseparadaporvirgula.aentradadogruposvnnoarquivo/etc/groupficarásimilara: svn:*:1015:www Oueventualmente,sehouvermaisdeumusuárionessegrupo: svn:*:1015:eksffa,www Agoraadicioneaohttpd.conf(/usr/local/etc/apache2/httpd.conf)umaentradado tipolocation,dentrodoblocoglobal,juntoouemumcontainervirtualhostsedesejar, indicandocomooapachedevesecomportarquandooendereçodesejadoparaacesso aosrepositóriosforutilizado.esseendereçoseráo Eaentradadeveseraseguinte: <Location /svn> DAV svn SVNParentPath /usr/home/svn AuthzSVNAccessFile /usr/local/etc/svn_authz.conf Satisfy Any

14 Require valid-user AuthType Basic AuthName "Repositorios SVN FreeBSD Brasil LTDA" AuthUserFile /usr/local/etc/svnpasswd </Location> Cadaumadessasentradastemvaloresanossaescolha: DAV svn essaentradaindicaaoapacheparaprocessaresseendereço(location) comowebdav,emespecialomódulodav_svn,quefaráointerfaceamentoentreo protocolohttpeoprotocoloutilizadopelosubversion; SVNParentPath essaentradaapontaaestruturabaseondeestarãotodosos nossos respositórios Subversion; como nosso ambiente contempla múltiplos repositórios,apontamosparaabase;seseuintúitoforapenasumrespositóriopode apontardiretamenteparaaestruturadopróprio; AuthzSVNAccessFile apontaparaoarquivodeconfiguraçãoondeaspolíticas deacessoacadarepositórioestarãodisponívies;porpadrãoessearquivonãoexiste, entãovocêpodeapontá loparaondedesejar,jáqueteremosquecriá lo;ocaminho escolhidonessedocumentoéomaisapropriadopoisficano${prefix}deaplicaçõesde terceiros, e também identifica adequadamente o conteúdo desse arquivo de configuração; As outras opções: não são instruções intrísecas ao Subversion, mas sim tradicionais do Apache, que controlam regras de autenticação para acessar esse Location;Aestratégiaaquiéaseguinte:primeiro,tentamosacessarumadeterminada estrutura sem autenticação (Satisfy Any). Todas que conseguirmos, navegaremos normalmente.emdeterminadomomento,seosvn_davidentificarumaestruturade

15 respositórioouumrepositórioquetenhapolíticadeacessoporusuário(configuradono arquivo svn_authz.conf),eesteusuárionãoestiverlogado,aprincípioeletentará gerarumerrodeacessonoapache,porém,oapachecairánofallbackparaaentrada Require valid-user.issoativaráoauthtype,configuradocomobasic,eoapache solicitará usuário e senha, que serão verificados no arquivo indicado pelo AuthUserFile. Se a autenticação for concluída com sucesso o DAV_SVN terá a informação de que usuário está autenticado, e se este usuário estiver com acesso autorizado no arquivo svn_authz.conf, o acesso é permitido, senão o Apache retornaráumamensagemdecódigo403(forbidden). AuthName éopcionaleserve apenasparaidentificaracessoaoquê,requerautenticação. PortantoaindatemosquecriaroarquivoapontadoporAuthUserFile etambém AuthzSVNAccessFile,quenãoexistem. Agora garanta que o acesso a estrutura de respositórios SVN é permitido por qualquerorigem: <Directory /usr/home/svn> AllowOverride None Order Deny,Allow Allow from all </Directory> Noteque,apesardeincomumparaessanossaabordagem,seapenasumendereço ou apenas uma rede puder acessar essa estrutura, você pode trabalhar melhor esse recursodo Apache, porexemplo, parapermitirqueapenasosendereços e acessemaestrutura: <Directory /usr/home/svn> AllowOverride None

16 Order Deny,Allow Allow from Deny from all </Directory> No caso acima ainda que autenticado ou com todas permissões no ambiente, apenas osendereços IP mencionadospoderãoacessarnossosrepositórios.usecom cautela. Porúltimo,sevocêforadeptodeobscuridadedeinformações,nãovaiquererque ninguém saiba através de cabeçalhos http ou na assinatura automática de páginas geradas pelo Apache, que você tem suporte a esses módulos DAV, então se desejar modifiqueaentradaservertokensparaprod: ServerTokens Prod CriandoUmRepositório Nossa estrutura de repositórios ainda não existe, então vamos criá la, e dar as permissõesadequadas,inclusivepropriedadeaogrupoquecriamos(svn): mkdir /usr/home/svn chgrp svn /usr/home/svn E vamos criar o repositório propriamente dito. Nesse exemplo criaremos um repositório chamado projeto01. Para isso, usaremos a aplicação svnadmin com o argumentocreate: svnadmin create /usr/home/svn/projeto01

17 Agora vem a questão sobre privilégios. QuandoseconhececomooSubversion trabalha de fato, é fácil identificar onde o privilégio de escrita é necessário. A documentação oficial do Subversion é exemplarmente completa, e observando a, identificamosqueoacessodeescritaénecessárioapenasnosdiretórios db/ dav/ Emcadarepositório.Portantonanossaabordagem,seránecessárioprivilégiode escritaem: /usr/home/svn/<repositorio>/db /usr/home/svn/<repositorio>/dav Onde<repositorio>écadarespositórioquecriarmos.Portantocomoacapabosde criar o repositório de versões concorrentes projeto01, garanta a propriedade desses diretóriosaogruposvneosprivilégiosadequados: chgrp -R svn /usr/home/svn/projeto01/db /usr/home/svn/projeto01/dav chmod -R g+rwx /usr/home/svn/projeto01/db /usr/home/svn/projeto01/dav AgoraatravésdeumnavegadorWebacesse: Note que o Apache pedirá autenticação, mesmo para leitura! Isso porque não avisamosemlugaralgumquequalquerusuáriotemacessodeleituraaesterepositório. De fato, não informamos que qualquer usuário tem acesso a qualquer coisa, então aindaqueconseguíssemosnosautenticar(oqueéimpossível,jáquenenhumusuário existeainda),aindaassimnãoteríamospermissãoalguma,poisousuárioautenticado nãoépermitidoafazernadapelosistemadeautenticaçãodosubversionpordav_svn.

18 AdicionandoUsuários NoarquivoindicadoporAuthUserFile,emnossocaso,/usr/local/etc/svnpasswd, criaremososusuáriosedefiniremosassenhas,nomelhorestiloapache. Paraisso,crieoarquivoeoprimeirousuáriocomocomandohtpasswdquefoi instalado junto com o Apache, com os argumentos c e m. Criaremos o usuário 'patrick'noexmeploaseguir: # htpasswd -c -m /usr/local/etc/svnpasswd patrick New password: Re-type new password: Adding password for user patrick Como observado o sistema pedirá a senha do usuário, e depois solicitará confirmaçãodessasenhaparasódepoisadicioná loaoarquivoindicado.sedesejar (não indicado, por motivos de segurança), é possível passar a senha na linha de comando,evitandoqueestasejasolicitadainterativamente: htpasswd -c -m /usr/local/etc/svnpasswd patrick <senha> O argumento -c cria o arquivo, e portanto deve ser usada exclusivamente a primeiravezqueumusuárioforadicionado,enenhumaoutra.senãooarquivoserá recriado.oargumento -m fazosistemausarsenhamd5,muitomaisseguroqueas combinaçõesdesqueoapacheusaporpadrão. Apartirdosegundousuário,adicione ossemoargumento cportanto: htpasswd -m /usr/local/etc/svnpasswd usuario2

19 Asentradasnessearquivonessemomentodeverãoestarsimilaresaseguinte: # cat /usr/local/etc/svnpasswd patrick:$apr1$t.esb...$kzs8//8gg0ogj.a4xvj7u. usuario2:$apr1$pxf5c...$zbuhweiqjcinybs9qi8690 Ótimo,agoraacessenovamente Observequemaisumavezserápedidaautenticação,autentique secomousuário que acaba de ser criado. Você notará que o Apache permitirá a autenticação, com sucesso,masoacessoaoendereçoacimaaindaestaráproibida,eoapacheretornará umerro403(forbidden). Ótimo.Afinalnãoconfiguramosaindaoquecadausuáriopodefazer,portanto, nãopodemfazernadaporpadrão. Configurando Políticas de Acesso (Authz) DAV_SVN (AuthzSVNAccessFile) OarquivodeconfiguraçãoindicadopeladirectivaAuthzSVNAccessFilesegueo mesmo formato dos arquivos authz nativos do Subversion, bem como do arquivo svnserve.conf, com exceção que dispensaremos o arquivo passwd, pois usuários e senhascontrolamospelosistemadeautenticaçãodoapache. Felizmenteessearquivoéextremamentesimpleseintuitivo.Eleécompostode blocos de configuração, e estes blocos podem ser dispostos em qualquer local do arquivo,osblocossãodois,oprimeiro,opcional,éoblocodegrupos,quepermiteque

20 definamosgruposdeusuárioseosusuáriospartedessegrupo.devemosdefinirum grupoporlinhaapósadefinicãodobloco[groups],porexemplo: [groups] grupo1 = usuario1, usuario2, usuario3 grupo2 = usuario3, usuario4, usuario9 grupo3 = usuario5, usuario2, usuario6 Os próximos blocos indicam as políticas de acesso que definiremos para cada repositórioousubsessãodeumrepositório.paraissotemosdoistiposdeprivilégios: r=privilégiodeleitura w =privilégiodeescrita Se quisermos definir uma política válida para todos os repositórios, basta identificarmosatravésdoblocoraiz.osblocosqueidentificampolíticasporrepositório temoseguinteformato: [<repositorio>:<path>] Porexemplo: [repositorio1:/] Indicaráaspermissõesparaorepositorio1inteiro; [repositorio1:/cliente02/] Indicará as permissões apenas para a estrutura/cliente02dentrodorepositorio1; [/] Indicaráaspermissõesparatodososrepositórios;essetipodeentradanão temprecedênciaalguma,equalquerdefiniçãoseletivaporrepositóriossobrepõeessas definições; Oformatoderegrasdeacessoparacadarepositóriosegueopadrão:

21 [<repositorio>:<path>] <usuario> = <privilegio> <usuario> = <privilegio> Podemhaverinúmeraslinhasdepermissõesporbloco;osrecursos<privilegio>já conhecemos,podemserr(leitura)ouw(escrita),e<usuario>podeser: * umgrupodeusuários; usuário apenasousuário; Éamplamenteindicadoquedefinamosgruposdeusuáriossemprequepossível, poisfacilitaocontroledeacessoacadarepositório. Configurandonossoarquivodepolíticadeacesso Agora que já conhecemos o formato do arquivo indicado por AuthzSVNAccessFile, podemos configurar nossa política de acesso. Edite então o arquivo/usr/local/etc/svn_authz.conf: vi /usr/local/etc/svn_authz.conf Enelevamosconfigurarnossoblocodegruposinicialmente,criandoumgrupo compostodenossosusuários,eoutrogrupodeexemplo,compostodeumdenossos usuárioseumusuárioaindainexistente: # # Definicao de grupos # [groups]

22 grupo1 = patrick, usuario2 grupo2 = usuario2, cliente3 Agorapodemoscomeçaraconfigurarapolíticadeacessoparacadarepositório.É indicado inicialmente ter uma política para todos os repositórios, criaremos uma política portanto que permite que qualquerusuário, mesmonãoautenticado,tenha privilégiodeleituraatodosnossosrepositórios.lembrandoqueessaéumapolíticade exemplo e propícia a sistemas abertos, onde qualquer um pode livremente acessar todososprojetos,masapenasdesenvolvedoresautorizadospodemfazermodificações nosrepositórios.seseuambientefortotalmenteprivado,essapolíticalivredeleitura nãoseadequaráavocê,provavelmente. Complementeentãoo/usr/local/etc/svn_authz.confcomaseguinteentrada: # # Definicao de grupos # [groups] grupo1 = patrick, usuario2 grupo2 = usuario2, cliente3 # # Politica de Acesso por Repositorios # # Todos os repositorios (politica padrao) [/] * = r AgoraaponteseunavegadorwebparaaURLsvndoprojeto:

23 E você perceberá que pela primeira vez, foi possível fazer acesso a nosso repositórioprojeto01,eonavegadornãopediráautenticaçãoparapermitiroacesso deleituraaesseequalqueroutrorepositório.issoporquevocêinformouquetodosos usuários(*)temacessodeleitura(r)atodososrepositórios([/]); Éhoradedefinirumapolíticaanossorespositório.Nesseexemploinformaremos queogrupo1poderáteracessopleno(leituraeescrita): # # Definicao de grupos # [groups] grupo1 = patrick, usuario2 grupo2 = usuario2, cliente3 # # Politica de Acesso por Repositorios # # Todos os repositorios (politica padrao) [/] * = r # Repositorio projeto01 = rw Senãodesejarqueglobalmente,usuáriosanônimos(nãoautenticados)possamter acessodeleitura,removaaconfiguraçãodepolíticapadrão([/])edefinaapolíticade acesso anônimo (*) para cada repositório, individualmente. Lembrando que podem haverquantasdefiniçõesvocêquiser,umaporlinha.segueumexemplodedefinição

24 maisabrangente: # # Definicao de grupos # [groups] grupo1 = patrick, usuario2 grupo2 = usuario2, cliente3 # # Politica de Acesso por Repositorios # # Todos os repositorios (politica padrao) [/] * = r # Repositorio projeto01 = = r # Repositorio projeto02 [projeto02:/] * = = rw [projeto02:/publico] * = rw [projeto02:/ramo2] usuario2 = rw

25 @grupo2 = r Introduçãoaosvnemlinhadecomando Paratestarmosnossoambiente,devemosprimeiroteralgumconhecimento,ao menos básico, do ambiente de linha de comando dosvn, doponto de vista de um usuáriofrequentedosistemadeversionamentosubversion; Alistacompletadecomandoseargumentosaoaplicativosvnpodeserobservada, inclusivedocumentada,em: bean.com/en/1.1/ch09.html Ouemportuguês(emprocessodetradução)em bean.com/nightly/pt_br/svn.ref.html AmbientedeTrabalho Aprimeiracoisaafazerécriarmosnossoambientedetrabalholocal.Oconceitode trabalhoemumsistemadeversionamentoconcorrenteésimples:vocêdeveteruma versão local do repositório em que irá trabalhar, ou seja, precisa ter o repositório localmenteiniciado(comando checkout),ecadamodificaçãolocalnãoéefetivadano repositórioatéquevocêordene(comando commit).cadaarquivocriadolocalmente nãopodeserefetivadoantesdeseradicionado(comandoadd). SevocêestáacostumadocomoutrosambientescomoCVSficarásurpresocoma simplicidadedeabordagemnosubversion,semanecessidadededefinirmilharesde variáveisdeambienteparaconstituirseuambientedetrabalho.senãoestiver,teráuma ótimaexperiênciainicialcomsubversion.

26 Crieumaestruturadediretórioquechamarádesvn_root;lembrandoquesevocê estiverdesempenhandoasatividadesdeclienteemumaestaçãodistinta(normalmente estará) precisa instalar o Subversion, pode fazer isso com as mesmas instruções anteriores,masvocênãodependedoapacheourecursosadicionais,bastaapenasum makeinstallclean: cd /usr/ports/devel/subversion make install clean rehash crieseuambientedetrabalho: mkdir ~/svn_root Entrenessediretórioefaçaocheckoutdorepositório: # svn checkout Checked out revision 0. Ocomando'svnco'ésinônimode'svncheckout',pode seusarportantoqualquer umdeles.aliasexistemsinônimossimplificadosparacadacomando.nãousaremosos sinônimossimplificadosparamelhorentendimentodoscomandos. Observe através da mensagem Checked out revsion 0 que você completou o checkout com sucesso, e que a árvore atual está na revisão (versão) 0. Dentro de ~/svn_root/listeoconteúdo: % ls projeto01/

27 Observeoconteúdodentrodessaestrutura: % ls -1 projeto01/.svn/ Portantoapenasodiretório~/svn_root/projeto01/.svn/foicriado,edentrodele estãoosarquivosdecontroledosvnparaacópialocaldeseurepositório.sãoarquivos que você precisará modificar raramente de fato é provável que nunca precise modificarnadaaidentro,jáquecadaatividadequesefaçanessediretóriopodeserfeita comcomandosmaisapropriados).observeoconteúdo: % ls -1 projeto01/.svn/ all-wcprops entries format prop-base/ props/ text-base/ tmp/ Portantonãoháqualquerarquivonorepositório,quesejapartedeseuprojeto.Os únicosarquivossãodecontrole,doprópriosubversion.éhoradeaprenderumpouco sobreoambientedeversionamento. Entreem~/svn_root/projeto01/ecrieseuprimeiroarquivo: % cd projeto01/ % echo "Meu primeiro arquivo" > LEIAME.txt % echo "Este e o repositorio do projeto01, leia os termos de licenca." >> LEIAME.txt % ls

28 .svn/ LEIAME.txt Perfeito, porém, o arquivo LEIAME.txt existe apenas na sua estação, e não no repositório.paraadicionaraorepositóriouseocomandosvnadd: % svn add LEIAME.txt A LEIAME.txt Naprática,ocomandosvnaddapenasadicionaoarquivonalistalocaldearquivos quefazempartedesserepositório(orepositóriodeversionamentoconcorrenteonde vocêestátrabalhando),masparadefatoadicionaroarquivonorepositóriovocêdeve efetivaraalteraçãocomocomandosvncommit.éprecisoadicionarumamensagemde log,eestadeveseromaisricaopossívelemdetalhes,poiséaprincipaldocumentação de cada modificação que você faça no repositório. Você pode adicionar (svn add), efetivar (svn commit) e fazer qualquer operação com arquivos únicos ou diretórios inteiros. Se não passar a mensagem com o argumento m o sistema abrirá seu ${EDITOR}detextospadrãopedindoparaquevocêescrevaamensagemdelogparao commit. É interessante passar os logs na linha de comando, quando as mensagens forempequenas(commitmessagesdepoucaslinhas) Vamosefetivarentãonossamudança: % svn -m "Este e o meu primeiro commit, estou iniciando o repositorio projeto01 e importando os dados iniciais." commit LEIAME.txt Nesse momento, se seu repositório não permite escrita anônima, repositório exigiráautenticação: % svn -m "Este e o meu primeiro commit, estou iniciando o repositorio projeto01 e importando os dados iniciais." commit LEIAME.txt

29 Sending LEIAME.txt Authentication realm: < Repositorios SVN FreeBSD Brasil LTDA Password for 'eksffa': Authentication realm: < Repositorios SVN FreeBSD Brasil LTDA Username: patrick Password for 'patrick': Transmitting file data. Committed revision 1. % Ou seja, o sistema a princípio tentará se autenticar com o usuário Unix local (${USERNAME}),senãoforválido,permitiráquevocêdefinaonomedeusuárioese esteforválido,solicitaráasenha.seasenhaestivercorretaeousuárioemquestãotiver acessodeescritaouformembrodeumgrupocomacessodeescrita,comoéocasodo usuário'patrick'usadonoexemploacima,oarquivoseráefetivado(submetido)evocê notaráamensagemfinaldizendo CommitedrevsionX onde X seráonomedarevisão (versão)daárvorenoseurepositóriodetrabalho. Apenasaprimeiravezseráprecisoseautenticar.Osistemaselembradepois,por 300segundos,quevocêjáestáautenticado.Épossívelevitarqueosistematenteum nomedeusuáriosozinhoouquetepergunte,passandonalinhadecomandoousuário. Porexemplo,façamosumasegundamodificação: % echo "Segunda modificacao" >> LEIAME.txt % svn --username patrick -m "commit de teste" commit LEIAME.txt Password: Sending LEIAME.txt Transmitting file data. Committed revision 2. A partir desse momento, durante os próximos 300 segundos não será mais necessáriopassaro usernamenemdigitarsuasenhanovamente.

30 Obtendoinformaçõesdorepositórioremoto Apartirdessemomentopoderemosaqualquermomentosolicitarinformaçõesdo repositóriosvnremoto.porexemplo,paralistarosarquivosdisponíveisnorepositório, podemosusarocomandosvnlist: % svn list LEIAME.txt Paraobterumresumodasinformaçõesdorepositório,podemosusarsvninfo: % svn info Path: projeto01 URL: Repository Root: Repository UUID: cd77f28f-8d2e c18be92bd7fd Revision: 3 Node Kind: directory Last Changed Author: patrick Last Changed Rev: 3 Last Changed Date: :16: (Sat, 21 Apr 2007) Inclusiveparaobterinformaçõessobrecadaarquivo: % svn info Path: LEIAME.txt Name: LEIAME.txt URL: Repository Root: Repository UUID: cd77f28f-8d2e c18be92bd7fd Revision: 3 Node Kind: file Last Changed Author: patrick

31 Last Changed Rev: 3 Last Changed Date: :16: (Sat, 21 Apr 2007) Nessecaso,oarquivoLEIAME.txtencontra seemsuaterceirarevisão,quedefato éarevisãodaárvore.temosadatadeúltimamodificação,onomedousuárioquefeza últimaalteração,aurlecaminhodoarquivonorepositório. Comocomando svndiff podemostirarum diff remotoentrequalquerarquivo, como ele era em cada revisão, arbitráriamente. Por exemplo, pelo svninfo eupude saber que a árvore nesse repositório encontra se na revisão 3. Quero saber qual a diferençadessearquivocomoeleeranarevisão1daárvorecomparadocomarevisão2, portantoadiferençaentreduasrevisõespassadas.paraissoosvndiffcomoargumento rpermite nosescolherrevisõesarbitráriamente: % svn diff -r 1:2 Index: LEIAME.txt =================================================================== --- LEIAME.txt (revision 1) +++ LEIAME.txt (revision -1,2 Meu primeiro arquivo Este e o repositorio do projeto01, leia os termos de licenca. + Portantoaúnicadiferençaéumalinhaembrancoamais.Vejamosdarevisão1 coma3: % svn diff -r 1:3 Index: LEIAME.txt =================================================================== --- LEIAME.txt (revision 1) +++ LEIAME.txt (revision -1,2

32 Meu primeiro arquivo Este e o repositorio do projeto01, leia os termos de licenca. + +Segunda modificacao PortantoadiferençaéumalinhaembrancoamaiseumalinhacontendoSegunda modificacao. Revisandomensagensdelogdecommit Comsvnlogépossívelanalisartodasasmensagensdelogdeumarquivo,diretório, ou repositório inteiro remoto. Se você não informar a revisão desejada, obterá as informaçõesde log detodasasrevisões.senão,comoargumento r podeinformara revisãoquedesejarobteramensagemdelog.porexemplo,queroobteramensagemde logdarevisão3doarquivoemquestão: % svn log -r r3 patrick :16: (Sat, 21 Apr 2007) 1 line commit de teste Portantocommitdetestefoioqueousuáriopatricklogou,emumamodificaçãode umalinha(1line)narevisão3(r3)queaconteceuem :16: quefoi emumsábado,21deabrilde2007 Sat,21Apr2007. Paraobtertodasasmensagensdelog: % svn log r3 patrick :16: (Sat, 21 Apr 2007) 1 line

33 commit de teste r2 patrick :08: (Sat, 21 Apr 2007) 1 line r1 patrick :04: (Sat, 21 Apr 2007) 1 line Este e o meu primeiro commit, estou iniciando o repositorio projeto01 e importandoosdadosiniciais. EssessãooscomandosnecessáriosparaadministraroservidorSubversionnodia a diaetambémutilizá lo.outroscomandosquevocêdeveaprenderusarsãosvndelete e svn revert, e também svnadmin restore. Paraissosiga asreferênciasdecomandos indicadasnaurlanterior. Parasetornarumusuárioplenodosistemaderepositórios,éimportantepraticara aprendertodososcomandosindicadosnareferência.massabendooapresentadoaqui, com certeza você já terá base para uma boa experiência inicial com oambientede versãoconcorrentebaseadoemsubversion. Agoravocêpodeapontarseunavegadorpara Enotaránonavegadorumasaídaparecidacomaseguinte: Revision 3: / LEIAME.txt

34 Powered by Subversion version (r21228). AumentandoaSegurançadoSubversioncomSSL OSubversioncomoanteriormentecitadopodetrabalharcomdiversosprotocolos, desde servidor svn nativo o svnserve até em conjunto com Apache utilizando WEB_DAV, que é a implementaçãoque fizemosaqui.essaimplementaçãoéamais indicadapelotimededesenvolvedoresdosubversion,eéamaisflexível.umefeito adicionaldelaéquevocêpodeaqualquermomentoconfiguraroapacheparatrabalhar com protocolo SSL/TLS, da maneira convencional não há nenhuma modificação especialparaosubversion eumaveztendohabilitadoossl,bastautilizarhttps:// noscomandossvnpoisaaplicaçãosvntemsuporteplenoatransaçõessobressl. InterfaceWeb Normalmentesistemasdeversionamentoconcorrente,emespecialCVStemum recursomuitointeressante,umainterfacewebquepermitequeusuáriosanônimos(ou autenticados, quando configurado para tal) naveguem por toda a árvore dos repositórios, copiem qualquer arquivo que desejar, e possam acompanhar as informaçõesde logs edatasdecadamodificação,bemcomotirar diff entrerevisões arbitráriasdecadaarquivoouestrutura.essesistemachama se webcvs ou cvsweb.a implementaçãomaisfamosaemaisadotadaéocvswebcriadopeloprojetofreebsde liberadopublicamentesoblicençabsd. OSubversiontemumambientewebnativo,embarcadonomódulosvn_davcomo jápercebemos,porém,existeumainiciativaaindamaiscompletaparaosubversion, que se destaca frente a qualquer interface Web de repositórios, sejam sistemas proprietáriosououtroslivres.

35 Estamos falando do Trac, uma interface Web que integra o SCM Subversion, sistemade Tickets de problemas, Wiki eoutrosrecursosdegerênciadeprojetosde Software. É uma interface criada por uma comunidade de consultores e desenvolvedoresde Software chamada EdgeWall.O Trac éumaexcelenteferramenta complementaraosubversion. Abordaremossuainstalaçãoeconfiguraçãonasegundapartedesseartigo.

36 PARTEII TRAC Introdução TRACéumprojetoquecumprecomlouvoroobjetivodeintegrarrecursosde(1) acompanhamentoegerênciadeproblemasnodesenvolvimentodeumsoftwareou relatosdeerrosemqualqueroutrodocumento,programaouarquivosendotrabalhado emumsistemadeversionamentoconcorrente,aomesmotempoemqueoferece(2)um sistemadewikicompleto,propícioparadocumentaçãocolaborativadoítemsendo trabalhado;ofereceainda(3)umsistemadelinhacronológicadodesenvolvimentoe evoluçãodeprojetos,commilestonespré definidos,eporfim,(4)umainterfaceweb paraexplorarcompletamenteumrepositóriosubversion. TRACintegraoSCMSubversion,sistemade Tickets deproblemas, Wiki eoutros recursos de Gerência de Projetos de Software. É uma interface criada por uma comunidadedeconsultoresedesenvolvedoresdesoftwarechamadaedgewall.otracé uma excelente ferramenta complementar ao Subversion, e combinados oferecem ambientecompletoparagerênciaedesenvolvimentoconcorrentedeprojetos. Como se não bastasse, TRAC oferece ainda uma extensível interface para gerenciamentodeplugins,possibilitandoincorporaçãoderecursosadicionais,criados pelacomunidadeoupelosprópriosdesenvolvedorestrac. TRAC é desenvolvido em python, e pode ser utilizado em modo independente (standalone)atravésdoservidor webbuilt in,o tracd(8),ouatravésdoservidor Web Apache,emmodoCGI,comoFastCGI,com mod_pythonouaindacom mod_wsgi,um adaptadorwsgiparaapache,criadopelogoogle aindaexperimental.

37 Objetivo AolongodesseartigoinstalaremosoTRACparatrabalharcommod_python,no Apache,poisestaéaimplementaçãoqueoferecemaiorperformanceeestabilidade. UtilizaremosoTRACcomsuporteaSQLite3,einstalaremosoplugindeadministração WebdoTRAC. Nosso setup implementaráumaconfiguraçãodo Trac quepermiteacriaçãode múltiplas instâncias do sistema, um para cada projeto/repositório, exatamente para integrardaformamaiscompletapossívelotraccomosubversion. InstalaçãodoTRAC O TRAC depende do python em nosso sistema, e também de uma base de informação onde todos os dados referentes a ele estarão disponíveis. Essa base de informação por padrão é o SQLite3, mas o TRAC também pode ser instalado com suporte a PostgreSQL ao invés de SQLite3, e também MySQL. Contudo o suporte a MySQLéconsideradoexperimental. Dependências O TRAC pode trabalhar em modo independente, onde um daemon chamado tracd(8)implementaumservidor Web em Python. Essacontudoéamenosindicada implementação pois oferece poucos recursos de segurança, e principalmente baixíssimaperformance.

38 Complementarmente pode trabalhar em modo CGI ou FastCGI com qualquer servidor Web que suporte esses métodos. Mas o mais indicado é que o servidor de escolha sejaoapache2, nesse caso,otracpodetrabalharcomo mod_python3 ou mod_wsgi,umadaptadorwsgiparaapache,criadopelogoogle,queemteoriapodeter performancesuperiorao mod_ptyhon3,masqueaindaéconsideradoexperimentale tempequenosproblemasdeinstabilidade. Portanto nossa implementação será com mod_python3, devida a reconhecida estabilidade e excelente performance, com conjunto com Apache2. Nossa base de informaçãoseráaprimáriaparaotrac,sqlite3,masaseucritériopodeoptarpor outrabase,preferencialmentepostgresql,seosistemajáestiverdisponívellocalmente. DocontrárionãoéjustificávelsubstituiroSQLite3,poisestetrazexcelenteperformance paraotipodeoperaçãoqueotracdemanda,eprincipalmenteporserumabasede dadoslightweight(leve),pequenaeestável.portantonossalistadedependênciasinclui: Python mod_python3paraapache2 SQLite3 PostgreSQL(emsubstituiçãoaoSQLite3) MySQL(experimental,emsubstituiçãoaoSQLite3) Instalandoomod_python3 mod_python3 é o suporte DSO ao Apache2 para trabalhar nativamente com handlers Python; nesse momento, se seu sistema ainda não tiver Python, ele será instaladocomodependência.ainstalaçãodestemódulodsoéextremamentefacilitada

39 pelacoleçãodeportsdofreebsd,basta: # cd /usr/ports/www/mod_python3/ # make install clean AofinaldainstalaçãovocêobservaráaseguintemensagemdaColeçãodePorts: ================================================================================ Also remember to add to your Apache configuration in the appropriate context: PythonPath "['/path/to/foo', '/path/to/bar']" AddHandler python-program.py PythonHandler foobar PythonDebug On For more information, see ================================================================================ Indicandoquevocêconfigureseuhttpd.confcomessasentradas.Issoporquêo mod_python3ofereceaoapache2umrecursoquepermitequequalquerarquivocom extensão.pysejainterpretadoeprocessadonativamente,omesmotipodeabordagem queomod_phpfazparaarquivosdeextensão.phpporexemplo. Nósnãoprecisaremosadicionaressasentradasaohttpd.confparautilizarmoso TRAC,poisconfiguraremosoHandlerdemaneiraumpoucomaisespecífica.Porém,se vocêpretendeterrecursodesuporteapythonemseuservidorweb,podeaproveitara oportunidadeefazê lodestaforma.

40 InstalandooTRAC AtravésdaColeçãodePortsdoFreeBSD,vamosinstalaroTRAC,portantoentrena estruturadeportsdotracedêummake config: cd /usr/ports/www/trac/ make config Garanta que as opções SILVERCITY e DOCUTILS estejam marcadas, elas dão suporte a destaque de sintaxe e recursos especiais de marcação, ambos úteis no ambiente Wiki do TRAC. Garanta que SUBVERSION também esteja marcado, e se quisermarquepostgresqlcasoprefirautilizá loemsubstituiçãoaosqlite3.asaídado comandomake showconfigdeveapresentar: # make showconfig ===> The following configuration options are available for trac-0.9.6: SILVERCITY=on "Use Silvercity for syntax highlighting" DOCUTILS=on "Allow additional text markup" PGSQL=Off (default) "Use PostgreSQL instead of SQLite3" SUBVERSION=On (default) "Support for subversion RCS" ===> Use 'make config' to modify these settings Estandonaestruturadoport,agorainstaleoTRAC: # pwd /usr/ports/www/trac

41 # make install clean Aotérminodainstalaçãonotequeoportinstalouumaimportantedependência,o portsubversion python: # pkg_info grep -i subversion-python subversion-python-1.4.3_2 Version control system Pronto,oTRACestádevidamenteinstalado. CriandoumProjetonoTRAC TRAC sempre dependerá de uma estrutura no sistema de arquivos onde os projetosestarãodisponíveis,enessaestruturaobancodedadossqlite3,osconectores e os recursos individuais para cada projeto distinto, gerenciado pelo TRAC, se encontrarão.então,seguindoaorganizaçãoinicialmenteplanejadaparaosubversion, devemos criar também uma estrutura base onde todos nossos Projetos gerenciados pelotracestarão.paraseguirapadronizaçãoadotada,criaremoso/usr/home/trac: # mkdir /usr/home/trac ParacriarumnovoprojetonoTRAC,utilizamosocomandotrac-admin,como argumento initenv.paraconhecerotrac-admin esuasoutrasopções,use: trac-admin help

42 Noteatravésdohelpqueasintaxedesejadaé svn-admin <caminho/para/projeto> <comando> Onde <comando> será initenv; Como nosso repositório existente até o momento é o projeto01, vamos criar um ambiente de gerência TRAC para esse repositório: # svn-admin /usr/home/trac/projeto01 initenv NotequeparacriaroambientedegerênciaTRACparaoProjeto,umasériede perguntas serão feitas. A primeira seráqualonomedoprojeto, preenchaconforme destacado: Project Name [My Project]> Projeto 01 Aspróximasduasperguntasserãootipodeconexãocombasededados.Mantenha o padrão indicado apenas confirmando com ENTER; e depois qual o repositório, mantenhaopadrão(svn)apenasconfirmandocomenter: Database connection string [sqlite:db/trac.db]> <pressione ENTER> Repository type [svn]> <pressione ENTER> Agoraaperguntamaisimportante,qualocaminhoparaorepositórioSubversiona queesteprojetoserefere:

43 Path to repository [/path/to/repos]> /usr/home/svn/projeto01 Porúltimo,confirmeodiretóriodosTemplates: Templates directory [/usr/local/share/trac/templates]> <pressione ENTER> Aoconcluirainicializaçãodoambiente,noteumamensagemsimilara: Project environment for 'Projeto 01' created. You may now configure the environment by editing the file: /usr/home/trac/projeto01/conf/trac.ini If you'd like to take this new project environment for a test drive, try running the Trac standalone web server `tracd`: tracd --port 8000 /usr/home/trac/projeto01 Then point your browser to Portanto podemos testar se a criação de nosso ambiente foi completada com sucesso de forma muito simples, iniciando o TRAC em modo independente (standalone) queapesardeoferecerbaixaperformance,émuitoapropriadoparaum testerápido.entãoinicieotracdaemoncomosargumentosindicados: tracd --port 8000 /usr/home/trac/projeto01 EaponteseunavegadorparaaURLhttp://svn.dominio.com.br:8000/.Notequeo

44 tracdaemonlistarátodososprojetosdisponíveis,quevocêpassoucomoargumentona linhadecomando,entãovocêobservaráemseunavegadorumlinkparaprojeto01que televaráparahttp://svn.dominio.com.br:8000/projeto01. Bem vindoaotrac!essaéaaparênciadoambiente Web,evocêpodetesta lo, começandoporfazerumamodificaçãono Wiki.Cliquenobotão Editthispage ena primeiralinhadoformuláriodeediçãodowikicoloque: = Minha Primeira Edição no Wiki do TRAC = Um texto qualquer Comonoscreenshot:

45 Salve,eobserveosresultados,serãosimilaresa: Utilizandoodaemontracd O tracd(8) não é indicado para ambientes com muitos usuários por ter performancemuitobaixa.contudo,paraumambientededesenvolvimentoresidencial ou pequena empresa, onde poucos usuários utilizarão o TRAC para apenas um ou poucosprojetos,o tracd(8) podeserapropriado,jáquenessascircunstânciasnão demandaráaltaperformance,compoucosusuáriosepoucosprojetosutilizandotrac. Sedesejarpoderodarotracdparagerenciarseuprojeto.Nessecasoaspróximas instruções,que referem se à configuraçãodoapache2emod_python3paraotrac podem ser puladas. Para usar o tracd em produção é indicado que usemos

46 adicionalmente os argumentos -r, para sempre acompanhar modificações nos projetos,-d paraentraremmododaemone--pidfileparagerarumarquivodepid. Oideal,porsegurança,érodarodaemoncomusuáriodesprivilegiado,podeseroseu usuárioporexemplo.nessecaso,comorootvocêpodedigitar: setuidgid seu_usuario tracd -r -d --port pidfile=/var/run/tracd.pid /usr/home/trac/projeto01 Paramatarodaemondepoisbastará: kill -9 `cat /var/run/tracd.pid` Leiaapáginademanual rc(8) paraobterexemplodecomocriarseu script de inicializaçãoapropriadamente, e colocando ocomo /usr/local/etc/rc.d/tracd sempreiniciarodaemondotracnasinicializaçõesdeseuservidor. Porúltimo, osprojetos geridospelotracdprecisamgarantiracessodeleiturae escritanodatabaseparaousuárioexecutandootracd,entãovocêdeve: chown -R seu_usuario /usr/home/trac/projeto01/db E,seestiverutilizandomod_pythonnoApache(comoveremosaseguir): chgrp -R svn /usr/home/trac/projeto01/db chmod -R g+rw /usr/home/trac/projeto01/db

47 Configurandomod_python Agora para garantir que o mod_python está devidamente instalado, edite seu arquivodeconfiguraçãohttpd.conf: vi /usr/local/etc/apache2/httpd.conf ProcureofinaldoblocoLoadModule,eadicioneaseguinteentrada: LoadModule python_module libexec/apache2/mod_python.so Emseguida,procureondeanteriormentefoiadicionadaaentrada<Location/svn> eantesdelaadicioneoseguinte<location>deteste: # Apenas para testar mod_python, comentar depois. <Location /py-info> SetHandler mod_python PythonHandler mod_python.testhandler </Location> Estaentradaserveexclusivamenteparaquepossamostestaradisponibilidadee funcionamentodomod_pythonnoapache2.fazendoumaanalogiadireta,éomesmo tipodetestesque,nalinguagemphp,podemosfazercomafunçãophpinfo();então

48 apósadicionaraentrada,reinicieseuapache: apachectl stop apachectl start E direcione seu navegador web para o endereço info. Se tudo estiver adequadamente instalado,você observará uma página similar a seguinte: Generalinformation Apache version Apache Apache threaded MPM Yes (up to 128 threads per process) Apache forked MPM Yes, maximum 870 processes Apache server root /usr/local Apache document root /usr/local/www/data Apache error log /var/log/httpd-error.log (view last 100 lines) Python sys.version (#1, Apr , 05:48:55) [GCC [FreeBSD] ] Python sys.path /usr/local/lib/python24.zip /usr/local/lib/python2.4 /usr/local/lib/python2.4/plat-freebsd6 /usr/local/lib/python2.4/lib-tk /usr/local/lib/python2.4/lib-dynload /usr/local/lib/python2.4/site-packages Python interpreter name svn.dominio.com mod_python.publisher available Yes mod_python.psp available Yes Seguidademaisumasériedeblocosdeinformaçõesadicionais.Nessecasosua instalaçãoetestesforamcompletadoscomsucesso,vocêpoderemoverdoapacheo

49 bloco <Location /py-info>, pois essas informações não devem ser observadas publicamente,ouentãorestringiroacessoaesse<location>atravésdosdispositivos de controle de acesso do Apache, por exemplo, se quiser liberar o acesso a esse endereçodetestesapenasaumaredeconfiável(nesseexemplo, /24)faça o porexemplodaseguinteforma: <Location /py-info> SetHandler mod_python PythonHandler mod_python.testhandler Order deny,allow Deny from all Allow from /24 </Location> Entãovocêpodemanteresse <Location>seguramente. Agora finalmente, a configuração que nos interessa de fato. Vamos criar um ambiente com um <Location> apontando para /projetos. Esse <Location /projetos>utilizaráomod_pythoncomohandlerdecódigosnoapache,paraqueos dadosnesteendereçosejamprocessadoscomointerpretadoradequadodalinguagem python. Então definimos o PythonHandler chamando o trac.web.modpython_frontendqueéomóduloprincipaldotrac. Então definimos através das directiver PythonOption as variáveis TracEnvParentDirapontandoparaabaseondeencontram senossosprojetostrac, e a TracUriRoot para a URL em nosso servidor, no caso o mesmo endereço de <Location>,ouseja, /projetos.porúltimoadicionaremos(apenasporgarantia,já

50 quedeformageralissonãoseriapreciso,devidoaformacomoo ports dofreebsd instala o TRAC) ao PATH do Python o caminho para todos os arquivos Python que compõeotrac,usandoadirectivapythonpath: <Location /projetos> SetHandler mod_python PythonHandler trac.web.modpython_frontend PythonOption TracEnvParentDir /usr/home/trac PythonOption TracUriRoot /projetos PythonPath "sys.path + ['/usr/local/lib/python2.4/site-packages/trac']" # PythonDebug On # apenas em caso de problemas </Location> Vale a pena mencionar que TracUriRoot não é necessário se você tem DNS devidamenteconfiguradoeo ServerName doapacheindicaumaentradacomdns válido.emtodocasonãoháproblemasouconsumoadicionalderecursosemadicionar essaopção,portantovaleapenamantê la.oendereço /projetos foiescolhidopor organizaçãoeexemplo,sepreferiruseoutroendereço,como/trac,ouoquedesejar emseuambientedeprodução.lembre sedemodificartantono<location>quanto TracUriRoot. Se preferir é possível ainda criar um VirtualHost só para o TRAC (exemploaolongodessaseçãododocumento). Porúltimo,umtruquesimplesutilizandoo LocationMatch doapache.vamos garantir que sempre que algum endereço no formato seja acessado, o Apachesolicitaráautenticação,eapontaremosqualarquivodeautenticaçãousar.Isso porquêotracnãotemumsistemadeloginflexível,massuportaplenamentesistema deautenticaçãodoapache,queinclusiveéométodooficialmentemaisrecomendado peloprojetotrac.

51 EparagarantirpleacompatibilidadeeintegraçãocomoSubversion,utilizaremos exatamenteomesmoarquivodesejasqueosubversionatravésdosvn_davutiliza,o /usr/local/etc/svnpasswd. Assim sendo, logo abaixo do <Location /projetos>adicioneaseguinteentrada: <LocationMatch "/projetos/[^/]+/login"> AuthType Basic AuthName "Gerenciador de Projetos Trac (svn.dominio.com.br)" AuthUserFile /usr/local/etc/svnpasswd Require valid-user </LocationMatch> Ótimo,agorareinicieoApache: apachectl stop apachectl start E aponte seu navegador para Se vocêobterumerrodepermissão,dizendoqueousuáriodeveteracessodeleiturae escrita, não se preocupe. É esperado. Para cada Projeto TRAC, dê as permissões adequadasdeacordocomnossaestratégiadepermissõesadotada: chgrp -R svn /usr/home/trac/<projeto>/db chmod -R g+rw /usr/home/trac/<projeto>/db Começandoportantodenossoprimeiroprojeto:

52 chgrp -R svn /usr/home/trac/projeto01/db chmod -R g+rw /usr/home/trac/projeto01/db Ótimo, agora recarregue seu navegador no endereço etodososprojetosaparecerãolistados. Como só temos um nesse momento, clicando o você será levado para e nele está todo o ambientetracprontinhoparaserusado. ColocandooTRACemumdomíniovirtual. Paraconfigurartodoesseambienteemumdomíniovirtual,émuitosimples.Basta configurar o domínio virtual normalmente, e colocar o <Location> e <LocationMatch> dentro do container <VirtualHost>, e apenas fazer uma modificação:garantirque<location> etracurirootapontemambosparaaraizdo domíniovirtual,ouseja,para/ NameVirtualHost <IP_DO_APACHE> <VirtualHost IP_DO_APACHE> DocumentRoot /usr/home/trac ServerName projetos.dominio.com.br ServerAlias trac.dominio.com.br ServerAdmin tracadmin@dominio.com.br CustomLog /var/log/projetos.dominio.com.br-access_log common ErrorLog /var/log/projetos.dominio.com.br-error_log <Location /> SetHandler mod_python

53 PythonHandler trac.web.modpython_frontend PythonOption TracEnvParentDir /usr/home/trac PythonOption TracUriRoot / PythonPath "sys.path + ['/usr/local/lib/python2.4/site- packages/trac']" # PythonDebug On # apenas em caso de problemas </Location> <LocationMatch "/projetos/[^/]+/login"> AuthType Basic AuthName "Gerenciador de Projetos Trac (svn.dominio.com.br)" AuthUserFile /usr/local/etc/svnpasswd Require valid-user </LocationMatch> Semmistériosousegredos,simplesmenteconfigurado.Ainda,seoTRACforser usado em um ambiente com SSLadicione no <VirtualHost> ounaconfiguração globaldoapache,ouaindanobloco<location>: SetEnv HTTPS 1 UsandooTRAC Clicando em Browse Source você será levado para e nele encontrará todos os arquivosdenossorepositório(portanto,pelomenosoleiame.txt),eagoratravésde umainterfacewebextremamenteamigávelpoderáexplorarosarquivos,lerosregistros de logs de commit etambémcompararasmodificaçõesentrerevisõesarbitráriasda árvoredorepositório. A partir desse momento cabe apenas a você, ler a documentação do TRAC e

54 aprender a usá lo adequadamente. Sua própria instalação do TRAC já traz toda a documentaçãoquevocêprecisa,asaber: Nessemomento,exploreainstalaçãoatualdoTRACaomáximoparaconhecê lo emdetalhes.acompanhealgunsscreenshotsdeusodobrowserdotrac:

55 ClicandoemViewChangesvocêpodeobservarasmudançasqueocorreramentre visõesdaárvore.porexemplo,acimavemoscomoobterumavisãogeraldasmudanças entrearevisão4earevisão17.edepoistemosoresultado:

56 EnopróximoshottemosdetalhesdasmodificaçõesentreaRevisão1eaRevisão 6,observamosalegendaindicadoarquivosadicionadosemodificados,econfigurando paraobservarasmudançaslado a lado(sidebyside)visualizamosfacilimenteoque mudouentreessasduasrevisãoarbitrárias:

57 UsandooTRACemPortuguêsBrasileiro Infelizmente Internacionalização não foi um recurso pensando no projeto de desenvolvimento do TRAC desde seu princípio, e apenas nas versões mais atuais o subsistemadei18nel10nvemsendopensado,discutidoeprojetado.oresultadoé quehápoucadocumentaçãooficialdotracemportuguêsbrasileiro,ecomonãohá umamaneira adequadadefazeratradução,apenasumrecursoresta:atraduçãodo templateutilizado. VocênotouqueduranteacriaçãodoprojetoTRACcomtrac admin,foisolicitado ocaminhoparaostemplates.aqualquermomentovocêpoderedefiniressestemplates, mesmoemumprojetotracjáemprodução. Umbrasileiro,FábioDavidBatista,traduziuostemplatesdotemapadrãodoTRAC paraportuguêsbrasileirl,naversão0.9.1dotrac.apesardeestarmosjánasérie0.10.x dotrac,otemplateemquestãomostra sebastantefuncionalepoucasexpressõesnão estãotraduzidas,entãopodemosutiliza lo.paraissocrieaestruturade templates em nossalíngua: # mkdir /usr/local/share/trac/templates-pt_br Nessediretório,baixeotemplatetraduzidoporFábioedescompacte o: # fetch -o trac templates-pt-br.tar.gz "

58 # tar xzf trac templates-pt-br.tar.gz Pronto,agorabastaconfigurarseuProjetoparautilizaressestemplates,atravésdo arquivodeconfiguraçãodotrac,otrac.ini,sempredisponívelem: /usr/home/trac/<projeto>/conf/trac.ini Portantoediteo/usr/home/trac/projeto01/conf/trac.inieprocurepela entradatemplates_dir,queestacomentada,dentrodobloco [trac]: templates_dir = /usr/local/share/trac/templates-pt_br NãoéprecisoreiniciaroApache.RecarregueseunavegadoreoTRACestaráem português asinformaçõesdotracemsí,enãooconteúdodaspáginaswikinema documentação. OarquivodeconfiguraçãodoTRAC trac.ini Agoravocêjáconheceo trac.ini,maséhoradeestudá loemmaisdetalhes. Primeiro,saibaquetodoprojetoTRACteráseuprópriotrac.ini,semdisponívelem <projeto>/conf/trac.ini Portantoemnossoambiente,sempreem

59 /usr/home/trac/<projeto>/conf/trac.ini Háaindaapossibilidadedecriarumarquivo trac.ini global(queporpadrão nãoexiste)em/usr/local/share/trac/conf/trac.ini,quenãotemprecedência algumasobreaconfiguraçãoespecíficadecadaambiente,possibilitandoedefeinições depadronizaçãoclaraparatodososprojetos,semevitaracustomizaçãodeopçõesde formaseletiva. O trac.ini é bem simples. Sua configuração é dividia em [blocos] e em cada [bloco]definimosopcao = valor,umaopcaoporlinha. Acesse o endereço para observar uma descrição completa de cada opção, cada [bloco] e os tipos de valoresdecadaopçãodotrac.ini. No bloco [trac] configure o suporte aos arquivos de política do Subversion, e identifique também a que regras de acesso de repositório o qual este TRAC deve sucumbir: [trac] authz_file = /usr/local/etc/svn_authz.conf authz_module_name = projeto Sedesejarhabilitarorecursode log dotrac,modifiqueobloco [logging] da seguinteforma:

60 [logging] log_file = trac.log log_level = DEBUG log_type = file Eoslogspassarãoasergeradosem/usr/home/trac/<projeto>/log.Portanto oapachedeveteracessodeescritanessediretório: # chgrp -R svn /usr/home/trac/projet01/log # chmod -R g+rw /usr/home/trac/projet01/log Osblocos[header_logo] etambém [project] sãocandidatosempotencial paracustomizaçãodotrac,incluindourl,nomedoprojetoeimagemparaserusada comologotiponaapresentaçãodotrac.adequeessesblocoscomodesejar. GerenciandoPermissõesnoTRAC Se a integração com os arquivos authz do Subversion não atender suas necessidades, é possível gerenciar ainda as permissões do TRAC de forma seletiva, atravésdocomandotrac-admincomoargumentopermission.suasintaxeé trac- admin < /caminho /projeto > permission <add remove list> <usuario grupo > <privilegio> Existeaindaumasintaxealternativa,quepermiteadicionarouremoverusuáriosa grupos:

61 trac- admin < /caminho /projeto > permission <add remove> <usuario> <grupo> Alistade<privilegios>etambémexemplosdeusopodemserobservadosem Porexemplo,listemosaspermissõesatuaisnativasdoTRACemnossoprojeto: # trac-admin /usr/home/trac/projeto01/ permission list User Action anonymous BROWSER_VIEW anonymous CHANGESET_VIEW anonymous FILE_VIEW anonymous LOG_VIEW anonymous MILESTONE_VIEW anonymous REPORT_SQL_VIEW anonymous REPORT_VIEW anonymous ROADMAP_VIEW anonymous SEARCH_VIEW anonymous TICKET_CREATE anonymous TICKET_MODIFY anonymous TICKET_VIEW anonymous TIMELINE_VIEW anonymous WIKI_CREATE anonymous WIKI_MODIFY anonymous WIKI_VIEW Available actions: BROWSER_VIEW, CHANGESET_VIEW, CONFIG_VIEW, FILE_VIEW, LOG_VIEW, MILESTONE_ADMIN, MILESTONE_CREATE, MILESTONE_DELETE, MILESTONE_MODIFY, MILESTONE_VIEW, REPORT_ADMIN, REPORT_CREATE, REPORT_DELETE, REPORT_MODIFY, REPORT_SQL_VIEW, REPORT_VIEW, ROADMAP_ADMIN, ROADMAP_VIEW, SEARCH_VIEW,

62 TICKET_ADMIN, TICKET_APPEND, TICKET_CHGPROP, TICKET_CREATE, TICKET_MODIFY, TICKET_VIEW, TIMELINE_VIEW, TRAC_ADMIN, WIKI_ADMIN, WIKI_CREATE, WIKI_DELETE, WIKI_MODIFY, WIKI_VIEW Vamosporexemploremoverdousuárioanônimoodireitodecriaroumodificar páginaswiki: # trac- admin /usr / home / t rac /projeto01 / permission remove anonymous WIKI_CREATE # trac- admin /usr / home / t rac /projeto01 / permission remove anonymous WIKI_MODIFY Vamosadicionarousuáriopatrickaogrupo1edefinirprivilégiosdo Wiki parao grupo1: # trac- admin /usr / home / t rac /projeto01 / permission add patrick grupo1 # trac- admin /usr / home / t rac /projeto01 / permission add grupo1 WIKI_MODIFY WIKI_DELETE WIKI_CREATE WIKI_ADMIN Eassimpodemoscriarpolíticasconsistentesdeacessosemdependerdoarquivo deconfiguraçãodosubversion,sevocêjugarconveniente. InstalandooPluginWebadmin Ficoupreocupadoemterqueficardefinindopermissõesmanualmenteemcada Projeto? Simples, defina um usuário administrador do Projeto e instale o plugin Webadmin,quepermitequetodososcontrolesfeitospelocomandotrac adminsejam desempenhadospelainterfacewebdotrac.

63 ParaissoinstaleopluginemquestãopelaColeçãodePortsdoFreeBSD: # cd /usr/ports/www/trac-webadmin/ # make install clean Depois,énecessárioconfigurarumaentradaamaisno<Location/projetos>,no /usr/local/etc/apache2/httpd.conf,aentrada: SetEnv PYTHON_EGG_CACHE /usr/local/lib/python2.4/site-packages/ Oblocoemquestãoficaráassim: <Location /projetos> SetHandler mod_python PythonHandler trac.web.modpython_frontend PythonOption TracEnvParentDir /usr/home/trac PythonOption TracUriRoot /projetos PythonPath "sys.path + ['/usr/local/lib/python2.4/site-packages/trac']" SetEnv PYTHON_EGG_CACHE /usr/local/lib/python2.4/site-packages/ </Location> Emseguidaediteo/usr/home/trac/projeto01/conf/trac.inienofinaldo arquivoadicione: [components]

64 webadmin.* = enabled Ótimo,estáquasetudopronto.Agorabastaelegerumusuárioadministradoredar a ele dois privilégios, o TRAC_ADMIN e TICKET_ADMIN. Por exemplo, para tornar patrickadministradorpelainterfacewebdoprojeto01: # trac-admin /usr/home/trac/projeto01/ permission add patrick TRAC_ADMIN TICKET_ADMIN Prontinho,agoraquandopatrickselogarnoTRACdoprojeto01,umanovaopção apareceránaabadotrac,aopçãoadmin,quelevaráousuárioaoendereço: E por último, o Apache deverá poder escrever as configurações em <projeto>/conf: # chmod -R g+rw /usr/home/trac/projeto01/conf # chgrp -R svn /usr/home/trac/projeto01/conf Tudo pronto. Se desejar oferecer esse recurso a outros projetos também, pode colocar a directive [components] em questão no arquivo trac.ini global, como documentadoanteriormente. OúnicorecursodoWebadminquenãoestarádisponíveléorecursodeinstalação deoutrospluginspelaweb.issoporquêeleprecisadeprivilégiosdeescritanodiretório

65 onde os plugins serão instalados, e este diretório por padrão é acessível apenas ao usuárioroot,éomesmodiretórioapontandoporsetenv PYTHON_EGG_CACHE, ousejao: /usr/local/lib/python2.4/site-packages/ NãorecomendamosqueoApachetenhaprivilégiodeescritanessediretório. NoscreenshotabaixoobservamoscomoaconfiguraçãogeraldoProjetonoTRAC torna setrivialcomesseplugin.

66 Enopróximoscreenshotobservamososdetalhesdeoutrospluginsinstalados: InstalandooPluginTRACGantt Queméacostumadocomgerênciadeprojetossabequeumadasobrigaçõesem qualquer abordagem formal padrão PMI (Project Management Institute) demanda gráficosganttdocumentando timeline e schedules deevoluçãodoprojeto.o plugin trac-gantt oferece a possibilidadedecriargráficosganttparatodosos tickets de problemasencontradosnogerenciadordeticketsdotrac.umrecursoextremamente útil e poderoso. Altamente recomendada instalação desse plugin, que através da ColeçãodePortsdoFreeBSDésimples: # cd /usr/ports/www/trac-gantt/ # make install clean

67 Editeotrac.inienobloco[ticket]adicione12novoscamposaosistemadetickets, oscamposemdestaque: [ticket] default_component = default_milestone = default_priority = major default_type = defect default_version = restrict_owner = false # Plugin que gera mapas Gantt due_assign = text due_assign.label = Due to assign due_assign.value = DD/MM/YYYY dependencies = text dependencies.label = Dependencies dependencies.value = due_close= text due_close.label = Due to close due_close.value = DD/MM/YYYY

68 include_gantt = checkbox include_gantt.label = Include in GanttChart include_gantt.value = Nobloco[components] habiliteesteplugin,comofeitocomowebadmin: [components] webadmin.* = enabled tracgantt.* = enabled E porúltimo nofinaldoarquivo,crieumbloco chamado[gantt charts]como seguinteconteúdo: [gantt-charts] date_format = %m/%d/%y include_summary = true summary_length = 16 use_creation_date = true show_opened = true AoativaroplugindoisnovosatributosdepermissãoestarãodisponíveisnoTRAC, osatributosgantt_viewegantt_admin.

69 Porpadrãoousuário anonymous porexemplo,nãopoderásequervisualizaros gráficos Gantt gerados pelo plugin. Se desejar, dê privilégio para outros usuários administraremo plugin, mas omenospermissãodevisualizarosgráficosaousuário anônimo. Vocêpodefazerissocomotrac-admin,quejáconhece,ouagorapelainterface deadministraçãoweb,comonoscreenshotaseguir:

70 OutrosPluginsnaColeçãodePorts Existemoutros plugins nacoleçãodeportsquepodemserinteressanteaoseu ambiente,todosconsideravelmentefáceisdeconfiguraredeinstalaçãopraticamente automáticapeloports.sãoeles: /usr/ports/www/trac-accountmanager permite que um usuário registreegerenciemúltiplascontas; /usr/ports/www/trac-addcomment permite que sejam adicionados comentários em páginas Wiki; suporta formatação Wiki; torna o TRAC uma espéciedecmscominteratividadedovisitanteatravésdecomentários; /usr/ports/www/trac-bzr adicionasuporteaorepositóriobazaar; /usr/ports/www/trac-ctxtnavadd/ Permiteacriaçãodenovoslinks embaixodabarraprimáriadenavegação; /usr/ports/www/trac-down Permite listagem automática de downloadslançados; /usr/ports/www/trac-gantt Comentado e adicionado neste documento; /usr/ports/www/trac-nav ImplementabarradenavegaçãonoWiki;já disponíveldesdeaversão0.10dotraceportantodispensável; /usr/ports/www/trac-pagetopdf permite que as páginas Wiki do TRACsejamexportadasparaPDFeposteriordownload; /usr/ports/www/trac-privatetickets Adicionacontrolepor ticket deproblemas,possibilitandoqueusuáriossóvejamosticketsatribuídosaeles; /usr/ports/www/trac-robotstxt Serveumarquivorobots.txt;para usarcomtracd(8);

71 /usr/ports/www/trac-tags Implementa o conceito de tags para agruparassuntosoutópicos; /usr/ports/www/trac-webadmin Já documentado e instalado nesse documento;seráintegradonativamenteaotracapartirdaversão0.11; /usr/ports/www/trac-wikinotification permite que usuários (inclusiveanônimosquandodefinemumendereçodee mail)sejamnotificados sobreaatualizaçãodequalquerpáginawiki;

72 PARTEIII TortoiseSVN Introdução Nessaúltimaetapa,faremosumaintroduçãoaoTortoiseSVN.Essaaplicaçãoéna verdadeumaextensãoàapidowindowsexplorer,epossibilitaqueatravésdejanelas nowindowsousuáriopossarápidamentefazeracessoàtodasasoperaçõesdocliente SVNemumashellintegradanoclássicopadrãoWindows. OTortoiseSVNémantidopelomesmotimequedesenvolveoSubversion,eéa mais indicada ferramenta de produção para ambiente de trabalho baseado em Windows, e adequado para um ambiente onde temos um servidor FreeBSD implementadocomtodasasfuncionalidadesqueimplantamosatéomomento,masos usuáriosnãotemfacilidadenemdisponibilidadeparaaprenderausaraplicaçõesde linhadecomandocomooclisvn. Ao simples clique do botão direito do mouse o usuário pode acessar todos os comandosdosubversion,semlimitações,einclusivecomalgumasvantagensqueo ambientegráficooferece,comopossibilidadedeacompanharestatísticasdetrabalho porusuário,ougráficosdociclodedevidadoprojeto,seusarquivoserevisões. OTortoiseSVNéportantoumfront endgráficoparaosvn,comavantagemdeser integrado à API do Windows. Para outras plataformas, inclusive Unix, temos outros front endgráficostambém,comoosseguintes:

73 rapidsvn esvn kdesvn TodosdisponíveisnaColeçãodePortsdoFreeBSD,eosdoisprimeirosdisponíveis tambémparaplataformamacosx. O TortoiseSVN tem suporte a língua portuguesa através de uma extensão, o languagepack,queinstalaremoscomaprópriaaplicação.écontudonecessáriodizer que a tradução de expressões clássicas do ambiente de versionamento concorrente podetornaroambientedetrabalhomenosintuitivo,porexemplo,açõesqueaolongo desseartigodesempenhamosfrequentementecomocheckoutecommitsãochamadas de Obter e Submeter. Portanto requer alguma atenção adicional se decidir usar o TortoiseSVNpermanentementeemportuguês. InstalandoTortoiseSVN AinstalaçãodoTortoiseSVNébastantesimples.Paraissobastafazerodownload domsi(microsoftinstalller)apropriado,deacordocomasuaarquitetura(32ou64bits), emhttp://tortoisesvn.net/downloads. NesseendereçovocêpodefazerodownloadeconferiraassinaturaMD5,comono screenshotaseguir:

74 Emseguida,apósconcluirodownload,opcionalmentevocêpodedesejarobtero download do LanguagePack emportuguêsbrasileiro,casodesejausarotortoisesvn emnossalínguapátria.contudo,atenha seasconsideraçõesiniciais,poisasexpressões chavesemtodoprocessodetrabalhocomsistemadeversionamentoconcorrentesão também traduzidas pelo Language Pack. Além do Language Pack podemos obter também, por download, o Spellchecker, dicionário para verificação ortográfica, caso vocêqueiragarantiradequadacorreçãoemseuslogsdecommit.

75 Oprocessodeinstalaçãodá seda maneiramaisconvencionalpossível,no melhor estilo Windows: dois cliques e diversosnext.aúnicaobservaçãoéque você pode decidir não instalar o dicionário inglês, caso todas as mensagensde log sejamemportuguês. Porém, se o projeto é trabalhado por pessoasdistintasempaísesdistintos,é comumquetodasasmensagensde log sejamgeradaseminglês.nessecasopodeser útil manter o dicionário. Mas vale lembrar que esses detalhes totalmente intrísecos apenas a seu ambiente de trabalho, e mais considerações sobre uso ou não de corretoresortográficosnãoserãofeitas.afinalnossoobjetivoaquiéoutro. Por último, ao concluir a instalação o sistema vai solicitar que o Windows seja reiniciado. Reinicie,poisalgumasbibliotecas e ícones alternativos devem ser carregados junto à API do Windows, e isso acontece no momentodoboot. Estando concluída a instalação, precisamoscriarnossoambiente detrabalho.nessemomentoremeta sedevoltaaosconceitossobreo~/svn_rootque discutimosanteriormente.oconceitoéomesmo,eousodoscomandosemambiente CLIserãoagoradesempenhadosdiretopeloWindowsExplorer.

76 PreparandooAmbientedeTrabalho Decida onde será sua raiz local do repositório Subversion. Assim como no ambienteclioindicadoé ~/svn_root,indicadosquecrieumdiretório svn_root/ emalgumdispositivodediscolocal,comoc:\svn_root.emnossoexemplocriamoso E:\svn_root. Desloque se a este diretório e clique com o botão direito. Você observarádeumaatrêsopçõesamais,semprequeclicarcomobotãodireitoemum ambientedediretóriosdaapido WindowsExplorer.Essasserãoasduasopçõesmais comuns,quepoderãoserdesempenhadasdadasascircunstânciasdodiretórioeum menucomtodasasopções.comonãofizemosocheckoutainda,estaaçãoseráumadas primeiras,vejaoscreenshot. PortantotemosopçãodefazerSVNCheckoutnessediretório,ouasoutrasopções queobservamosnosub menutortoisesvn. Queremosfazer checkout.entãoescolhaaopção SVNCheckout garantindoque estejadentrododiretório\svn_root.

77 Depois de escolher a opção em questão, como no destaque do screenshot ao lado, será solicitada a URLdoservidorSVN. DigiteamesmaURLqueestamos trabalhando tanto em ambiente de linha de comando quanto pelo Apache, ou seja, entre com http: / / svn.cliente.com.br /svn / projeto01 parafazero checkout dessediretório, como no exemplo do screenshot abaixo. Note que é possível escolher apenas uma determinadarevisão,oufazercheckoutapenasdaraizaoinvésderecursivamente.não é o que queremos. Desejamos fazer o checkout da raiz inteira desse projeto (HEAD) recursivamente. Muito simples. Ao final do processovocêteráfeito checkout da árvore toda, e observará uma cópia exata em seu \svn_root comoestánorepositóriosvnremoto.ohistóricodetodososarquivosbaixadosserá apresentado e por último qual a revisão que você acaba de sincronizar localmente, comonoscreenshotabaixo.

78 IniciandooTrabalho Apartirdeagoravocêpodeadicionarnovasestruturasdetrabalhoàsuaárvore,ou ainda trabalhar com base na estrutura atual, inclusive fazendo modificações diretamenteemsuaversãolocaldaárvoresvn,oudeapenasumtrechodaárvorese preferir fazer checkout parcial. Portanto o ambiente de trabalho pode ser permanentemente o do \cvs_root, e de fato isso tornará o processo mais ágil, aumentandoaprodutividadegeraldetrabalho. No exemplo acima criamos duas novas estrutura de trabalho, mestrado/ e projetos/.notequeaestruturasvnnãoconheceessesdoisdiretóriosnovos,então temos que, igualmente feito em ambiente linha de comando, adicionar a estrutura, recursivamente,àlistadearquivosdaárvoresubversion.paraissoselecioneasduas

79 novasestruturas,ecomobotãodireitoescolhanosub menutortoisesvn,aopçãoadd. Issoéequivamenteaocomandosvn addnoambientecli(commandlineinterface), comonoscreenshotabaixo. Umalistapréviadoqueadicionarseráapresentada,comonodestaqueaolado. Desmarque arquivos que enventuamente você não queria enviar para o repositório SVN, como arquivos ocultos do Windows,aexemplo,oThumbs.db. Clique OK para confirmar a adição desses arquivos. Ao término doprocedimentoseráapresentadaa lista de todos os arquivos adicionados à lista, no repositório local.nenhumdessesarquivosforam

80 de fato adicionados, e não existem no repositório Subversion remoto. Então se um companheiro de trabalho fizer checkout ou update de sua árvore local contra o repositórioremotoelenãoobteráosdadosadicionados.issoporqueosdadosforam apenasagendadosparaseradicionados,exclusivamentenaversãolocaldaárvore. Isso fica bem claro no ambiente de trabalho do TortoiseSVN, pois os dados marcadosparaadiçãoficamcomumsinaldeadiçãoazulaoladodoíconedoarquivo oudiretório(+).observenoscreenshotabaixo: Para efetivar a adição, é hora de fazer o commit. O commit noambiente TortoiseSVN nãotemmuitagraça,enãoháoromantismo de fazer um commit em linha de comando. Então,semamenorgraçamesmo,cliquenos novosarquivos,marcando os,ecomobotão dadireitaescolhaaopçãosvncommitcomo noscreenshotaolado.

81 TortoiseSVN solicitaráamensagemde log.nãofaça commit semaomenosuma descrição curta da modificação, pois a análise de seus companheiros de trabalho e tambémaidentificaçãodaquelamodificação,casodesejarrestaura lanofuturo. Esseéomomentoemqueosistemapelaprimeiravezobservaráquevocêdeseja fazerumamodificaçãodeescrita,epelaprimeiravezoservidorsubversionatravésdo módulo Apache SVN_DAV solicitará autenticação para fazer o acesso de escrita, exatamentecomonalinhadecomando. O TortoiseSVN possibilitarásalvarusuárioesenha,comonodestaque.noteque apenasasestruturasmarcadasparaadiçãosãofócodessecommit,entãoautentique se comseuusuárioesenhaeconcluaocommit.

82 Quandoocommitforconcluído,umalistadetodososarquivosmodificados(nesse caso,adicionados)seráapresentada,eimediatamentevocêobservaráqueoíconede adiçãoserásubstituidopelosinalverdeindicandoqueaárvoresvnlocalestáemplena sincronia com a árvore SVN remota,comono screenshot lado. ao

83 IdentificandoÁrvoreForadeSincronia Semprequehouverqualquermodificaçãolocalpendenteemrelaçãoaestrutura remota na árvore, o TortoiseSVN identificará essa falta de sincronia com um ícone vermelhocomumaexclamação.vamosfazerumamodificaçãoemumdosarquivosde trabalho de nosso exemplo, dentro da estrutura projetos/pmi-cliente_cseltda/. Vamos fazer o commit. Note no screenshot os detalhes, indicando a falta de sincroniaemalgumaspartesdaestruturalocal,enopróprioarquivomodificado.

84 Nessemomentocabe seumaconsideraçãobastanteinteressante.otortoisesvne o Subversion sãoaplicaçõesbemprojetadas,ecomrecursosinteligentes.aqualquer momento,sedesejar,podemoscriar patches ougerar diffs paraanáliseposterior,ou análise imediata. Se você analisar a modificação entre diversas versões (revisões) se arquivosdetexto,comocódigos fonte,scripts erotinasemgeral,otortoisesvn abrirá umeditorquepermitevisualizar,comdestaquesidentificadosporcor,asmodificações entreasrevisõessendoanalisadas.semnovidadesatéai. Porém,oSubversionéosistemadeversionamentoconcorrentequetemomelhor suporteaarquivosbináriosnomercado.eleécapazdesalvarapenasadiferença,e remontarosarquivosnahoradeapresentá losaousuário.o TortoiseSVN porsuavez atualizaaapiwindowsexplorerdeformaque,sepossível,éutilizadosistemainstalado localmenteparaanalisarasmodificações. Então,clicandocomoterceirobotão,indonomenuTortoiseSVN,eposteriormente a opção Show Log, é possível comparar revisões arbitrárias do arquivo.doc que acabamosdemodificar,comonoscreenshotabaixo: O que acontecerá? O arquivo será aberto no Microsoft Word, com argumento especial,indicandoosdoisarquivosasercomprados,eomicrosoftwordapresentaráo

85 documentocomomododeacompanharmodificaçõesativo. Seodocumentofordeformat.odt,omesmoacontecerá,porémaaplicaçãoque entrará em modo de acompanhamento de modificações será o OpenOffice. Extremamenteinteligente,funcionaleprodutivo. Agorafaremosmodificaçõesemoutroarquivobinário,umarquivodeimagem.Por exemplo,acompanheaatualizaçãodologo,eaentradadelogqueexplicaplenamentea motivaçãodessaatualização. Pois bem, ao concluir o commit da atualização da logomarca da empresa consultora,vamosvoltaraopçãoshowlogdotortoisesvn,comonoscreenshotaseguir.

86 Emseguida,selecioneasrevisõesquedesejaobservarasmodificações,comono screenshotaseguir.observenosdetalhesemdestaqueaseleçãodasrevisõeseaopção paracompararessasrevisões.

87 O TortoiseSVN maisumavezdetectaráotipodearquivobinárioemquestão,e apresenta ambos arquivos (de imagem) em um pré visualizador que permite que observamos lado a lado esses arquivos, além de apresentar informações adicionais sobreascaracterísticasdoarquivo. Se forem arquivos de fotos digitais, apresenta as informações adicionadas pela câmera,emformadojhead,seessasinformaçõesexistirem.nãoéocasodaimagemem questão,entãoavisualizaçãocomparativaserásimilaraoscreenshotabaixo:

88 Muitopráticoesimples.Oquenospermiteperceberqueaúltimamodificação nessearquivo ouqualquermodificaçãoarbitrária podeserconsideradaumerro.e comorestaurarumarquivoerrôneamentemodificado? A estratégia é simples, basta reverter uma modificação. Com o processo de reversãovocêterálocalmenteumacópiadoarquivocomoeleeranarevisãoemque vocêescolher.ouseja,nãoháqualquermodificaçãofeitanaárvore,massimapenas localmente. Paraisso,atravésdonavegadorde logs queexploramosdiversasvezes,escolhaa revisãodesejadaecomobotãodadireita,cliqueem Reverttothisrevision comono screenshotabaixo.

89 Comoareversãoéapenaslocal,paraefetivaramudançaénecessárioo commit. Notequearevisãodaárvoreseráincrementada. Ou seja a restauração do arquivo é prática, mas o número da revisão nunca é restaurado, garantindo assim um histórico fiel da vida doarquivo desde o primeiro momento que ele foi adicionado ao repositório até o momento atual, da última modificação(revisão)daquelearquivo

90 Perfeito,apósaconclusãodocommitoarquivoestarárestauradonoservidorSVN remototalcomonaestruturalocal.

91 RecursosGráficoseEstatísticos OTortoiseSVNapresentaaindaalgunsrecursosgráficoseestatísticos.Porexemplo, aqualquermomentovocêpodeclicaremqualquertrechodaárvoreoudeumarquivo comobotãodadireita,eobterestatísitcasdeacessoàárvoreouaoarquivo.paraisso selecioneshowstatistics.essaestatísticaincluidatasdemodificaçõesequaisusuários trabalhammaisemcadatrechodorepositório. Complementarmente, podemos ainda observar um gráfico das principais modificações da árvore, ilustrando a vida do arquivo no repositório. Para isso com o botão da direito, no sub menu TortoiseSVN selecionerevisiongraphparaobteruma visualização gráfica da historia revisionaldaquelearquivooudiretório, comonosscreenshotsqueseguem. Esses recursos são eyecandies em uma primeira impressão, e para desenvolvedores podem ser consideradasdispensáveis.porém,para gerentes de projetos são tão importantes quantos gráficos Gantt ou matrizes de responsabilidade. Vejaabaixoumexemplosimplesdeapenasumtrechodegráficorevisionalpara umarquivocomumtempodevidanorepositóriosubversionconsideradocurto:

92 Quantomaiorotempodevidadoarquivooudaestruturadaárvore,emaioravida doprópriorepositório, melhor essegráficotendeaser. TortoiseSVNemPortuguêsBrasileiro Se realmente desejar usar o TortoiseSVN em português brasileiro, instale o LanguagePack quebaixamosanteriormente(odicionárioortográficoéopcional),ea qualquer momento clique com o terceirobotão,escolhao sub menutortoisesvn, e depoissettings. AteladeconfiguraçãodoTortoiseSVNseráexibida,enaabaLook&Feelescolhaa línguaportuguesa.comumpoucodetempovocêseacostumarácomasnovasversões de nome para os comandos Subversion clássicos, com os quais convivemos até o momento.

93 PARTEIV RAPIDSVN Se desejar usar um ambiente gráfico em plataforma Unix, ou em Mac OS X, recomendamosfortementeousodorapidsvn.eleéumaaplicaçãostandalonegráfica, queofereceumfront endclienteaosubversion.éoficial,mantidopelamesmaequipe que desenvolve o Subversion. Sob a Coleção de Ports do FreeBSD está em devel/rapidsvn,epodeserusadatambémemmacosxalémdoprópriowindows. ORapidSVNtemumacaracterísticapeculiaradicional.Alémdetercomoobjetivo serumaaplicaçãográficacliente,rapidsvntemtambémintuitodepermitiroufacilitar algumas tarefas administrativas, como importação de repositórios. Futuramente a criaçãodenovosrepositórioseoutrosrecursosdaaplicaçãosvnadminnoambientecli tambémserãointegradosaorapidsvn. A vantagem desse ambiente gráfico para Subversion frente outras alternativas, comoesavnekdesvnsãoonúmeroderecursos,ofatodelesermantidopelosmesmos autoresdoprópriosubversion,enãodependerdeumframeworkpré existente,como bibliotecaskde(kdelibs),oquepodenãoserumfatordesencorajadorsevocêjáusa KDE, mas certamente o será se o gerenciador de janelas de escolha for outro, especialmenteseamotivaçãoforperformance,jáquedaemonsesubsistemasdokde precisamestarcarregadosparausarokdesvnporesemplo. RapidSVN é desenvolvido com wxwidgets como base para biblioteca gráfica. Originalmente teve o nome de Visual Subversion, projeto que posteriormente foi descontinuado,eoambientededesenvolvimentopassouasercontinuadopelatigris, comonomerapidsvn.

94 InstalandooRapidSVN AtravésdaColeçãodePortsdoFreeBSDbastaentraremdevel/rapidsvneinstalar: #cd/usr/ports/devel/rapidsvn/ #makeinstallclean Oprocessopodeserumpoucodemorado,devidoasdependências,emespecialo wxwidgets.umavezinstalado,rapidsvnparecerá,emaparência,comumainterface GUIdeumclienteFTP,noquetangeaoambientedetrabalho.Porém,bastantedistinto emrecursosenotrabalhoprático.

Instalando servidor Apache

Instalando servidor Apache Instalando servidor Apache Apache é um software livre de código aberto que corre mais de 50% dos servidores web do mundo. Para instalar o apache, abra um terminal e digite o comando: 1- # yum install httpd

Leia mais

Instalação Apache + MySQL + PHPMyAdmin CentOS

Instalação Apache + MySQL + PHPMyAdmin CentOS Segue descrição das atividades: Tratamento dos dados gerados pelo Servidor de Web a partir do arquivo de logs. Configuração do Servidor Web para armazenar em um arquivo texto os logs de acesso, conforme

Leia mais

SERVIDOR WEB - APACHE SERVIDOR WEB - APACHE SERVIDOR WEB - APACHE 27/02/2012

SERVIDOR WEB - APACHE SERVIDOR WEB - APACHE SERVIDOR WEB - APACHE 27/02/2012 O servidor Apache é o mais bem sucedido servidor web livre. Foi criado em 1995 por Rob McCool, então funcionário do NCSA (National Center for Supercomputing Applications). Em maio de 2010, o Apache serviu

Leia mais

Instalação e Configuração do Servidor HTTPD Apache

Instalação e Configuração do Servidor HTTPD Apache Instalação e Configuração do Servidor HTTPD Apache Aqui iremos utilizar uma distribuição Linux no caso o CentOS, após a instalação do CentOS, iremos para a parte de instalação e configuração do Servidor

Leia mais

Sistemas Operacionais Livres. Servidor Web Apache

Sistemas Operacionais Livres. Servidor Web Apache Sistemas Operacionais Livres Servidor Web Apache Apache Implementação do protocolo HTTP(80) e HTTPS(443) Arquitetura Client / Server Proviemento de páginas WEB Open Source Servidor Web mais utilizado no

Leia mais

Faculdade de Tecnologia Senac Goiás. Goiânia, 28 de novembro de 2014.

Faculdade de Tecnologia Senac Goiás. Goiânia, 28 de novembro de 2014. Faculdade de Tecnologia Senac Goiás. Goiânia, 28 de novembro de 2014. Nomes: Luis Henrique Oliveira Luciana Carvalho Thiago Pereira Santos Vitor Massaki Y. Yakushiji Profº: Dinailton LABORATORIO DE REDES

Leia mais

FACULDADE DE TECNOLOGIA SENAC GESTÃO DA TECNOLOGIA DA INFORMAÇÃO LABORATORIO DE REDE

FACULDADE DE TECNOLOGIA SENAC GESTÃO DA TECNOLOGIA DA INFORMAÇÃO LABORATORIO DE REDE FACULDADE DE TECNOLOGIA SENAC GESTÃO DA TECNOLOGIA DA INFORMAÇÃO LABORATORIO DE REDE PROFESSOR: Dinailton Laboratorio De Rede DISCENTES: Helton Klinthon Douglas Silva Dyonathan Rodrigues Laboratório de

Leia mais

Guia de instalação para ambiente de Desenvolvimento LINUX

Guia de instalação para ambiente de Desenvolvimento LINUX Guia de instalação para ambiente de Desenvolvimento LINUX Conteúdo deste manual Introdução O guia de instalação... 3 Capítulo 1 Instalando o servidor Web Apache... 4 Teste de instalação do Apache... 9

Leia mais

Atividade Proposta da Disciplina: Laboratório de Rede de Computadores

Atividade Proposta da Disciplina: Laboratório de Rede de Computadores Atividade Proposta da Disciplina: Laboratório de Rede de Computadores Tratamento dos dados gerados pelo Servidor de Web a partir do arquivo de logs. Configuração do Servidor Web para armazenar em um arquivo

Leia mais

Configurando e Instalando o TRAC

Configurando e Instalando o TRAC Configurando e Instalando o TRAC Projeto LibertasBR http://www.libertasbr.org.br 27 de outubro de 2005 É comum a projetos, independente da natureza dos mesmos, passar por diversas fases de desenvolvimento.

Leia mais

Utilizando subversion como controle de versão

Utilizando subversion como controle de versão Utilizando subversion como controle de versão Heitor Rapcinski Este documento descreverá a utilização de subversion como ferramenta de controle de versão mostrando as facilidades da sua utilização para

Leia mais

Gestão de Desenvolvimento de Sistemas por Controle de Versão Utilizando SVN. Software para Controle de Versão SVN/Subversion

Gestão de Desenvolvimento de Sistemas por Controle de Versão Utilizando SVN. Software para Controle de Versão SVN/Subversion Gestão de Desenvolvimento de Sistemas por Controle de Versão Utilizando SVN Software para Controle de Versão SVN/Subversion Subversion é uma solução opensource Interação com o desenvolvedor Projetos que

Leia mais

PRÁTICA APACHE. Prof. Claudio Silva

PRÁTICA APACHE. Prof. Claudio Silva 1) Instalação do Apache yum install httpd chkconfig --level 35 httpd on apachectl start 2)Instalação navegador de linha de comando: yum install elinks elinks 127.0.0.1 3)Pastas de configurações do Apache:

Leia mais

O primeiro passo é habilitar acesso externo através de web service a configuração é bem simples e não exige maiores explicações.

O primeiro passo é habilitar acesso externo através de web service a configuração é bem simples e não exige maiores explicações. Integração de Controle de versão com Redmine. A integração do controle de versão pode permitir uma interatividade bem interessante entre os tickets e projetos do redmine com o controle de versão segue

Leia mais

Lazarus pelo SVN Linux/Windows

Lazarus pelo SVN Linux/Windows Lazarus pelo SVN Linux/Windows Sei que não faltam artigos sobre como obter e compilar o Lazarus e o FPC pelo SVN, mas sei também que nunca é de mais divulgar um pouco mais e talvez escrever algo diferente.

Leia mais

Introdução ao Sistema. Características

Introdução ao Sistema. Características Introdução ao Sistema O sistema Provinha Brasil foi desenvolvido com o intuito de cadastrar as resposta da avaliação que é sugerida pelo MEC e que possui o mesmo nome do sistema. Após a digitação, os dados

Leia mais

Prof. Samuel Henrique Bucke Brito

Prof. Samuel Henrique Bucke Brito Sistema Operacional Linux > Servidor Web (Apache) www.labcisco.com.br ::: shbbrito@labcisco.com.br Prof. Samuel Henrique Bucke Brito Introdução O Apache é o serviço web (http) mais popular do mundo, sendo

Leia mais

Win32 - SVN + Apache + Tortoise SVN + SVN Notify How-To. 1. Introdução. 2. Insumos necessários

Win32 - SVN + Apache + Tortoise SVN + SVN Notify How-To. 1. Introdução. 2. Insumos necessários Win32 - SVN + Apache + Tortoise SVN + SVN Notify How-To 09/05/2006 Eric Lemes (ericlemes@gmail.com) 1. Introdução O objetivo deste tutorial é descrever detalhadamente o procedimento de instalação e configuração

Leia mais

TUTORIAL PRÁTICO SOBRE Git. Versão 1.1

TUTORIAL PRÁTICO SOBRE Git. Versão 1.1 TUTORIAL PRÁTICO SOBRE Git por Djalma Oliveira Versão 1.1 "Git é um sistema de controle de revisão distribuida, rápido e escalável" (tradução rápida do manual). Basicamente é

Leia mais

Redes de Computadores

Redes de Computadores Redes de Computadores LAMP Gustavo Reis gustavo.reis@ifsudestemg.edu.br Acrônico para a combinação de Linux, Apache, MySQL e PHP ou Perl ou Python; Recentemente a letra P começou a fazer referência a Perl

Leia mais

CSAU 10.0. Guia: Manual do CSAU 10.0 como implementar e utilizar.

CSAU 10.0. Guia: Manual do CSAU 10.0 como implementar e utilizar. CSAU 10.0 Guia: Manual do CSAU 10.0 como implementar e utilizar. Data do Documento: Janeiro de 2012 Sumário 1. Sobre o manual do CSAU... 3 2. Interface do CSAU 10.0... 4 2.1. Início... 4 2.2. Update...

Leia mais

Instalação e Configuração do CollabNet Subversion Edge

Instalação e Configuração do CollabNet Subversion Edge Instalação e Configuração do CollabNet Subversion Edge 1) Descrição O Subversion Edge é um pacote da distribuição do Subversion SCM, que foi criado e distribuido pela empresa CollabNet com o objetivo de

Leia mais

Você pode testar se está tudo OK, abrindo um navegador no Debian Linux e acessando qualquer site.

Você pode testar se está tudo OK, abrindo um navegador no Debian Linux e acessando qualquer site. Você pode testar se está tudo OK, abrindo um navegador no Debian Linux e acessando qualquer site. Foi necessário configurar esse segundo adaptador, porque talvez seja necessário fazer o download de alguma

Leia mais

Nesse artigo abordaremos os principais aspectos de instalação e uso do NTOP no Fedora Core 4.

Nesse artigo abordaremos os principais aspectos de instalação e uso do NTOP no Fedora Core 4. Diego M. Rodrigues (diego@drsolutions.com.br) O NTOP é um programa muito simples de ser instalado e não requer quase nenhuma configuração. Ele é capaz de gerar excelentes gráficos de monitoramento das

Leia mais

WP para bibliotecários Moreno Barros. extralibris.org bsf.org.br

WP para bibliotecários Moreno Barros. extralibris.org bsf.org.br WP para bibliotecários Moreno Barros extralibris.org bsf.org.br O que é o wordpress? wordpress é um software open source para gerenciamento de blogs. Como apresenta muitas facilidades e recursos, ele também

Leia mais

Introdução a Banco de Dados

Introdução a Banco de Dados Introdução a Banco de Dados Ricardo Henrique Tassi - Departamento de Replicação Índice 1- Introdução... 03 2- Quais são os bancos de dados mais conhecidos hoje em dia...04 3- Quais são os tipos de banco...05

Leia mais

Brincando de Backup com rsync.

Brincando de Backup com rsync. Brincando de Backup com rsync. Autoria de Thiago J. Ruiz (Neo) 25/09/2006 Última Atualização 06/10/2006 A necessidade de se manter um backup de todas as informações/dados dos clientes se faz cada vez mais

Leia mais

Tutorial AwStats Indice

Tutorial AwStats Indice Tutorial AwStats Indice Introdução...2 Funcionamento:...3 Pré-Requisitos:...3 Instalação:...4 Configurações:...7 Utilização:...11 Sobre o Autor:...11 Introdução AwStats Como saber se seu site é um sucesso

Leia mais

ESET Remote Administrator ESET EndPoint Solutions ESET Remote Adminstrator Workgroup Script de Logon

ESET Remote Administrator ESET EndPoint Solutions ESET Remote Adminstrator Workgroup Script de Logon AGENDA 1. Download dos pacotes de instalação ESET Remote Administrator 2. Download dos pacotes de instalação ESET EndPoint Solutions 3. Procedimento de instalação e configuração básica do ESET Remote Adminstrator

Leia mais

Configure seu Linux pela Web! Instalação à partir de um.tar.gz. Autor: Carlos Eduardo Ribeiro de Melo <eduardo at unisulma.edu.br> Data: 05/10/2004

Configure seu Linux pela Web! Instalação à partir de um.tar.gz. Autor: Carlos Eduardo Ribeiro de Melo <eduardo at unisulma.edu.br> Data: 05/10/2004 1 de 6 27/3/2007 10:03 Configure seu Linux pela Web! Autor: Carlos Eduardo Ribeiro de Melo Data: 05/10/2004 Introdução O Webmin é um software de configuração de servidores

Leia mais

Instalação e Configuração

Instalação e Configuração Instalação e Configuração INTERNET Variedade de acessos e conteúdos SERVIDOR WEB Segurança, flexibilidade e agilidade É um computador que processa solicitações HTTP (Hyper-Text Transfer Protocol), que

Leia mais

Integração entre o IBM HTTP SERVER, APACHE WEB Server e IBM Websphere Application Server

Integração entre o IBM HTTP SERVER, APACHE WEB Server e IBM Websphere Application Server Integração entre o IBM HTTP SERVER, APACHE WEB Server e IBM Websphere Application Server Índice Resumo sobre este documento... 3 Integrando o IBM HTTP Server com o IBM WebSphere Application Server... 3

Leia mais

INTRODUÇÃO: 1 - Conectando na sua conta

INTRODUÇÃO: 1 - Conectando na sua conta INTRODUÇÃO: Com certeza a reação da maioria dos que lerem esse mini manual e utilizarem o servidor vão pensar: "mas porque eu tenho que usar um console se em casa eu tenho uma interface gráfica bonito

Leia mais

Auditando o Acesso ao Sistema de Arquivos no Windows 2008 Server R2

Auditando o Acesso ao Sistema de Arquivos no Windows 2008 Server R2 Auditando o Acesso ao Sistema de Arquivos no Windows 2008 Server R2 Primeiramente vamos falar um pouco sobre a Auditoria do Windows 2008 e o que temos de novidades com relação aos Logs. Como parte de sua

Leia mais

Configurando DDNS no Stand Alone

Configurando DDNS no Stand Alone Configurando DDNS no Stand Alone Abra o seu navegador de internet e acesse o endereço http://www.advr.com.tw(ou, http://59.124.143.151 ). Clique em Register para efetuar o cadastro de um novo grupo.(foto

Leia mais

Instalação do VOL Backup para Sistemas Unix-Like

Instalação do VOL Backup para Sistemas Unix-Like Este é o guia de instalação e configuração da ferramenta VOL Backup para Sistemas Unix-Like. Deve ser seguido caso você queira instalar ou reinstalar o VOL Backup em sistemas Linux, Solaris ou BSD. Faça

Leia mais

PLATAFORMA DE DESENVOLVIMENTO PINHÃO PARANÁ MANUAL DE UTILIZAÇÃO DO CVS NO ECLIPSE

PLATAFORMA DE DESENVOLVIMENTO PINHÃO PARANÁ MANUAL DE UTILIZAÇÃO DO CVS NO ECLIPSE PLATAFORMA DE DESENVOLVIMENTO PINHÃO PARANÁ MANUAL DE UTILIZAÇÃO DO CVS NO ECLIPSE Agosto 2007 Sumário de Informações do Documento Tipo do Documento: Manual Título do Documento: MANUAL DE UTILIZAÇÃO DO

Leia mais

Controle de Versão com GIT

Controle de Versão com GIT Controle de Versão com GIT Túlio Toffolo tulio@toffolo.com.br http://www.toffolo.com.br Conteúdo Extra Algoritmos e Estruturas de Dados História do GIT Linus usa BitKeeper para gerenciar o código de suas

Leia mais

ENDEREÇOS DE REDE PRIVADOS. 10.0.0.0 até 10.255.255.255 172.16.0.0 até 172.31.255.255 192.168.0.0 até 192.168.255.255. Kernel

ENDEREÇOS DE REDE PRIVADOS. 10.0.0.0 até 10.255.255.255 172.16.0.0 até 172.31.255.255 192.168.0.0 até 192.168.255.255. Kernel ENDEREÇOS DE REDE PRIVADOS Foram reservados intervalos de endereços IP para serem utilizados exclusivamente em redes privadas, como é o caso das redes locais e Intranets. Esses endereços não devem ser

Leia mais

Procedimentos para Reinstalação do Sisloc

Procedimentos para Reinstalação do Sisloc Procedimentos para Reinstalação do Sisloc Sumário: 1. Informações Gerais... 3 2. Criação de backups importantes... 3 3. Reinstalação do Sisloc... 4 Passo a passo... 4 4. Instalação da base de dados Sisloc...

Leia mais

TUTORIAL INSTALAÇÃO DE IMPRESSORAS NO UEGLINUX

TUTORIAL INSTALAÇÃO DE IMPRESSORAS NO UEGLINUX UNIVERSIDADE ESTADUAL DE GOIÁS GERÊNCIA DE NÚCLEO DE INOVAÇÕES TECNOLÓGICAS TUTORIAL INSTALAÇÃO DE IMPRESSORAS NO UEGLINUX Instalar uma impressora no Linux não é uma tarefa complicada e até chega a ser

Leia mais

No Fedora, instalamos os pacotes "mysql" e "mysql-server", usando o yum:

No Fedora, instalamos os pacotes mysql e mysql-server, usando o yum: Instalando o MySQL O MySQL é um banco de dados extremamente versátil, usado para os mais diversos fins. Você pode acessar o banco de dados a partir de um script em PHP, através de um aplicativo desenvolvido

Leia mais

5/7/2010. Apresentação. Introdução. Ponto de vista do usuário. Curso Tecnologia em Telemática. Disciplina Administração de Sistemas Linux

5/7/2010. Apresentação. Introdução. Ponto de vista do usuário. Curso Tecnologia em Telemática. Disciplina Administração de Sistemas Linux Apresentação Servidor Web Administração de Sistemas Curso Tecnologia em Telemática Disciplina Administração de Sistemas Linux Professor: Anderson Costa anderson@ifpb.edu.br Assunto da aula Servidor Web

Leia mais

Instalando servidor Apache com MySQL e as linguagens ColdFusion e PHP. XAMPP 1.6.7 (xampp-win32-1.6.7-installer.exe), veja aqui.

Instalando servidor Apache com MySQL e as linguagens ColdFusion e PHP. XAMPP 1.6.7 (xampp-win32-1.6.7-installer.exe), veja aqui. Instalando servidor Apache com MySQL e as linguagens ColdFusion e PHP. Escrito por Marcio Nakano (marcionakano.com.br) Data: 29/09/2008 Disponível em http:///blog/post/instalando-apache-mysql-coldfusionphp.pdf

Leia mais

Instalação e Configuração do Nagios

Instalação e Configuração do Nagios Instalação e Configuração do Nagios O NAGIOS é um poderoso monitorar de Rede. Com ele é possível verificar o status de equipamentos ou da rede toda. Também é possível criar grupos de usuários para receber

Leia mais

Projeto Amadeus. Guia de Instalação 00.95.00 Windows

Projeto Amadeus. Guia de Instalação 00.95.00 Windows Projeto Amadeus Guia de Instalação 00.95.00 Windows Agosto 2010 Sumário 1. Introdução...3 2. Pré-Requisitos...4 2.1 Máquina Virtual Java...4 2.2 Apache TomCat 6.0.18...4 2.3 PostgreSQL 8.3...5 3. Instalando

Leia mais

INSTALANDO E CONFIGURANDO O ACTIVE DIRECTORY NO WINDOWS SERVER 2008

INSTALANDO E CONFIGURANDO O ACTIVE DIRECTORY NO WINDOWS SERVER 2008 INSTALANDO E CONFIGURANDO O ACTIVE DIRECTORY NO WINDOWS SERVER 2008 Objetivo Esse artigo tem como objetivo demonstrar como instalar e configurar o Active Directory no Windows Server 2008. Será também apresentado

Leia mais

SiGE - Sistema de Gerência de Eventos

SiGE - Sistema de Gerência de Eventos SiGE - Sistema de Gerência de Eventos Equipe COMSOLiD February 22, 2013 Instalação Programas necessários: PostgreSQL; Apache HTTP Server; php5; Zend Framework; subversion (opcional); Base de dados Schema

Leia mais

Instalando o WordPress em localhost

Instalando o WordPress em localhost Instalando o WordPress em localhost WordPress sem Mistério LEE ARAUJO htto://wordpresssemmisterio.com.br Sumário Instalando o WordPress em Localhost... 2 O Servidor web... 3 Iniciando o servidor... 6 Criação

Leia mais

ISO/IEC 12207: Gerência de Configuração

ISO/IEC 12207: Gerência de Configuração ISO/IEC 12207: Gerência de Configuração Durante o processo de desenvolvimento de um software, é produzida uma grande quantidade de itens de informação que podem ser alterados durante o processo Para que

Leia mais

TUTORIAL: MANTENDO O BANCO DE DADOS DE SEU SITE DENTRO DO DOMÍNIO DA USP USANDO O SSH!

TUTORIAL: MANTENDO O BANCO DE DADOS DE SEU SITE DENTRO DO DOMÍNIO DA USP USANDO O SSH! UNIVERSIDADE DE SÃO PAULO (USP) ESCOLA DE ARTES, CIÊNCIAS E HUMANIDADES (EACH) TUTORIAL: MANTENDO O BANCO DE DADOS DE SEU SITE DENTRO DO DOMÍNIO DA USP USANDO O SSH! Autoria e revisão por: PET Sistemas

Leia mais

Documentação Symom. Agente de Monitoração na Plataforma Windows

Documentação Symom. Agente de Monitoração na Plataforma Windows Documentação Symom de Monitoração na Plataforma Windows Windows Linux Windows Linux Plataforma Windows Instalação A instalação do de Monitoração do Symom para Windows é feita através do executável setup.exe

Leia mais

STK (Start Kit DARUMA) Conectando-se diretamente a sua aplicação via TS com o MT1000 Daruma

STK (Start Kit DARUMA) Conectando-se diretamente a sua aplicação via TS com o MT1000 Daruma STK (Start Kit DARUMA) Conectando-se diretamente a sua aplicação via TS com o MT1000 Daruma Neste STK apresentaremos como configurar seu servidor Windows 2008 R2 para abrir diretamente sua aplicação ao

Leia mais

Instalando o Lazarus e outros sistemas de suporte. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011

Instalando o Lazarus e outros sistemas de suporte. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011 Instalando o Lazarus e outros sistemas de suporte Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011 Edição 1 Levante e ande - Instalando o Lazarus e outros sistemas de suporte. Ano: 02/2011 Nesta Edição

Leia mais

ServerAdmin servermaster@projetointegrador.com - Se o sistema detectar algo de anômalo, um mail será enviado a bazar@projeointegador.

ServerAdmin servermaster@projetointegrador.com - Se o sistema detectar algo de anômalo, um mail será enviado a bazar@projeointegador. Fundamentos de Serviços IP Gestão da Tecnologia da Informação Módulo III - Noturno Alunos: Douglas Ferreira João Victor Alves Erik Souza Raphael Beghelli Introdução Neste trabalho acadêmico será apresentando

Leia mais

COORDENAÇÃO DE TECNOLOGIA (COTEC) JUNHO/2010

COORDENAÇÃO DE TECNOLOGIA (COTEC) JUNHO/2010 PROCEDIMENTOS PARA INSTALAÇÃO DO OCS INVENTORY NG E GLPI NO SISTEMA COORDENAÇÃO DE TECNOLOGIA (COTEC) JUNHO/2010 Rua do Rouxinol, N 115 / Salvador Bahia CEP: 41.720-052 Telefone: (71) 3186-0001. Email:

Leia mais

Operador de Computador. Informática Básica

Operador de Computador. Informática Básica Operador de Computador Informática Básica Instalação de Software e Periféricos Podemos ter diversos tipos de software que nos auxiliam no desenvolvimento das nossas tarefas diárias, seja ela em casa, no

Leia mais

Projeto Amadeus. Guia de Instalação 00.95.00 Linux

Projeto Amadeus. Guia de Instalação 00.95.00 Linux Projeto Amadeus Guia de Instalação 00.95.00 Linux Agosto 2010 Sumário 1. Introdução...3 2. Pré-Requisitos...4 2.1 Máquina Virtual Java...4 2.1.1 Instalando JDK via apt-get...4 2.1.2 Instalando JDK a partir

Leia mais

Breve introdução a User Dir e Senhas no Apache Uma abordagem prática (aka crash course on User Dir and Directory Authentication on Apache)

Breve introdução a User Dir e Senhas no Apache Uma abordagem prática (aka crash course on User Dir and Directory Authentication on Apache) Breve introdução a User Dir e Senhas no Apache Uma abordagem prática (aka crash course on User Dir and Directory Authentication on Apache) Prof. Rossano Pablo Pinto Novembro/2012 - v0.1 Abril/2013 - v0.3

Leia mais

Estação Digital. Instalação do Gerenciador da Estação Digital

Estação Digital. Instalação do Gerenciador da Estação Digital Instalação do Gerenciador da Estação Digital A instalação do Gerenciador da consiste na configuração do Apache, PHP e MySQL. Esses são os programas necessários para execução do Gerenciador da : file:///c:/documents%20and%20settings/usuario/desktop/apache_logo_medium.png

Leia mais

FileZilla Server. O FileZilla Server é um ótimo servidor FTP, conta com diversas funções e fácil instalação e configuração.

FileZilla Server. O FileZilla Server é um ótimo servidor FTP, conta com diversas funções e fácil instalação e configuração. FileZilla Server Já apresentei um tutorial sobre o FileZilla, um cliente FTP com versões para vários sistemas operacionais, agora vou falar sobre o FileZilla Server, um programa que transforma seu computador

Leia mais

Como instalar o Ocomon passo a passo.

Como instalar o Ocomon passo a passo. Como instalar o Ocomon( Ferramenta Help Desk) passo a passo. Pessoal tudo bem? Já uso esta ferramenta há muito tempo e acho fantástica, quero compartilhar com vocês, pois ela é uma boa para quem quer gerenciar

Leia mais

Versionamento de Código. Núcleo de Desenvolvimento de Software

Versionamento de Código. Núcleo de Desenvolvimento de Software Versionamento de Código Núcleo de Desenvolvimento de Software Por quê? Facilidades de utilizar um sistema de versionamento de código. Várias versões Quando se salva uma nova versão de um arquivo, a versão

Leia mais

Criando Banco de Dados, Tabelas e Campos através do HeidiSQL. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011

Criando Banco de Dados, Tabelas e Campos através do HeidiSQL. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011 Criando Banco de Dados, Tabelas e Campos através do HeidiSQL Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011 Edição 2 Pedreiros da Informação Criando Banco de Dados, Tabelas e Campos através do HeidiSQL

Leia mais

INSTALANDO E CONFIGURANDO O MY SQL

INSTALANDO E CONFIGURANDO O MY SQL INSTALANDO E CONFIGURANDO O MY SQL Este tutorial tem como objetivo mostrar como instalar o banco de dados My SQL em ambiente Windows e é destinado aqueles que ainda não tiveram um contato com a ferramenta.

Leia mais

Como utilizar a central de gerenciamento VPN.

Como utilizar a central de gerenciamento VPN. Como utilizar a central de gerenciamento VPN. Construir conexões VPN entre vários roteadores pode ser uma tarefa demorada. Em cada um dos roteadores há diversos parâmetros que precisam ser sincronizados,

Leia mais

Instituto Superior Politécnico Gaya Escola Superior de Ciência e Tecnologia

Instituto Superior Politécnico Gaya Escola Superior de Ciência e Tecnologia Instituto Superior Politécnico Gaya Escola Superior de Ciência e Tecnologia Engenharia Informática Interligação e Gestão de Sistemas Informáticos 2006/2007 Interface WEB para Gestão de Máquinas Virtuais

Leia mais

ADMINISTRAÇÃO DE SISTEMAS OPERACIONAIS

ADMINISTRAÇÃO DE SISTEMAS OPERACIONAIS ADMINISTRAÇÃO DE SISTEMAS OPERACIONAIS FUNDAMENTOS DE Visão geral sobre o Active Directory Um diretório é uma estrutura hierárquica que armazena informações sobre objetos na rede. Um serviço de diretório,

Leia mais

Salvando modificações localmente (commit) Enviando modificações para o servidor (push) Sinalizando versão estável (tag)

Salvando modificações localmente (commit) Enviando modificações para o servidor (push) Sinalizando versão estável (tag) Salvando modificações localmente (commit) Enviando modificações para o servidor (push) Sinalizando versão estável (tag) Desfazendo modificações (reset) Verificar status de repositório 5 Não vamos fazer,

Leia mais

Manual de backup do banco de dados PostgreSQL - Versão 2. Setembro-2011

Manual de backup do banco de dados PostgreSQL - Versão 2. Setembro-2011 Manual de backup do banco de dados PostgreSQL - Versão 2 Setembro-2011 E-Sales Oobj Tecnologia da Informação Av. D, n. 246, Qd. A-04, Lt.02, Ap. 02, Jardim Goiás Goiânia/GO, CEP: 74805-090 Fone: (62) 3086-5750

Leia mais

Active Directory - Criação de seu primeiro domínio Windows 2003

Active Directory - Criação de seu primeiro domínio Windows 2003 Active Directory - Criação de seu primeiro domínio Windows 2003 O Active Directory é o serviço de diretório utilizado em uma rede Windows 2003. O AD, sendo um serviço de diretório, serve à nossa rede como

Leia mais

SUMÁRIO 1. AULA 6 ENDEREÇAMENTO IP:... 2

SUMÁRIO 1. AULA 6 ENDEREÇAMENTO IP:... 2 SUMÁRIO 1. AULA 6 ENDEREÇAMENTO IP:... 2 1.1 Introdução... 2 1.2 Estrutura do IP... 3 1.3 Tipos de IP... 3 1.4 Classes de IP... 4 1.5 Máscara de Sub-Rede... 6 1.6 Atribuindo um IP ao computador... 7 2

Leia mais

Programação para Internet I. 1. Servidores web. Nuno Miguel Gil Fonseca nuno.fonseca@estgoh.ipc.pt

Programação para Internet I. 1. Servidores web. Nuno Miguel Gil Fonseca nuno.fonseca@estgoh.ipc.pt Programação para Internet I 1. Servidores web Nuno Miguel Gil Fonseca nuno.fonseca@estgoh.ipc.pt Quando pretendemos aceder a uma página web, utilizamos um browser, independentemente da plataforma de hardware/software,

Leia mais

O QUE VOCÊ PRECISA SABER SOBRE DOMÍNIOS

O QUE VOCÊ PRECISA SABER SOBRE DOMÍNIOS O QUE VOCÊ PRECISA SABER SOBRE DOMÍNIOS A POP3 reuniu aqui as principais orientações para registro, renovação e transferência de domínios, entre outras questões que possam ajudar você a entender como funcionam

Leia mais

Sistema de Controle de Solicitação de Desenvolvimento

Sistema de Controle de Solicitação de Desenvolvimento Sistema de Controle de Solicitação de Desenvolvimento Introdução O presente documento descreverá de forma objetiva as principais operações para abertura e consulta de uma solicitação ao Setor de Desenvolvimento

Leia mais

Impressão do Manual do Utilizador

Impressão do Manual do Utilizador bibliopac Interface WWW Versão 2003 Guia de instalação rápida Junho 2003 ATENÇÃO! Impressão do Manual do Utilizador No CD de instalação está disponível o ficheiro Interface WWW Manual.PDF. Este manual,

Leia mais

Como instalar o sistema operacional pfsense no Citrix Xen Server

Como instalar o sistema operacional pfsense no Citrix Xen Server Como instalar o sistema operacional pfsense no Citrix Xen Server Autor: Eder S. G. - edersg@vm.uff.br Versão: 1.2 Data: 21/11/2012 Última atualização: 07/03/2013 Observação: Máquina real: Sistema operacional

Leia mais

Manual Módulo Livro Caixa Livro Caixa Atualizada com a versão 1.3.0

Manual Módulo Livro Caixa Livro Caixa Atualizada com a versão 1.3.0 Manual Módulo Livro Caixa Livro Caixa Atualizada com a versão 1.3.0 Noções Gerais: Pg. 02 Instruções para instalação Pg. 02 Ferramentas úteis Pg. 04 Menu Arquivos Empresas Usuárias Pg. 05 Ativar Empresa

Leia mais

Desenvolvendo Websites com PHP

Desenvolvendo Websites com PHP Desenvolvendo Websites com PHP Aprenda a criar Websites dinâmicos e interativos com PHP e bancos de dados Juliano Niederauer 19 Capítulo 1 O que é o PHP? O PHP é uma das linguagens mais utilizadas na Web.

Leia mais

Manual de Instalação PIMSConnector em Windows

Manual de Instalação PIMSConnector em Windows Manual de Instalação PIMSConnector em Windows Julho/2015 Sumário 1. Contexto de negócio (Introdução)... 3 2. Pré-requisitos instalação/implantação/utilização... 4 3. JBOSS... 6 3.1. Instalação... 6 3.2.

Leia mais

Autoridade de Certificação de uma infraestrutura de chave pública (PKI).

Autoridade de Certificação de uma infraestrutura de chave pública (PKI). Segurança em Sistemas informáticos 2010/2011 Autoridade de Certificação de uma infraestrutura de chave pública (PKI). Admilo Ribeiro ei06133@fe.up.pt Luis Pina ei03073@fe.up.pt Índice Introdução 3 Objectivos

Leia mais

Online Help StruxureWare Data Center Expert

Online Help StruxureWare Data Center Expert Online Help StruxureWare Data Center Expert Version 7.2.7 Appliance virtual do StruxureWare Data Center Expert O servidor do StruxureWare Data Center Expert 7.2 está agora disponível como um appliance

Leia mais

INSTALAÇÃO OASIS + WAMP SERVER NO AMBIENTE WINDOWS

INSTALAÇÃO OASIS + WAMP SERVER NO AMBIENTE WINDOWS INSTALAÇÃO OASIS + WAMP SERVER NO AMBIENTE WINDOWS Este tutorial foi desenvolvido pelos analistas Hézio Silva e José Mendes pertencentes ao quadro de TI do Banco da Amazônia S/A, sediado em Belém-Pa e

Leia mais

www.marketingdigitalexpress.com.br - Versão 1.0 Página 1

www.marketingdigitalexpress.com.br - Versão 1.0 Página 1 www.marketingdigitalexpress.com.br - Versão 1.0 Página 1 Remarketing é um recurso utilizado para direcionar anúncios personalizados para as pessoas que visitaram uma determinada página do seu site ou clicaram

Leia mais

Manual de Administração

Manual de Administração Manual de Administração Produto: n-mf Lexmark Versão: 4.0.3 Versão do Doc.: 1.0 Autor: Bruno Nercolini Ceron Data: 22/11/2010 Aplica-se à: Clientes e Revendas Alterado por: Release Note: Detalhamento de

Leia mais

Virtual Hosts. João Medeiros (joao.fatern@gmail.com) 1 / 12

Virtual Hosts. João Medeiros (joao.fatern@gmail.com) 1 / 12 Virtual Hosts João Medeiros (joao.fatern@gmail.com) 1 / 12 Uma pessoa pode ser conhecida por muitos nomes Um servidor WEB também No Apache, cada identidade é identificada pela diretiva Dependendo

Leia mais

Trabalho de Sistema de Informações. Instalação e configuração aplicativo Ocomon

Trabalho de Sistema de Informações. Instalação e configuração aplicativo Ocomon Trabalho de Sistema de Informações Aluno: Paulo Roberto Carvalho da Silva Instalação e configuração aplicativo Ocomon O trabalho tem como objetivo o estudo de caso,a instalação, configuração e funcionamento

Leia mais

DOCUMENTAÇÃO DO FRAMEWORK - versão 2.0

DOCUMENTAÇÃO DO FRAMEWORK - versão 2.0 DOCUMENTAÇÃO DO FRAMEWORK - versão 2.0 Índice 1 - Objetivo 2 - Descrição do ambiente 2.1. Tecnologias utilizadas 2.2. Estrutura de pastas 2.3. Bibliotecas já incluídas 3 - Características gerais 4 - Criando

Leia mais

HOW TO. Instalação do Firewall 6.1 Software

HOW TO. Instalação do Firewall 6.1 Software Introdução HOW TO Página: 1 de 14 Para fazer a migração/instalação do 6.1 Software, é necessária a instalação do Sistema Operacional Linux Fedora Core 8. Explicaremos passo a passo como formatar a máquina,

Leia mais

Manual do Google agenda. criação e compartilhamento de agendas

Manual do Google agenda. criação e compartilhamento de agendas Manual do Google agenda criação e compartilhamento de agendas 1 O que é o Google Agenda? Google Agenda é um serviço de agenda on line gratuito do Google, onde você pode anotar compromissos e tarefas, organizando

Leia mais

Usando o Google Code como repositório para projetos no Eclipse com SubClipse.

Usando o Google Code como repositório para projetos no Eclipse com SubClipse. Usando o Google Code como repositório para projetos no Eclipse com SubClipse. Autor: Rafael Oliveira Lopes http://www.dcc.ufrj.br/~rlopes Data: 02 de Junho de 2007 Introdução Senhores, Diante de alguns

Leia mais

Registro e Acompanhamento de Chamados

Registro e Acompanhamento de Chamados Registro e Acompanhamento de Chamados Contatos da Central de Serviços de TI do TJPE Por telefone: (81) 2123-9500 Pela intranet: no link Central de Serviços de TI Web (www.tjpe.jus.br/intranet) APRESENTAÇÃO

Leia mais

Como Usar o DriverMax

Como Usar o DriverMax Como Usar o DriverMax Este programa é uma mão na roda para proteger os drivers dos componentes de um computador. Veja porquê. O DriverMax é uma ferramenta que faz cópias de segurança de todos os drivers

Leia mais

MANUAL DE INSTALAÇÃO E CONFIGURAÇÃO. Motor Periférico Versão 8.0

MANUAL DE INSTALAÇÃO E CONFIGURAÇÃO. Motor Periférico Versão 8.0 MANUAL DE INSTALAÇÃO E CONFIGURAÇÃO Motor Periférico Versão 8.0 1. Apresentação... 3 2. Instalação do Java... 3 2.1 Download e Instalação... 3 2.2 Verificar Instalação... 3 3. Download do Motor Periférico...

Leia mais

MANUAL DE INSTALAÇÃO. LSoft Ponto Eletrônico

MANUAL DE INSTALAÇÃO. LSoft Ponto Eletrônico MANUAL DE INSTALAÇÃO LSoft Ponto Eletrônico SUPORTE TÉCNICO AO USUÁRIO: Atendimento On-line: www.lsoft.com.br E-Mail: suporte@lsoft.com.br (37) 3237-8900 Versão 1.0-2014. Todos os direitos reservados.

Leia mais

MSN-Proxy v0.7 no Debian 5 (Atualizado)

MSN-Proxy v0.7 no Debian 5 (Atualizado) Remontti MSN-Proxy v0.7 no Debian 5 (Atualizado) MSN-Proxy v0.7 no Debian 5 (Atualizado) Controle o uso do msn Messenger em sua rede. Desfrute de vários recursos, bem como log das conversas, aviso sobre

Leia mais

Instalação e Conguração do Xoops. Rogério Vinhal Nunes 26 de março de 2007

Instalação e Conguração do Xoops. Rogério Vinhal Nunes 26 de março de 2007 Instalação e Conguração do Xoops Rogério Vinhal Nunes 26 de março de 2007 1 Sumário 1 O que é o Xoops? 3 2 Instalação do Xoops e Dependências 3 2.1 Instalação das Dependências...............................

Leia mais