Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
замена wget на aria2 при emerge
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Russian
View previous topic :: View next topic  
Author Message
jodaka
Tux's lil' helper
Tux's lil' helper


Joined: 16 May 2004
Posts: 129
Location: Russia, Togliatty

PostPosted: Wed Jul 05, 2006 10:52 am    Post subject: замена wget на aria2 при emerge Reply with quote

Прочитал про консольную качалку Aria2 (http://aria2.sourceforge.net/). Сия штуковина может качать в несколько потоков, и, что более ценно - одновременно с нескольких разных зеркал (даже смешивая ftp и http)

я так подозреваю - что, если эту софтину прикрутить к emerge вместо wget'a - то скачивание будет происходит заметно веселее :)

кто-нибудь пробовал ? Насколько это реально ?
... я где-то год назад пробовал вместо wget использовать prozilla, но проект загнулся и я вернулся к wget'u
Back to top
View user's profile Send private message
046
Apprentice
Apprentice


Joined: 21 Jul 2004
Posts: 231
Location: Yaroslavl, Russia

PostPosted: Wed Jul 05, 2006 11:07 am    Post subject: Reply with quote

Моё мнение - загрузка в несколько потоков увеличивает скорость в редких случаях, и обычно только грузит сервера.

Намного лучше бы emerge доработать, чтобы получал следующие пакеты, пока собирается текущий :)
Back to top
View user's profile Send private message
Laitr Keiows
Moderator
Moderator


Joined: 04 Jul 2005
Posts: 891
Location: Kobe, Japan

PostPosted: Wed Jul 05, 2006 11:15 am    Post subject: Reply with quote

046 wrote:
Намного лучше бы emerge доработать, чтобы получал следующие пакеты, пока собирается текущий :)

Т.е. в make.conf
Code:
FEATURES="parallel-fetch"
Back to top
View user's profile Send private message
ba
l33t
l33t


Joined: 25 May 2003
Posts: 804

PostPosted: Wed Jul 05, 2006 12:00 pm    Post subject: Reply with quote

046 wrote:
Моё мнение - загрузка в несколько потоков увеличивает скорость в редких случаях, и обычно только грузит сервера.

если у тебя канал достаточно толстый, но сильно забит, то прирост иногда увеличивается в число потков раз :)
а насчет нагрузки на сервера согласен...
Back to top
View user's profile Send private message
Azik
Tux's lil' helper
Tux's lil' helper


Joined: 03 Apr 2005
Posts: 149
Location: Russia, Ufa

PostPosted: Thu Jul 06, 2006 12:03 am    Post subject: Reply with quote

В make.conf
Code:
FETCHCOMMAND="/usr/bin/aria2c -s 3 \${URI}"
RESUMECOMMAND="/usr/bin/aria2c -s 3 \${URI}"

-s 3 - число потоков для скачивания.

Но это все теория. Второй версии нет пока в portage. Так что проверять на практике будут другие :).
Имхо из всех преимуществ aria2 только эти потоки могут быть полезны, остальное не пригодится.
_________________
From Siberia with Love!
Back to top
View user's profile Send private message
fank
l33t
l33t


Joined: 16 Oct 2004
Posts: 794
Location: Minsk, Belarus

PostPosted: Thu Jul 06, 2006 12:25 pm    Post subject: Reply with quote

вот ебилд:
Code:
# Copyright 1999-2006 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $

inherit eutils

DESCRIPTION="aria2 is a download utility with resuming and segmented downloading."
HOMEPAGE="http://aria2.sourceforge.net/"
SRC_URI="mirror://sourceforge/${PN}/${P}.tar.bz2"

LICENSE="GPL"
SLOT="0"
KEYWORDS="~x86"
IUSE="ssl tls bittorrent metalink checksum"

RDEPEND="ssl? ( || ( dev-libs/openssl net-libs/gnutls) )
                bittorrent? ( || ( dev-libs/openssl net-libs/gnutls ) )
                metalink? ( >=dev-libs/libxml2-2.6.26 )
                checksum? ( || ( dev-libs/openssl net-libs/gnutls dev-libs/libgcrypt ) ) "

src_compile () {
        econf \
                $(use_enable ssl) \
                $(use_enable tls) \
                $(use_enable bittorrent) \
                $(use_enable metalink) \
                || die

                emake || die
}

src_install () {

        einstall || die "einstall failed"
        dodoc  ABOUT-NLS AUTHORS COPYING INSTALL NEWS README TODO ChangeLog*

}

кстати. прога не умеет докачивать файлы :?
это серьёзнейший недостаток
Back to top
View user's profile Send private message
jodaka
Tux's lil' helper
Tux's lil' helper


Joined: 16 May 2004
Posts: 129
Location: Russia, Togliatty

PostPosted: Thu Jul 06, 2006 4:27 pm    Post subject: Reply with quote

