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(https://corporativo.freebsdbrasil.com.br),porsualistadesuporte,ouem 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 https://.osubversiontemseuprópriosistemadecontroledeusuários,maspermite

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: <http://svn.dominio.com.br> Repositorios SVN FreeBSD Brasil LTDA Password for 'eksffa': Authentication realm: <http://svn.dominio.com.br> 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 2) -1,2 +1,3 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 3) -1,2 +1,4

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 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 "http://trac.edgewall.org/attachment/wiki/tracl10n/trac-0.9.1templates-pt-br.tar.gz?format=raw"

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Para o processo de instalação do servidor Apache, deve se executar o seguinte comando, como root.

Para o processo de instalação do servidor Apache, deve se executar o seguinte comando, como root. Apresentação A servidor Web Apache é um dos mais utilizados na atualidade, além de ser um servidor Open Source, é também um dos mais fáceis de se configurar e possui uma extrema eficácia em relação a segurança

Leia mais

Capítulo 7. Hyper Text Transfer Protocol (HTTP). Serviço Apache. - Protocolo HTTP - Sessão HTTP - Configuração do serviço Apache

Capítulo 7. Hyper Text Transfer Protocol (HTTP). Serviço Apache. - Protocolo HTTP - Sessão HTTP - Configuração do serviço Apache Capítulo 7 Hyper Text Transfer Protocol (HTTP). Serviço Apache. - Protocolo HTTP - Sessão HTTP - Configuração do serviço Apache Gestão de Redes e Serviços (GRS) Capítulo 7 1/1 Protocolo HTTP Funciona na

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

Hyper Text Transfer Protocol (HTTP) ADI HTTP 1/18

Hyper Text Transfer Protocol (HTTP) ADI HTTP 1/18 Hyper Text Transfer Protocol (HTTP) ADI HTTP 1/18 Protocolo HTTP Funciona na filosofia cliente-servidor sobre o protocolo TCP na porta 80 Cliente tcp 80 Servidor Web Netscape, iexplorer, opera ( apache,

Leia mais

Manual do Usuário. Instalação via Terminal. SIGA-ADM versão 12.06

Manual do Usuário. Instalação via Terminal. SIGA-ADM versão 12.06 Manual do Usuário Instalação via Terminal SIGA-ADM versão 12.06 Projeto SIGA-EPT Manual do Usuário Instalação via Terminal Introdução Este manual objetiva explicitar os procedimentos e ferramentas necessárias

Leia mais

Redes de Computadores II

Redes de Computadores II Redes de Computadores II Prof. Celio Trois portal.redes.ufsm.br/~trois/redes2 Fonte: http://focalinux.cipsga.org.br/guia/avancado/ch-s-apache.htm Servidor HTTP O servidor web é um programa responsável

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

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

9.2 MySQL A instalação do MySQL trata-se de um procedimento relativamente fácil, já que iremos realizá-lo utilizando so repositórios do Linux.

9.2 MySQL A instalação do MySQL trata-se de um procedimento relativamente fácil, já que iremos realizá-lo utilizando so repositórios do Linux. 1 Aula 09 Servidor LAMP Linux-Apache-MySQL-PHP 9.1 Definição LAMP consiste no quarteto: Linux (Sistema Operacional); Apache (Servidor Web); MySQL (Servidor de Banco de Dados); e PHP (Ferramenta de Programação

Leia mais

Configure seu Linux pela Web! Instalação à partir de um.tar.gz. Autor: Carlos Eduardo Ribeiro de Melo 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

Introdução ao Git. Introdução ao GIT. Anderson Moreira. Baseado nos slides disponíveis em http//free electrons.com

Introdução ao Git. Introdução ao GIT. Anderson Moreira. Baseado nos slides disponíveis em http//free electrons.com Introdução ao GIT Introdução ao Git Anderson Moreira Copyright 2009, Free Electrons. Creative Commons BY SA 3.0 license Latest update: Aug 28, 2015, Document sources, updates and translations: http://free

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

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

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

INSTALANDO E CONFIGURANDO NAGIOS NO LINUX DEBIAN 6.0

INSTALANDO E CONFIGURANDO NAGIOS NO LINUX DEBIAN 6.0 INSTALANDO E CONFIGURANDO NAGIOS NO LINUX DEBIAN 6.0 Gerson Ribeiro Gonçalves www.websolutti.com.br MANUAL DE INSTALAÇÃO E CONFIGURAÇÃO DO NAGIOS DEBIAN 1. INSTALANDO NAGIOS-CORE Para todo administrador

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

COORDENAÇÃO DE TECNOLOGIA (COTEC) MARÇO/2012

COORDENAÇÃO DE TECNOLOGIA (COTEC) MARÇO/2012 PROCEDIMENTOS BÁSICOS DE CONFIGURAÇÃO DO SERVIÇO APACHE NO SERVIDOR LINUX - DEBIAN COORDENAÇÃO DE TECNOLOGIA (COTEC) MARÇO/2012 Rua do Rouxinol, N 115 / Salvador Bahia CEP: 41.720-052 Telefone: (71) 3186-0001.

Leia mais

Guia de Instalação e Configuração do Apache, PHP, MySQL e phpmyadmin emwindows

Guia de Instalação e Configuração do Apache, PHP, MySQL e phpmyadmin emwindows Universidade Federal de Santa Catarina -UFSC Centro Acadêmico de Engenharia de Controle e Automação CAECA Setor de Informática Guia de Instalação e Configuração do Apache, PHP, MySQL e phpmyadmin emwindows

Leia mais

Versões CentOS 4.7 Openupload 0.4.1 PHP 5.2 Postgresql 8.2. Requisitos Servidor HTTP PHP Base de dados(mysql, postgresql,arquivo de texto)

Versões CentOS 4.7 Openupload 0.4.1 PHP 5.2 Postgresql 8.2. Requisitos Servidor HTTP PHP Base de dados(mysql, postgresql,arquivo de texto) Openupload O openupload é um aplicativo em php que é semelhante ao megaupload rapid-share entre outros. Os usuários administrador e a senha são admin e admin. Versões CentOS 4.7 Openupload 0.4.1 PHP 5.2

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

Instalando Lighttpd com PHP, MySQL, Virtual hosting, WebDAV, Autenticação e Userdir

Instalando Lighttpd com PHP, MySQL, Virtual hosting, WebDAV, Autenticação e Userdir Instalando Lighttpd com PHP, MySQL, Virtual hosting, WebDAV, Autenticação e Userdir Autoria de Daniel Bristot de Oliveira 20/06/2006 Última Atualização 25/08/2006 FUG-BR / Grupo Brasileiro de Usuarios

Leia mais

Agenda. Aprendendo Git/GitHub. Definições. Git. História 31/05/2012. Vantagem de usar controle de versão

Agenda. Aprendendo Git/GitHub. Definições. Git. História 31/05/2012. Vantagem de usar controle de versão Agenda Aprendendo Git/GitHub Luciana Balieiro Cosme IFNMG Montes Claros Sobre Git Instalação no Windows Comandos básicos Estrutura de um commit Branches GitHub Considerações finais Definições Git is an

Leia mais

Protweb PHP. Instalação/Configuração

Protweb PHP. Instalação/Configuração Protweb PHP Instalação/Configuração Protweb PHP Instalação Requisitos: Servidor Web com suporte a PHP Banco de Dados MySQL Arquivos do Protweb Exemplo: Servidor Linux com: Apache 2.0.47, PHP 4.3.0 e MySQL

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

Escondendo a versão do Apache www.renatofilizola.com

Escondendo a versão do Apache www.renatofilizola.com Escondendo a versão do Apache www.renatofilizola.com Se você instala seu httpd através dos fontes, você pode alterar seu src/include e editar o httpd.h Localize as linhas: SERVER_BASEPRODUCT SERVER_ BASEREVISION

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

Manual Instalação e-cidade-transparência no Ubuntu Server

Manual Instalação e-cidade-transparência no Ubuntu Server Manual Instalação e-cidade-transparência no Ubuntu Server Pré requisitos 1. Ubuntu Server 12.04LTS 2. Apache2 3. PHP 5.* 4. PostgreSQL 9.2.* 5. e-cidade Obs: Caso existam dúvidas em relação a instalação/configuração

Leia mais

Manual Técnico Sistema Rede das Redes. Ver 1.0

Manual Técnico Sistema Rede das Redes. Ver 1.0 Manual Técnico Sistema Rede das Redes Ver 1.0 Índice REQUISITOS... 4 CONFIGURAÇÕES DO APACHE... 4 CONFIGURAÇÕES DO PHP... 5 CONFIGURAÇÃO DO ARQUIVO DBCONFIG.INI... 6 CONTROLE DE EXIBIÇÃO DE CONTAINERS...

Leia mais

Internet ANTES do WWW. Desde 1970 Rede militar Poucos pontos, 95% nos EUA Email, Telnet, FTP

Internet ANTES do WWW. Desde 1970 Rede militar Poucos pontos, 95% nos EUA Email, Telnet, FTP Apache, SSL e JServ Internet ANTES do WWW Desde 1970 Rede militar Poucos pontos, 95% nos EUA Email, Telnet, FTP A virada Tim Berners-Lee (1991) Sistema para encontrar informações Hipertexto HTTP e HTML

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

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

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

CAPA O Sumo disponibiliza um módulo de gerenciamento de usuários para suas aplicações web com poucas linhas de código.

CAPA O Sumo disponibiliza um módulo de gerenciamento de usuários para suas aplicações web com poucas linhas de código. Restringindo acesso à Internet com o gerenciador de acesso SUMO Ajuda de peso CAPA O Sumo disponibiliza um módulo de gerenciamento de usuários para suas aplicações web com poucas linhas de código. por

Leia mais

LABORATÓRIO VII. LAMP Server Documento versão 0.1. Aluno: Paulo Henrique Moreira Gurgel #5634135

LABORATÓRIO VII. LAMP Server Documento versão 0.1. Aluno: Paulo Henrique Moreira Gurgel #5634135 LABORATÓRIO VII LAMP Server Documento versão 0.1 Aluno: Paulo Henrique Moreira Gurgel #5634135 Orientado pela Professora Kalinka Regina Lucas Jaquie Castelo Branco Agosto / 2010 Laboratório VII LAMP Server

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

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

Controle de versão e fluxo de trabalho em projetos de desenvolvimento de software

Controle de versão e fluxo de trabalho em projetos de desenvolvimento de software Controle de versão e fluxo de trabalho em projetos de desenvolvimento de software Doutorado Multi-Institucional em Ciência da Computação UFBA UNIFACS UEFS terceiro@dcc.ufba.br 8 de novembro de 2008 Termos

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

Telefonia IP MOT. Prática 1

Telefonia IP MOT. Prática 1 Prática 1 Instalando o proxy SIP Kamailio, configurando os usuários e interligando proxies. Objetivo: Criar um ambiente VoIP básico utilizando o proxy SIP Kamailio que terá suas informações de usuário

Leia mais

Administrando o sistema linux TCP/IP

Administrando o sistema linux TCP/IP TCP/IP Principais Ferramentas para Redes - ifconfig Configura Interfaces (ethernet, atm, tun, pppoe e etc.) Ex.: ifconfig eth0 192.168.0.10 netmask 255.255.255.0 ifconfig eth0 ifconfig eth0 up ifconfig

Leia mais

Servidor de e-mail corporativo com Zimbra.

Servidor de e-mail corporativo com Zimbra. UNISUL Universidade do Sul de Santa Catarina Unisul TechDay 2013 Servidor de e-mail corporativo com Zimbra. Palestrante: Irineu Teza Nunes E-mail: irineu@idinf.com.br Website: www.idinf.com.br Blog: itnproducoes.blogspot.com

Leia mais

Manual de instruções

Manual de instruções RELATÓRIO DE PROJETO versão 2.1 Manual de instruções 1.Termo de Referência Esse relatório diz respeito ao edital número 46, OBJ-REL - Camada de Persistência Objeto-Relacional, publicado entre os dias 04

Leia mais

Sophos SafeGuard Enterprise 6.00.1

Sophos SafeGuard Enterprise 6.00.1 Sophos SafeGuard Enterprise 6.00.1 Guia: Manual de instalação do Sophos SafeGuard Enterprise 6.00.1 Data do Documento: novembro de 2012 1 Conteúdo 1. Sobre este manual... 3 2. Requisitos de Sistema...

Leia mais

Virtual Hosting com PureFTPd e MySQL

Virtual Hosting com PureFTPd e MySQL Virtual Hosting com PureFTPd e MySQL Autoria de Felippe de Meirelles Motta 14/05/2007 Última Atualização 15/06/2007 FUG-BR / Grupo Brasileiro de Usuarios de FreeBSD Publico mais um bom artigo que atinge

Leia mais

Instalação de PlaySMS E Ferramentas SMS Server 3 Server Em Debian Antes de começar

Instalação de PlaySMS E Ferramentas SMS Server 3 Server Em Debian Antes de começar Segue em português: Instalação de PlaySMS E Ferramentas SMS Server 3 Server Em Debian Antes de começar Este tutorial irá mostrar como você pode configurar um servidor de SMS no Debian com playsms e smstools.

Leia mais

Sistema de log do Apache

Sistema de log do Apache Sistema de log do Apache O apache é bem flexível na especificação do que será registrado em seus arquivos de log, possibilitando utilizar um arquivo de log único, diversos arquivos de logs registrando

Leia mais

Manual de Instalação INSTALAÇÃO E CONFIGURAÇÃO DE PROGRAMAS

Manual de Instalação INSTALAÇÃO E CONFIGURAÇÃO DE PROGRAMAS Manual de Instalação INSTALAÇÃO E CONFIGURAÇÃO DE PROGRAMAS Lista de Programas - Java versão 6.0 ou superior JDK (Java Development Kit) /Setups/java/jdk-6u3-windows-i586-p O JDK já vem com o JRE (Java

Leia mais

Linux. - Comando básicos

Linux. - Comando básicos - Comando básicos Linux ls (- la) : lista os arquivos do diretório local cd : muda de diretório. Exemplos úteis : cd : muda para o home dir cd - : volta para o diretório de

Leia mais

J820. Integração Contínua. com CVS, CruiseControl, Cruise Control. argonavis.com.br. AntHill Gump e Helder da Rocha (helder@acm.

J820. Integração Contínua. com CVS, CruiseControl, Cruise Control. argonavis.com.br. AntHill Gump e Helder da Rocha (helder@acm. J820 Integração Contínua com CVS, CruiseControl, Cruise Control AntHill Gump e Helder da Rocha (helder@acm.org) Integração contínua Um dos requisitos para implementar a integração contínua é ter um sistema

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

PRO APPS Hosting Data Sheet Professional Appliance / Apresentação

PRO APPS Hosting Data Sheet Professional Appliance / Apresentação O Pro Apps Hosting O Pro Apps Hosting é um componente da suíte de Professional Appliances destinado a atividade de hospedagem de conteúdo web; para isso, oferece gerenciamento pleno dos principais recursos

Leia mais

Universidade Estadual de Campinas. CVS - Concurrent Version System

Universidade Estadual de Campinas. CVS - Concurrent Version System Universidade Estadual de Campinas CVS - Concurrent Version System Eduardo Robinson Paganeli Universidade Estadual de Campinas UNICAMP 1 Sumário Módulo 1 Introdução ao CVS...3 Visão geral...4 Vantagens...6

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

Linux Network Servers

Linux Network Servers Apache Parte 2 Criptografia simétrica Os algoritmos de chave-simétrica (também chamados de Sistemas de Chaves Simétricas, criptografia de chave única, ou criptografia de chave secreta) são uma classe de

Leia mais

Criando um site com LAMP e Joomla em 30 minutos

Criando um site com LAMP e Joomla em 30 minutos Criando um site com LAMP e Joomla em 30 minutos Por Fernando Mercês fernando.merces@4linux.com.br $ whoami Consultor na 4Linux, bacharelando em Ciência da Computação na UniverCidade, trabalha com tecnologias

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

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

MA001. 01 de 28. Responsável. Revisão Q de 26/06/2015. Cantú & Stange Software. Página

MA001. 01 de 28. Responsável. Revisão Q de 26/06/2015. Cantú & Stange Software. Página Manual de instalação do Zada 5 MA001 Responsável Revisão Q de 26/06/2015 FL Página 01 de 28 Página 1 de 33 Revisão Q de 26/06/2015 MA001 Responsável: FL Manual de instalação do Zada 5 Este manual consiste

Leia mais

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

COORDENAÇÃO DE TECNOLOGIA (COTEC) MAIO/2010 PROCEDIMENTOS PARA INSTALAÇÃO DO SERVIDOR WEB (SIGA-ADM) COORDENAÇÃO DE TECNOLOGIA (COTEC) MAIO/2010 Rua do Rouxinol, N 115 / Salvador Bahia CEP: 41.720-052 Telefone: (71) 3186-0001. Email: cotec@ifbaiano.edu.br

Leia mais

Instalação do Sistema. Treinamento OTRS Help Desk

Instalação do Sistema. Treinamento OTRS Help Desk Instalação do Sistema Treinamento OTRS Help Desk Sumário Instalação... 3 Recomendações...3 Requisitos de Instalação...5 Preparando a Instalação no CentOS 6.5 (64 bits)...5 Preparando a Instalação no Ubuntu

Leia mais

Squid autenticado no Active Directory com Winbind

Squid autenticado no Active Directory com Winbind 1 de 5 4/2/2007 14:40 Squid autenticado no Active Directory com Winbind Autor: Anderson Leite Data: 30/08/2006 Introdução Este é um artigo bem resumido, entrando em detalhes somente

Leia mais

TUTORIAL - SERVIDOR DE MAPAS

TUTORIAL - SERVIDOR DE MAPAS TUTORIAL - SERVIDOR DE MAPAS INTRODUÇÃO Os passos descritos nesse tutorial são fruto da experiência obtida na realização de tais procedimentos para instalação de um Servidor de Mapas, sendo que tais procedimentos

Leia mais

Configuração Definitiva do Samba

Configuração Definitiva do Samba Configuração Definitiva do Samba 1 2 Sumário 1. Vantagens... 5 2. Desvantagem... 5 3. Conclusão Final... 5 4. Vamos botar a mão na massa!... 6 5. Instalação... 6 6. Configuração Parte 1 (Criando os diretórios)...

Leia mais

Linux - Servidor de Redes

Linux - Servidor de Redes Linux - Servidor de Redes Servidor Web Apache Prof. Roberto Amaral WWW Breve histórico Início 1989 CERN (Centro Europeu de Pesquisas Nucleares) precisava de um meio de viabilizar o trabalho cooperativo

Leia mais

Manual de Instalação

Manual de Instalação Manual de Instalação Índice 1) Passo: Instalação do MySQL Server... 2 2) Passo: Instalação do MySQL Query Browser... 9 3) Passo: Instalação do Dotnetfx 2.0 ou versão superior.... 13 4) Passo: Instalação

Leia mais

Manual de Instalação e Configuração MySQL

Manual de Instalação e Configuração MySQL Manual de Instalação e Configuração MySQL Data alteração: 19/07/11 Pré Requisitos: 1. Baixar os seguintes arquivos no através do link http://ip.sysfar.com.br/install/ mysql-essential-5.1.46-win32.msi mysql-gui-tools-5.0-r17-win32.msi

Leia mais

Tarefas práticas da disciplina

Tarefas práticas da disciplina Tarefas práticas da disciplina Objetivo: As atividades têm por objetivo consolidar os conceitos de redes de computadores, aplicando os conceitos teóricos de forma a desenvolver no estudante a capacidade

Leia mais

Projeto e Instalação de Servidores Servidores Linux Aula 7 Samba, SSH e Backup

Projeto e Instalação de Servidores Servidores Linux Aula 7 Samba, SSH e Backup Projeto e Instalação de Servidores Servidores Linux Aula 7 Samba, SSH e Prof.: Roberto Franciscatto Samba Samba Samba Samba Servidor de compartilhamento de arquivos e recursos de rede É compatível com

Leia mais

Capítulo 3. Os servidores web foram projetados para atender a diversas necessidades do mundo WEB, dentre as quais podemos destacar:

Capítulo 3. Os servidores web foram projetados para atender a diversas necessidades do mundo WEB, dentre as quais podemos destacar: Servidores Web 19 Capítulo 3 Servidores Web Visão Geral Os servidores web foram projetados para atender a diversas necessidades do mundo WEB, dentre as quais podemos destacar: HTTP (o mais comum) Servidor

Leia mais

1 SQL Injection A consulta normal SQL seria:

1 SQL Injection A consulta normal SQL seria: HTTP Testando aplicação Web. Pegaremos dois tipos de ataques dentre os top 10 do OWASP 1 SQL Injection A consulta normal SQL seria: SELECT * FROM Users WHERE Username='$username' AND Password='$password'

Leia mais

Décima segunda aula da preparação LPIC-2 LPI nível 2: Aula 12

Décima segunda aula da preparação LPIC-2 LPI nível 2: Aula 12 Décima segunda aula da preparação LPIC-2 LPI nível 2: Aula 12 TUTORIAL O servidor Apache. Utilização de um certificado de segurança. Conhecimento básico de proxy. por Luciano Siqueira Piotr Lewandowski

Leia mais

Instalação e configuração do serviço web Apache.

Instalação e configuração do serviço web Apache. Serviço web Apache agosto/2013 Instalação e configuração do serviço web Apache. 1 Histórico Um servidor web [ou serviço web] é uma aplicação servidora que usa o protocolo HTTP, Hyper Text Transfer Protocol,

Leia mais

ROTEIRO ILUSTRADO PARA SISTEMA COMPUTACIONAL INSANE

ROTEIRO ILUSTRADO PARA SISTEMA COMPUTACIONAL INSANE UNIVERSIDADE FEDERAL DE MINAS GERAIS PROPEEs - Programa de Pós-Graduação em Engenharia de Estruturas INSANE - INteractive Structural ANalysis Environment ROTEIRO ILUSTRADO PARA INSTALAÇÃO DO SISTEMA COMPUTACIONAL

Leia mais

Instalação de um Cliente Linux em um domínio de rede Microsoft Windows NT4

Instalação de um Cliente Linux em um domínio de rede Microsoft Windows NT4 Instalação de um Cliente Linux em um domínio de rede Microsoft Windows NT4 Projeto Libertas-BR http://www.libertasbr.org.br 8 de setembro de 2005 1 Introdução Esta documentação orienta a integração de

Leia mais

Ferramenta para gerenciamento de impressão CURUPIRA

Ferramenta para gerenciamento de impressão CURUPIRA #20 Ferramenta para gerenciamento de impressão CURUPIRA VITEC Versão 1.0 Agosto/2007 1 Revisões Versão Data Descrição 1.0.0 03/08/2007 Elaboração do Manual. Página 2 de 18 Índice 1 REVISÕES... 2 2 PRÉ-REQUISITOS...

Leia mais

O essencial do comando mysqladmin, através de 18 exemplos

O essencial do comando mysqladmin, através de 18 exemplos O essencial do comando mysqladmin, através de 18 exemplos Elias Praciano O mysqladmin é uma ferramenta de linha de comando que vem junto com a instalação do servidor MySQL e é usada por administradores

Leia mais

Administração de redes Servidor FTP

Administração de redes Servidor FTP Administração de redes Servidor FTP FTP (File Transfer Protocol - Protocolo de transferência de arquivos) é um tipo de protocolo utilizado para a transferência de arquivos entre computadores em rede. Para

Leia mais

Manual de Instalação do Ambiente WebAPSEE 1.5

Manual de Instalação do Ambiente WebAPSEE 1.5 UNIVERSIDADE FEDERAL DO PARÁ INSTITUTO DE CIÊNCIAS EXATAS E NATURAIS LABORATÓRIO DE ENGENHARIA DE SOFTWARE LABES 1.5 Belém PA Março, 2010 2 Sumário LISTA DE FIGURAS... 3 1 APRESENTAÇÃO... 4 2 INSTALANDO

Leia mais