FAQ de Pesquisa no CPAN

Perguntas colocadas Frequentemente

1. Em que funciona este sítio?
2. Porque é que o "Módulo X" não está mencionado?
3. Porque é que o "Módulo X" não está mencionado, mas aparece no search.cpan.org?
4. Porque é que a documentação do "Módulo X" não existe?
5. Porque é que alguns, ou todos os pré-requisitos não existem?
6. Qual a sintaxe para as pesquisas?
7. Como é que uso os repositórios ppm disponíveis?
8. Existem outros motores de pesquisa para o CPAN?
9. Que convenções são empregues que possam ser usadas para ligações do exterior?
10. Encontrei um problema. Quem devo contactar?
11. O código para correr este sítio está disponível?

Em que funciona este sítio?

  A máquina básica é um linux. O software usado inclui mysql, Apache e mod_perl, Template-Toolkit, e, claro, Perl. O sistema usado para redireccionar os downloads para (esperamos) mirrors CPAN próximos é baseado em GeoIP. A ligação de rede é fornecida pela Universidade de Winnipeg.

Porque é que o "Módulo X" não está mencionado?

  Assumindo que o módulo foi indexado correctamente no CPAN, e que passou tempo suficiente de forma a que o mirror local o tenha actualizado, pode ser que a distribuição sigua uma estrutura não convencional. Em particular, aqui é assumido que a distribuição é descompactada numa sub-directoria derivada do nome da distribuição, e que o nome da distribuição e uma versão válida são extraível usando o módulo CPAN-DistnameInfo de Graham Barr.

Porque é que o "Módulo X" não está mencionado, mas aparece no search.cpan.org?

  O indexamento usado é baseado nos índices do CPAN, que são mais restrictos dos que os usados pelo search.cpan.org. Portanto, se um módulo não aparece aqui, existem possibilidades de ele também não aparecer em ferramentas como o `CPAN/CPANPLUS`. Isto pode ser derivado de várias razões - pode ser uma versão de desenvolvimento (indicado como tal usando um '_' no número de versão da distribuição), ou pode não ter sido registado com o PAUSE, ou talvez tenha sido registado mas usando um identificador do CPAN diferente. Note também que apenas as versões mais recentes são mantidas na base de dados, o que exclui módulos existindo apenas em versões antigas.

Porque é que a documentação do "Módulo X" não existe?

  Isto pode ser devido a problemas as extraír o POD e/ou ao convertê-lo para HTML. Outra possibilidade é que não esteja conforme as convenções assumidas para a secção `NAME da documentação, onde o nome do módulo é especificado. Finalmente, pode ser que seja apresentada, mas não numa localização standard - pode ver por exemplo, http://cpan.uwinnipeg.ca/htdocs/libnet/ para uma lista de todos os documentos associados com determinada distribuição.`

Porque é que alguns, ou todos os pré-requisitos não existem?

  A informação sobre os pré-requisitos é extraída de um ficheiro `META.yml` que deve existir na distribuição. Nem todas as distribuições têm este ficheiro, já que é gerado apenas quando as distribuições são criadas com versões relativamente recentes do `ExtUtils::MakeMaker` ou `Module::Build`.

Qual a sintaxe para as pesquisas?
  - Uma pesquisa básica como `foo bar` irá procurar, dependendo no tipo de pesquisa especificado, nos nomes dos módulos e respectivos resumos, ou identificadores de CPAN e nomes completos, e retornar os resultados que estejam de acordo com todos os termos de pesquisa especificados. Na pesquisa pelos resumos, apenas os termos com mais de duas palavras serão usados.
  - Se pretende excluir um termo de pesquisa dos resultados, adicione um sinal "menos" antes do termo (ex, `foo -bar`).
  - As pesquisas também podem ser feitas usando expressões regulares - estas são reconhecidas pela existênia de um ou mais dos seguintes caracteres `^, $, *, +, ?, |` no termo de pesquisa.