Azik wrote:
В make.conf
Code:
FETCHCOMMAND="/usr/bin/aria2c -s 3 \${URI}"
RESUMECOMMAND="/usr/bin/aria2c -s 3 \${URI}"

-s 3 - число потоков для скачивания.

Но это все теория. Второй версии нет пока в portage. Так что проверять на практике будут другие :).
Имхо из всех преимуществ aria2 только эти потоки могут быть полезны, остальное не пригодится.

это даже в теории не совсем то, чего бы на самом деле хотелось. Интересно не просто тянуть в 3-5 потоков... но тянуть каждый поток со своего сервера! Вот тогда это уже интересно.
задал вопрос автору по поводу докачки... посмотрим, что он скажет...
Back to top
View user's profile Send private message
jodaka
Tux's lil' helper
Tux's lil' helper


Joined: 16 May 2004
Posts: 129
Location: Russia, Togliatty

PostPosted: Thu Jul 06, 2006 5:54 pm    Post subject: Reply with quote

fank wrote:
кстати. прога не умеет докачивать файлы :?
это серьёзнейший недостаток


я автору вопрос написал, по поводу докачки - и он ответил:

Quote:

Hi, Anton

Sorry, resume function is not working in 0.6.0 version because of the
bug. I couldn't notice it.

I release new version to fix this today.

Thanks,

Tatsuhiro Tsujikawa


добавление: сегодня появилась новая сборка (видимо как раз с починеной докачкой)
Back to top
View user's profile Send private message
fank
l33t
l33t


Joined: 16 Oct 2004
Posts: 794
Location: Minsk, Belarus

PostPosted: Fri Jul 07, 2006 6:49 am    Post subject: Reply with quote

aria2-0.6.0-r1.ebuild:
Code:
# Copyright 1999-2006 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $

inherit eutils

DESCRIPTION="aria2 is a download utility with resuming and segmented downloading."
HOMEPAGE="http://aria2.sourceforge.net/"
SRC_URI="mirror://sourceforge/${PN}/${P}.tar.bz2"

LICENSE="GPL"
SLOT="0"
KEYWORDS="~x86"
IUSE="ssl tls bittorrent metalink checksum"

RDEPEND="ssl? ( || ( dev-libs/openssl net-libs/gnutls) )
        bittorrent? ( || ( dev-libs/openssl net-libs/gnutls ) )
        metalink? ( >=dev-libs/libxml2-2.6.26 )
        checksum? ( || ( dev-libs/openssl net-libs/gnutls dev-libs/libgcrypt ) ) "

src_unpack () {
    unpack ${A}
    cd "${S}"
    epatch "${FILESDIR}"/aria2-r1.diff
}

src_compile () {
    econf \
        $(use_enable ssl) \
        $(use_enable tls) \
        $(use_enable bittorrent) \
        $(use_enable metalink) \
        || die

        emake || die
}

src_install () {

    einstall || die "einstall failed"
    dodoc  ABOUT-NLS AUTHORS COPYING INSTALL NEWS README TODO ChangeLog*

}


aria2-r1.diff
Code:
diff -ur aria2-0.6.0/ChangeLog aria2-0.6.0+1/ChangeLog
--- aria2-0.6.0/ChangeLog       2006-07-04 15:13:12.000000000 +0300
+++ aria2-0.6.0+1/ChangeLog     2006-07-06 21:09:19.000000000 +0300
@@ -1,3 +1,32 @@
+2006-07-07  Tatsuhiro Tsujikawa  <tujikawa at rednoah dot com>
+
+       To fix the bug that .aria2 file is not saved if downloading is stopped
+       by the errors:it results that aria2 can not resume downloading:
+
+       * src/main.cc
+       (normalDownload): Added the call to save().
+       (main): Added the deletion of the elements in 'reserved'.
+
+       To fix log:
+
+       * src/PeerInteraction.cc
+       (receiveHandshake): Fixed log.
+
+       To improve the download performance just a little bit:
+
+       * src/TorrentMan.cc
+       (getPeer): Return nullPeer if connections is greater than
+       MAX_PEER_UPDATE.
+
+2006-07-05  Tatsuhiro Tsujikawa  <tujikawa at rednoah dot com>
+
+       To improve download performance in BitTorrent:
+
+       * src/TorrentMan.cc
+       (getPeer): Check the number of connections. Return nullPeer if
+       it is greater than MAX_PEER_UPDATE.
+       This code was originally here, but was removed in 0.5.1.
+
 2006-07-04  Tatsuhiro Tsujikawa  <tujikawa at rednoah dot com>

         To improve the conditional compilation:
