123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488 |
- aria2 - Utilitário para Download Super Ultra Rápido
- ===================================================
- :Author: Tatsuhiro Tsujikawa
- :Email: t-tujikawa_at_users_dot_sourceforge_dot_net
- :translator: tradução Portuguese gsavix@gmail.com
- Renúncia
- --------
- Este programa não vem com garantias. O uso deste programa é por sua
- conta e risco.
- Introdução
- ----------
- aria2 é um utilitário para download de arquivos. Os protocolos suportados são
- HTTP, HTTPS, FTP, BitTorrent e Metalink. aria2 pode baixar arquivos de
- múltiplas fontes protocolos e tenta utilizar para isso a máxima banda possível.
- Pode funcionar em diversas plataformas de computadores e sistemas operacionais,
- como por exemplo: GNU Linux, OS X, Windows, Android entre outros. Ao mesmo
- tempo pode executar download de HTTP, HTTPS, FTP e BitTorrent enquanto estes
- dados podem ser disponibilizados (uploaded) ao mesmo tempo para o BitTorrent ou
- para você ir assistindo um filme enquanto o download prossegue. Através da
- verificação (checksum) de partes dos dados dos Metalink's, aria2
- automaticamente valida partes (chunks) do BitTorrent.
- A página do projeto está em http://aria2.sourceforge.net/.
- Veja `aria2 Manual Online <http://aria2.sourceforge.net/manual/pt/html/>`_
- e `Exemplos de Uso <http://sourceforge.net/apps/trac/aria2/wiki/UsageExample>`_
- para aprender como a usar aria2.
- Funcionalidades
- ---------------
- Lista de Configurações:
- * Interface de linha de comando
- * Download arquivos protocolos HTTP, HTTPS, FTP, BitTorrent
- * Download Segmentado
- * Metalink versão 4 (RFC 5854) suporte (HTTP, FTP, BitTorrent)
- * Metalink versão 3 suporte (HTTP, FTP, BitTorrent)
- * Metalink (RFC 6249) suporte (HTTP)
- * Implementação HTTP/1.1
- * Suporte Proxy HTTP Proxy
- * Suporte autenticação HTTP BASIC
- * Suporte autenticação HTTP Proxy
- * Váriavéis de ambiente (conjunto abrangente) para proxy: http_proxy, https_proxy,
- ftp_proxy, all_proxy e no_proxy
- * HTTP com gzip, suporte a codificação de conteúdo (deflate)
- * Verificação de peer usando Certificados Acreditados informado em HTTPS
- * Processamento de autenticação Cliente usando Certificado Acreditado HTTPS
- * Suporte a transferência (Chunked) codificada
- * Carga de Cookies a partir de arquivos formato Firefox 3, Chromium/Google Chrome
- e Mozilla / Firefox / IcedWeasel / (1.x/2.x) / Netscape.
- * Salvar Cookies em arquivo formato Mozilla 3, Firefox (1.x/2.x), Chromium, Netscape.
- * Suporte a Cabeçalho HTTP modificado ou personalizado
- * Suporte a Conexões Persistentes
- * FTP através de Proxy HTTP
- * Controle de velocidade Download e Upload (utilização da Banda Rede)
- * Extensões BitTorrent: Conexão rápida, DHT, PEX, MSE/PSE, Multi-Tracker
- * BitTorrent `WEB-Seeding <http://getright.com/seedtorrent.html>`_. aria2
- faz requisições de mais de uma parte de um (chunk) para reduzir sobreposições de
- requisições. Também permite requisições pipeline com tamanho especificado
- * BitTorrent Local Peer Discovery
- * Atualização ou Modificação (Rename) de estrutura de diretórios de downloads
- BitTorrent já finalizados
- * Interface JSON-RPC (sobre HTTP e WebSocket) / XML-RPC
- * Execução em modo daemon
- * Download Seletivosem múltiplos arquivos torrent/Metalink
- * Validação e checksum de parte (Chunk) em Metalink
- * Desabilidar download segmentado em Metalink
- * Suporte a Netrc
- * Suporte a arquivo de Configuração
- * Download de URIs a partir de arquivo texto ou entrada padrão com especificação
- opçional de arquivo de saída
- * Suporte a URI parametrizadas (intervalos, etc)
- * Suporte a IPv6
- Como obter o código fonte
- -------------------------
- O código fonte é mantido no Github:
- https://github.com/tatsuhiro-t/aria2
- Para obter o último código fonte, execute o seguinte comando::
- $ git clone git://github.com/tatsuhiro-t/aria2.git
- Aria2 será criado no diretório corrente do seu computador com os arquivos fonte.
- Dependências
- ------------
- ======================== ========================================
- funcionalidade dependência
- ======================== ========================================
- HTTPS GnuTLS ou OpenSSL
- BitTorrent libnettle+libgmp ou libgcrypt ou OpenSSL
- Metalink libxml2 ou Expat.
- Checksum libnettle ou libgcrypt ou OpenSSL
- gzip, deflate em HTTP zlib
- Async DNS C-Ares
- Firefox3/Chromium cookie libsqlite3
- XML-RPC libxml2 ou Expat.
- JSON-RPC sobre WebSocket libnettle ou libgcrypt ou OpenSSL
- ======================== ========================================
- .. note::
- libxml2 tem precedência sobre Expat se ambas bibliotecas instaladas.
- Caso prefira Expat, execute o configure com ``--without-libxml2``.
- .. note::
- GnuTLS tem precedência sobre OpenSSL se ambas bibliotecas instaladas.
- Caso prefira OpenSSL, execute configure com ``--without-gnutls``
- ``--with-openssl``.
- .. note::
- libnettle tem precedência sobre libgcrypt se ambas bibliotecas instaladas.
- Caso prefira libgcrypt, execute configure com
- `--without-libnettle --with-libgcrypt``. Se OpenSSL é selecionada em
- detrimento de GnuTLS, nem libnettle nem libgcrypt poderão ser usadas.
- São necessárias as seguintes configurações de bibliotecas SSl e cruypto:
- * libgcrypt
- * libnettle
- * OpenSSL
- * GnuTLS + libgcrypt
- * GnuTLS + libnettle
- BitTorrent e Metalink podem ser desabilitados fornecendo as opções
- ``--disable-bittorrent`` e ``--disable-metalink`` ao executar o script configure.
- Para habilitar DNS assíncrono é necessário c-ares.
- * projeto c-ares: http://daniel.haxx.se/projects/c-ares/
- Como fazer o build
- ------------------
- Para fazer o build do aria2 a partir dos fontes, instalar antes
- pacotes de desenvolvimento ( o nome pode variar nas distribuições):
- * libgnutls-dev (Requerido para suporte HTTPS, BitTorrent, Checksum)
- * nettle-dev (Requerido para suporte BitTorrent, Checksum)
- * libgmp-dev (Requerido para suporte BitTorrent)
- * libc-ares-dev (Requerido para suporte DNS async DNS )
- * libxml2-dev (Requerido para suporte Metalink)
- * zlib1g-dev (Requerido para suporte em HTTP decodificação gzip e deflate)
- * libsqlite3-dev (Requerido para suporte cookie Firefox3 / Chromium)
- Você pode usar libgcrypt-dev ao invés de nettle-dev e libgmp-dev:
- * libgpg-error-dev (Requerido para suporte BitTorrent, Checksum)
- * libgcrypt-dev (Requerido para suporte BitTorrent, Checksum)
- Pode ser usado libssl-dev ao invés de
- libgnutls-dev, nettle-dev, libgmp-dev, libgpg-error-dev e libgcrypt-dev:
- * libssl-dev (Requerido para suporte Checksum de HTTPS, BitTorrent )
- Pode ser usado libexpat1-dev ao invés de libxml2-dev:
- * libexpat1-dev (Requerido for Metalink suporte)
- Pode ser necessário usar pkg-config para detectar as bibliotecas
- acima mencionadas.
- Para a distribuição Fedora são necessários os seguintes pacotes:
- * gcc, gcc-c++, kernel-devel, libgcrypt-devel, libgcrypt-devel,
- libxml2-devel, openssl-devel
- Se foi feito o download do código fonte a partir de um repositório git,
- deverá ser executado o seguinte comando para criar o script de
- configuração (configure) e outros scripts também necessários
- para o build ou compilação do aria2::
- $ autoreconf -i
- Para construir a documentação é necessário instalar
- `Sphinx <http://sphinx.pocoo.org/>`_ que constroi página (man), html ou pdf
- contendo a documentação nos idiomas existentes.
- Para construir aria2 para Mac OS X, de uma olhada em build_osx_release.sh,
- o qual cria binários DMG que são padrões para OS X.
- A maneira mais rápida para compilar o aria2 é executar o script::
- $ ./configure
- Para compilar com link-edição estática utilize o opção da linha
- de comando ``ARIA2_STATIC=yes``::
- $ ./configure ARIA2_STATIC=yes
- Após a configuração feita, execute ``make`` para compilar o programa::
- $ make
- Ver `Compilação Cross Windows binário`_ para Criar Binário para
- Windows. Ver `Compilação Cross Android binário`_ para criar
- Binário para Android.
- O script configure verifica as bibliotecas
- disponíveis e habilita
- ou desabilita as funcionalidades na maior abrangência possivel, pois
- por padrão todas as funcionalidades são habilitadas. Desde a versão
- 1.1.0, aria2 verifica o certificado do servidor HTTPS como padrão.
- Se a compilação usou OpenSSL ou a recente versão de GnuTLS na qual há
- função ``gnutls_certificate_set_x509_system_trust()`` e a biblioteca
- foi adequadamente configurada para localizar o certificado CA
- armazenado, aria2 carrega automaticamente estes certificados no início.
- Se este não ocorrer, recomenda-se fornecer o caminho para o arquivo que
- contém o certificado. Por Exemplo, no Debian o caminho para o arquivo CA
- é "/etc/ssl/certs/ca-certificates.crt" (no pacote ca-certificates).
- Isto varia de acordo com sua distribuição Linux. Pode ser informada a opção
- ``--with-ca-bundle`` para configurar o script usado pelo make::
- $ ./configure --with-ca-bundle='/etc/ssl/certs/ca-certificates.crt'
- $ make
- Sem a opção ``--with-ca-bundle``, haverá um erro ao acessar servidores
- HTTPS pois o certificado não pode ser verificado sem possuir um pacote CA
- (entidade certificadora). Nesse caso, pode ser especificado um arquivo de
- certificado usando opção aria2's ``--ca-certificate``. Caso não haja um
- certificado instalado, então o último recurso é desabilitar a validação
- do certificado usando a opção ``--check-certificate=false``.
- Por padrão, arquivo chamado (bash_completion) ``aria2c`` é instalado no
- diretório ``$prefix/share/doc/aria2/bash_completion``. Para mudar o
- diretório de instalação do arquivo utilize a opção
- ``--with-bashcompletiondir``.
- O executavel é 'aria2c' no diretório src.
- aria2 usa CppUnit para (test unit) automatizado. Para executar o
- test unit emita o comando::
- $ make check
- Compilação Cross Windows binário
- --------------------------------
- Nessa seção, está descrito como fazer o build do binário para Windows
- usando o compilador cross mingw-w64 no Debian Linux.
- Basicamente, após compilar e instalar as bibliotecas dependentes, que
- são pré-requisitos pode ser feita a compilação cross apenas passando
- através da opção ``--host`` e especificando-se as variáveis
- ``CPPFLAGS``, ``LDFLAGS`` e ``PKG_CONFIG_LIBDIR`` que serão usadas
- no procedimento (configure). Para maior conveniência e menor custo
- de desenvolvimento, é fornecida uma maneira fácil de configurar as
- características do build / compilação.
- O script ``mingw-config`` é um ``(wrapper)`` para mingw-w64.
- Sua utilização é para gerar uma compilação oficial para Windows. Esse
- script assume que as seguintes bibliotecas tenham sido compiladas
- e/ou instaladas para a compilação cross:
- * c-ares
- * openssl
- * expat
- * sqlite3
- * zlib
- * cppunit
- Algumas variáveis de ambiente precisam ser ajustadas para compilar:
- ``HOST``
- compilação-cross para compilar programas que serão executados em
- um computador ``HOST``. Padrão para ``i686-w64-mingw32``.
- Para compilar binário para 64bits, especificar ``x86_64-w64-mingw32``.
- ``PREFIX``
- Prefixo do diretório onde as bibliotecas dependentes estão instaladas.
- Padrão para ``/usr/local/$HOST``. ``-I$PREFIX/include`` será adicionado
- às opções ``CPPFLAGS``. ``-L$PREFIX/lib`` será adicionado em
- ``LDFLAGS``. ``$PREFIX/lib/pkgconfig`` será configurado para
- ``PKG_CONFIG_LIBDIR``.
- Por exemplo, para construir um binário para 64bits utilize::
- $ HOST=x86_64-w64-mingw32 ./mingw-config
- Compilação Cross Android binário
- --------------------------------
- Nessa seção, descrevemos como construir um binário usando o compilador-cross
- NDD no Linux Debian.
- ``android-config`` é um script para configurar compilação para Android, o qual
- assume que as seguintes bibliotecas também foram construídas para
- compilador-cross:
- * c-ares
- * openssl
- * expat
- Quando compilando as bibliotecas, certifique-se que o compartilhamento (share)
- esteja desabilitado e confirme que somente biblioteca estática está habilitado.
- A compilação será feita somente com bibliotecas estáticas.
- A bibliteca zlib que vem com o Android NDK, portanto não é necessário
- compilar uma zlib nossa.
- ``android-config`` assume os seguintes pontos:
- * Android NDK está instalado no local definido pela variável de ambiente
- ``$ANDROID_HOME``. Consultar seção "3/ Chamando o compilador (jeito fácil):"
- no Android NDK
- ``docs/STANDALONE-TOOLCHAIN.html`` para instalar (toolchain) personalizada.
- * Bibliotecas dependentes devem estar instaladas em
- ``$ANDROID_HOME/usr/local``.
- Antes executar ``android-config`` e ``android-make``, a variável de ambiente
- ``$ANDOIRD_HOME`` deve apontar para o caminho correto.
- Após ``android-config``, executar ``android-make`` para compilar os fontes.
- Para Gerar a documentação
- -------------------------
- `Sphinx <http://sphinx.pocoo.org/>`_ é usado para construir a
- documentação. As páginas (man) da documentação são criadas se através do
- comando ``make`` caso estas páginas estejam desatualizadas. Tambem
- pode ser construida a versão em HTML da documentação do aria2 através
- do comando ``make html``. A versão HTML também está disponível em:
- `Original em Inglês <http://aria2.sourceforge.net/manual/en/html/>`_
- e nas traduções em:
- (`Português <http://aria2.sourceforge.net/manual/pt/html/>`_ e
- `Russo <http://aria2.sourceforge.net/manual/ru/html/>`_).
- BitTorrrent
- -----------
- Sobre Nome de arquivos
- ~~~~~~~~~~~~~~~~~~~~~~
- O nome do arquivo que será baixado é determinado da seguinte maneira:
- modo arquivo simples
- O a chave "name" está presento no arquivo .torrent, o nome do
- arquivo será o valor da chave "name". De outra maneira o nome
- do arquivo será baseado no arquivo .torrent mais o sufixo
- ".file". Exemplo: arquivo .torrent é "brasil.torrrent", então
- o nome do arquivo baixado será: "brasil.torrent.file". O
- diretório onde será armazenado o arquivo pode ser especificado
- através da opção -d.
- modo arquivos múltiplos
- A estrutura completa diretório/arquivo mencionada no arquivo .torrent será
- creada. O diretório base que conterá toda estrutura de diretórios e arquivos
- baixados, pode ser especificado através da opção -d.
- Antes do download iniciar a estrutura completa dos diretórios necessários
- ao download será criada. Por padrão aria2 abre no mínimo 100 arquivos
- mencionados no arquivo .torrent e diretamente executa gravação e leitura desses
- arquivos. O número máximo de arquivos para serem abertos simultaneamente pode
- ser controlado através da opção ``--bt-max-open-files``.
- DHT
- ~~~
- aria2 suporte DHT. Por padrão, a tabela de roteamento
- para IPv4 DHT é salva em ``$HOME/.aria2/dht.dat`` e a tabela de
- roteamento para IPv6 DHT é salva em ``$HOME/.aria2/dht6.dat``.
- aria2 utiliza o mesmo número de porta para ouvir ambos
- IPv4 e IPv6 DHT.
- Outras informações importantes
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- * Se a opção -o é usada para mudar o nome do arquivo de saida
- .torrent não o nome do arquivo dentro do arquivo .torrent.
- Para esta finalidade utilizar opção ``--index-out``.
- * Os números de portas padrões que o aria2 utiliza para TCP e UDP
- estão no intervalo de 6881 até 6999 (6881-6999).
- * aria2 não configura automaticamente port-forwarding.
- Por favor configurar manualmente seu roteador ou firewall.
- * O número máximo de é 55. Este limite pode ser excedido quando
- a taxa de download é muito baixa. Esta taxa de download pode ser
- ajustada com a opção ``--bt-request-peer-speed-limit``.
- * Desde a versão 0.10.0, aria2 parou de enviar mensagem de
- requisição após o download seletivo completar-se.
- Metalink
- --------
- A implementação atual suporte HTTP, HTTPS, FTP e BitTorrent. Outros
- protocolos P2P são ignorados. São suportados documentos das versões
- Metalink4 e Metalink 3.0.
- Para validação de (checksum) são suportados: md5, sha-1, sha-224,
- sha-256, sha-384 e sha-512. Se múltiplos algoritmos de hast
- são fornecidos aria2 utiliza o mais robusto. Se a validação do
- checksum falhar totalmente aria2 não tentará mais fazer download e
- terminará o processamento com código de retorno diferente de zero.
- As preferências de usuário suportadas são versão, idioma, local,
- protocolo e sistema operacional.
- Se verificação (checksum) de (chunk) são fornecidas em um arquivo
- Metalink, aria2 automaticamente valida (chunk) partes dos dados
- durante o download. Esse comportamente pode ser desligado através
- de opção da linha de comando.
- Se uma assinatura (certificado) é incluida em um arquivo Metalink,
- aria2 salva a assinatura como um arquivo após a conclusão do download.
- O nome do arquivo terá o sufixo ".sig". Caso já exista não será salvo.
- Em torrent de múltiplos arquivos Metalink4, podem aparecer no elemento
- metalink:metaurl. Uma vez que aria2 não faz download de 2 Torrents
- iguais ao mesmo tempo, aria2 agrupa arquivos em elementos metalink:file
- os quais tem o mesmo metaurl BitTorrent e serão baixados de um
- simples BitTorrent (swarm).
- Isto basicamente ocorre para download de multiplos arquivos Torrent quando
- há seleção de arquivo(s), portanto arquivos adjacentes que não estão
- no documento Metalink mas que compartilham a mesma (peça ou pedaço)
- do arquivo selecionado também serão baixados e criados.
- Se uma URI relativa é especificada em um elemento metalink:url ou
- metalink:metaurl, aria2 usa a URI do arquivo Metalink como URI base
- para resolver a URI relativa. Se a URI relativa encontra-se em um
- arquivo Metalink que é lido do disco local, aria2 usa o valor da
- opção ``--metalink-base-uri`` como URI base. Se essa opção não é
- especificada a URI relativa será ignorada.
- Metalink/HTTP
- -------------
- Esta versão utiliza links rel=duplicate. aria2 interpreta
- os campos do cabeçalho do Digest e verifica onde o valor do digest
- confere com outras fontes. Se houver diferença, derruba a conexão.
- aria2 também utiliza esse valor do digest para executar verificação do
- checksum após o download terminar. aria2 reconhece valor geo.
- Para sobrepor o valor de sua preferência utilize a opção
- ``--metalink-location``.
- netrc
- -----
- O suporte netrc é habilitado por padrão para HTTP, HTTPS e FTP. Para desabilitar
- especificar opção -n na linha de comando. Seu arquivo .netrc precisa possuir
- permissões corretas (600).
- WebSocket
- ---------
- O servidor WebSocket intrínseco no aria2 implementa a especificação
- definida na RFC 6455. O protocolo suportado refere-se a versão 13.
- Referências
- -----------
- * `aria2 Manual Inglês <http://aria2.sourceforge.net/manual/en/html/>`_ versão inglês
- * `aria2 Manual Russo <http://aria2.sourceforge.net/manual/ru/html/>`_ versão russo
- * `aria2 Manual Português <http://aria2.sourceforce.net/manual/pt/html/>`_ versão portugues
- * http://aria2.sourceforge.net/
- * http://sourceforge.net/apps/trac/aria2/wiki
- * https://github.com/tatsuhiro-t/aria2
- * `RFC 959 FILE TRANSFER PROTOCOL (FTP) <http://tools.ietf.org/html/rfc959>`_
- * `RFC 1738 Uniform Resource Locators (URL) <http://tools.ietf.org/html/rfc1738>`_
- * `RFC 2428 FTP Extensions for IPv6 and NATs <http://tools.ietf.org/html/rfc2428>`_
- * `RFC 2616 Hypertext Transfer Protocol -- HTTP/1.1 <http://tools.ietf.org/html/rfc2616>`_
- * `RFC 3659 Extensions to FTP <http://tools.ietf.org/html/rfc3659>`_
- * `RFC 3986 Uniform Resource Identifier (URI): Generic Syntax <http://tools.ietf.org/html/rfc3986>`_
- * `RFC 4038 Application Aspects of IPv6 Transition <http://tools.ietf.org/html/rfc4038>`_
- * `RFC 5854 The Metalink Download Description Format <http://tools.ietf.org/html/rfc5854>`_
- * `RFC 6249 Metalink/HTTP: Mirrors and Hashes <http://tools.ietf.org/html/rfc6249>`_
- * `RFC 6265 HTTP State Management Mechanism <http://tools.ietf.org/html/rfc6265>`_
- * `RFC 6455 The WebSocket Protocol <http://tools.ietf.org/html/rfc6455>`_
- * `The BitTorrent Protocol Specification <http://www.bittorrent.org/beps/bep_0003.html>`_
- * `BitTorrent: DHT Protocol <http://www.bittorrent.org/beps/bep_0005.html>`_
- * `BitTorrent: Fast Extension <http://www.bittorrent.org/beps/bep_0006.html>`_
- * `BitTorrent: IPv6 Tracker Extension <http://www.bittorrent.org/beps/bep_0007.html>`_
- * `BitTorrent: Extension for Peers to Send Metadata Files <http://www.bittorrent.org/beps/bep_0009.html>`_
- * `BitTorrent: Extension Protocol <http://www.bittorrent.org/beps/bep_0010.html>`_
- * `BitTorrent: Multitracker Metadata Extension <http://www.bittorrent.org/beps/bep_0012.html>`_
- * `BitTorrent: WebSeed - HTTP/FTP Seeding (GetRight style) <http://www.bittorrent.org/beps/bep_0019.html>`_
- * `BitTorrent: Private Torrents <http://www.bittorrent.org/beps/bep_0027.html>`_
- * `BitTorrent: BitTorrent DHT Extensions for IPv6 <http://www.bittorrent.org/beps/bep_0032.html>`_
- * `BitTorrent: Message Stream Encryption <http://wiki.vuze.com/w/Message_Stream_Encryption>`_
- * `Kademlia: A Peer-to-peer Information System Based on the XOR Metric <http://pdos.csail.mit.edu/~petar/papers/maymounkov-kademlia-lncs.pdf>`_
- versão atualizada em 26.novembro.2012 por gsavix@gmail.com
|