Como é que uso os repositórios ppm disponíveis?

  Consulte a documentação que vem com o ActivePerl para informações gerais sobre o ppm. Os pacotes ppm que aqui aparecem podem ser instalados com o utilitário ppm. Para os pacotes ActivePerl, deve poder instalar usando `install Nome-Pacote` a partir do utilitário ppm; para os outros pacotes, é provável que tenha de adicionar a localização indicada na sua lista de repositórios:

  - http://www.bribes.org/perl/ppm, para o repositório bribes Perl 5.6/5.8
  - http://theoryx5.uwinnipeg.ca/cgi-bin/ppmserver?urn:/PPMServer, para o repositório uwinnipeg Perl 5.6
  - http://theoryx5.uwinnipeg.ca/cgi-bin/ppmserver?urn:/PPMServer58 (ActivePerl Builds < 819) / http://theoryx5.uwinnipeg.ca/ppms/ (ActivePerl Builds >= 819), para o repositório uwinnipeg Perl 5.8

  Tenha a certeza de que usa um repositório apropriado para a sua versão de Perl (repositórios 5.6 para ActivePerl 6xx, e repositórios 5.8 para ActivePerl 8xx). Também, note que o nome do pacote que aqui aparece, baseado no nome da distribuição CPAN, é o que deve ser usado quando instala um pacote; este corresponde, mas nem sempre, ao nome do módulo principal do pacote.

  Se mantém um repositório ppm e quer que ele seja incluído na base de dados, é necessário que tenha um ficheiro summary.ppm com a lista de pacotes ppm disponíveis no repositório. Como gerar este ficheiro é descrito numa script disponível na distribuição PPM no CPAN. Depois de o gerar, contacte Randy Kobes com detalhes do seu repositório.

Existem outros motores de pesquisa para o CPAN?
  Sim.
  - search.cpan.org.
  - www.perldoc.com.
  - wait.cpan.org.
Que convenções são empregues que possam ser usadas para ligações do exterior?
  - Uma ligação como http://cpan.uwinnipeg.ca/~gbarr irá mostrar informação sobre o autor CPAN com identificador `GBARR`.
  - Para informação sobre uma distribuição ou módulo em particular, use uma ligação como http://cpan.uwinnipeg.ca/dist/libnet (para distribuições) ou http://cpan.uwinnipeg.ca/module/Net::FTP (para módulos). Para distribuições, http://cpan.uwinnipeg.ca/~gbarr/libnet também pode ser usado se souber o identificador CPAN do autor.
  - Para listagens alfabéticas de distribuições ou módulos use http://cpan.uwinnipeg.ca/dist/A/ ou http://cpan.uwinnipeg.ca/module/A/ para todas as distribuições ou módulos começados por determinada letra. Use http://cpan.uwinnipeg.ca/dist/Apache/ ou http://cpan.uwinnipeg.ca/module/Apache/ para listar, respectivamente, distribuições de acordo com `Apache-*` ou módulos de acordo com `Apache::*`. tenha atenção à barra final nestas ligações.
  - Para ligar a uma listagem por categoria, pode usar http://cpan.uwinnipeg.ca/chapter para os cabeçalhos das categorias principais, ou http://cpan.uwinnipeg.ca/chapter/World_Wide_Web_HTML_HTTP_CGI para uma categoria específico, e http://cpan.uwinnipeg.ca/chapter/World_Wide_Web_HTML_HTTP_CGI/Apache para uma sub-categoria.
  - Ligações a documentos de módulos particulares pode ser feita com http://cpan.uwinnipeg.ca/htdocs/libnet/Net/FTP.html para encontrar a documentação do `Net::FTP` na distribuição `libnet`. Alternativamente, pode usar http://cpan.uwinnipeg.ca/perldoc?Net::FTP. (isto também funciona para a documentação do perl - por exemplo, http://cpan.uwinnipeg.ca/perldoc?perlfaq irá mostrar a página perlfaq da documentação). Note que estes links da documentação podem não funcionar para todos os módulos, por uma grande variedade de razões, especialmente por causa de convenções assumidas nos índices do CPAN e na forma da documentação dos ficheiros POD das distribuições.
Encontrei um problema. Quem devo contactar?

  Por favor, envie um email para Randy Kobes se encontrar problemas, nomeadamente ligações partidas à documentação e erros de tradução. Por favor inclua detalhes (e ligações) do que estava a fazer quando o erro ocorreu.

O código para correr este sítio está disponível?

  Sim. Veja o projecto CPAN-Search-Lite no SourceForge. Uma lista de discussão está disponível para realizer perguntas em como colocar o código a correr, discutir erros, e para propor melhoramentos. Note que este projecto não pretende "competir" com (o incrível) search.cpan.org, que contém um grande número de características não presentes aqui (antigas distribuições, capacidades de `grep` e `diff`, etc). Uma direcção para este código em particular poderá ir de encontro a outros serviços além dos habituais via web (por exemplo, ferramentas baseadas em SOAP.