diff -ur aria2-0.6.0/src/main.cc aria2-0.6.0+1/src/main.cc
--- aria2-0.6.0/src/main.cc     2006-07-04 14:44:15.000000000 +0300
+++ aria2-0.6.0+1/src/main.cc   2006-07-06 21:02:38.000000000 +0300
@@ -323,6 +323,8 @@
     downloadedFilename = e->segmentMan->getFilePath();
     success = true;
   } else {
+    e->segmentMan->save();
+    e->segmentMan->diskWriter->closeFile();
     printDownloadAbortMessage();
   }
   e->cleanQueue();
@@ -743,6 +745,7 @@
     normalDownload(requests, reserved, op, dir, ufilename, downloadedFilename);

     for_each(requests.begin(), requests.end(), Deleter());
+    for_each(reserved.begin(), reserved.end(), Deleter());
     requests.clear();
   }
 #ifdef ENABLE_METALINK
@@ -787,6 +790,7 @@
                                  downloadedFilename);

     for_each(requests.begin(), requests.end(), Deleter());
+    for_each(reserved.begin(), reserved.end(), Deleter());
     requests.clear();

     if(success) {
diff -ur aria2-0.6.0/src/PeerInteraction.cc aria2-0.6.0+1/src/PeerInteraction.cc
--- aria2-0.6.0/src/PeerInteraction.cc  2006-06-22 18:26:18.000000000 +0300
+++ aria2-0.6.0+1/src/PeerInteraction.cc        2006-07-06 21:02:38.000000000 +0300
@@ -310,7 +310,7 @@
   }
   if(handshakeMessage->isFastExtensionSupported()) {
     peer->setFastExtensionEnabled(true);
-    logger->info("CUID#%d - Fast extension enabled.");
+    logger->info("CUID#%d - Fast extension enabled.", cuid);
   }
   return handshakeMessage;
 }
diff -ur aria2-0.6.0/src/TorrentMan.cc aria2-0.6.0+1/src/TorrentMan.cc
--- aria2-0.6.0/src/TorrentMan.cc       2006-06-24 20:26:07.000000000 +0300
+++ aria2-0.6.0+1/src/TorrentMan.cc     2006-07-06 21:02:38.000000000 +0300
@@ -130,6 +130,9 @@
 }

 Peer* TorrentMan::getPeer() const {
+  if(connections > MAX_PEER_UPDATE) {
+    return Peer::nullPeer;
+  }
   for(Peers::const_iterator itr = peers.begin(); itr != peers.end(); itr++) {
     Peer* p = *itr;
     if(p->cuid == 0 && p->error < MAX_PEER_ERROR) {
Back to top
View user's profile Send private message
Azik
Tux's lil' helper
Tux's lil' helper


Joined: 03 Apr 2005
Posts: 149
Location: Russia, Ufa

PostPosted: Fri Jul 07, 2006 2:40 pm    Post subject: Reply with quote

А почему бы сразу не в bugzill'у? Ebuild работает? Если автор не против, пропихну туда, там как раз новая aria2 (в багзилле 0.5.0) рассматривается: https://bugs.gentoo.org/show_bug.cgi?id=134540
_________________
From Siberia with Love!
Back to top
View user's profile Send private message
jodaka
Tux's lil' helper
Tux's lil' helper


Joined: 16 May 2004
Posts: 129
Location: Russia, Togliatty

PostPosted: Sat Jul 08, 2006 3:36 am    Post subject: Reply with quote

собственно уже пару дней гоняю его тестов ради на одной машинке. Качает. Шустро. Но нужного мне изначально эффекта (закачки разных сегментов с разных зеркал) штатными средствами, насколько я могу судить, не достичь.
Посему видимо нужно написать какой-нибудь враппер, который сначала у emerge спросит список зеркал, а потом первые несколько зеркал скормит aria2c. В общем-то -- плевое дело. Если сегодня на работе будет свободное время - напишу и затестирую :)

...я её когда просто из исходников собрал - сам бинарник 7.5 Мб вышел. Видимо по умолчанию он с дебагом собирается ? :?
Back to top
View user's profile Send private message
Azik
Tux's lil' helper
Tux's lil' helper


Joined: 03 Apr 2005
Posts: 149
Location: Russia, Ufa

PostPosted: Sat Jul 08, 2006 3:03 pm    Post subject: Reply with quote

А это ебилдом приложенным попробуй собарть, сделаешь два дела сразу :). Нужно протестировать и сценарий сборки.
_________________
From Siberia with Love!
Back to top
View user's profile Send private message
Azik
Tux's lil' helper
Tux's lil' helper


Joined: 03 Apr 2005
Posts: 149
Location: Russia, Ufa

PostPosted: Sat Jul 08, 2006 6:37 pm    Post subject: Reply with quote

Тээкс, оттестил наконец сам, вот готовый ebuild от меня - https://bugs.gentoo.org/attachment.cgi?id=91225
Сам баг: https://bugs.gentoo.org/show_bug.cgi?id=134540
Жду откликов.
_________________
From Siberia with Love!
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Russian All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum