منبع اصلی نوشتار زیر در این لینک قرار دارد

آریا۲ و اپت: سرعتی دوچندان

یکی از مشکلات کاربران دبیان-بیس‌ها، سرعت apt در امر طاقت‌فرسای دانلوده که باعث می‌شه خیلی‌ها سراغ مواردی مثل apt-fast برن. ما با ترکیب آریا۲ و اپت، یه دانلود کننده‌ی توپ می‌سازیم.

نکته مهم: هر دستوری که اولش علامت # رو می‌بینید به دسترسی روت نیاز داره و هر دستوری که اولش علامت $ رو داره،‌ یعنی هر کاربری توانایی اجراش رو داره و دسترسی روت لازم نیست.

۱. استخراج لینک‌ها

مسلماً بسته‌های دبیان چیزی جز فایل نیستن و apt هم این «فایل»ها رو دانلود می‌کنه. خب وقتی خودش می‌تونه دانلود کنه،‌ چرا ما نتونیم؟ خوش‌بختانه برای همچین‌کاری یه سوئیچ خوب وجود داره:

root@debian:~# apt-get -y --print-uris { install <PACKAGE> | upgrade | ... }

این سوئیچ به apt می‌گه که فقط لینک رو بنویس و بی‌خیال دانلود شو. سوئیچ y هم می‌گه که خودت تائید کن. مثلا من guake رو امتحان می‌کنم:

root@debian:~# apt-get -y --print-uris install guake 
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
  python-glade2 python-vte
Suggested packages:
  python-gtk2-doc
The following NEW packages will be installed:
  guake python-glade2 python-vte
0 upgraded, 3 newly installed, 0 to remove and 0 not upgraded.
Need to get 201 kB of archives.
After this operation, 1,381 kB of additional disk space will be used.
'http://ir.archive.ubuntu.com/ubuntu/pool/main/v/vte/python-vte_0.28.2-5ubuntu1_amd64.deb' python-vte_1%3a0.28.2-5ubuntu1_amd64.deb 21726 MD5Sum:a0b9e19f09fa001ca3e75534a5298c51
'http://ir.archive.ubuntu.com/ubuntu/pool/main/p/pygtk/python-glade2_2.24.0-3ubuntu3_amd64.deb' python-glade2_2.24.0-3ubuntu3_amd64.deb 8744 MD5Sum:1aef0e4a843eac23ffc619bc02382f03
'http://ir.archive.ubuntu.com/ubuntu/pool/universe/g/guake/guake_0.4.4-1ubuntu1_amd64.deb' guake_0.4.4-1ubuntu1_amd64.deb 171024 MD5Sum:a24f28469f7a83debc4aed2ec6ea1515

اطلاعاتی که ما لازم داریم سه خط آخر هستن که وجه اشتراکشون //:http ابتداشونه. پس با grep فیلترشون می‌کنیم:

root@debian:~# apt-get --print-uris -y install guake | grep 'http://'
'http://ir.archive.ubuntu.com/ubuntu/pool/main/v/vte/python-vte_0.28.2-5ubuntu1_amd64.deb' python-vte_1%3a0.28.2-5ubuntu1_amd64.deb 21726 MD5Sum:a0b9e19f09fa001ca3e75534a5298c51
'http://ir.archive.ubuntu.com/ubuntu/pool/main/p/pygtk/python-glade2_2.24.0-3ubuntu3_amd64.deb' python-glade2_2.24.0-3ubuntu3_amd64.deb 8744 MD5Sum:1aef0e4a843eac23ffc619bc02382f03
'http://ir.archive.ubuntu.com/ubuntu/pool/universe/g/guake/guake_0.4.4-1ubuntu1_amd64.deb' guake_0.4.4-1ubuntu1_amd64.deb 171024 MD5Sum:a24f28469f7a83debc4aed2ec6ea1515

ولی ما فقط اون قسمتی که لینک فایل توش هست رو نیاز داریم؛ پس اون‌رو هم با cut فیلتر می‌کنیم:

root@debian:~# apt-get --print-uris -y install guake | grep 'http://' | cut -d' -f2
http://ir.archive.ubuntu.com/ubuntu/pool/main/v/vte/python-vte_0.28.2-5ubuntu1_amd64.deb
http://ir.archive.ubuntu.com/ubuntu/pool/main/p/pygtk/python-glade2_2.24.0-3ubuntu3_amd64.deb
http://ir.archive.ubuntu.com/ubuntu/pool/universe/g/guake/guake_0.4.4-1ubuntu1_amd64.deb

این‌جا cut متن رو بر اساس کاراکتر ‍' تقسیم می‌کنه. لینکی که ما لازم داریم میشه ستون دوم.
حالا لینک ها رو داریم. می‌ریزیمشون توی یه فایل به اسم Links.txt:

root@debian:~# apt-get --print-uris -y install guake | grep 'http://' | cut -d' -f2 > Links.txt

۲. دانلود بسته‌ها

برای این کار از aria2 استفاده می‌کنیم.

root@debian:~# aria2c -d /var/cache/apt/archives/ -i Links.txt -s 16 -x 16 -c

سوئیچ d مسیری که فایل‌های دانلود شده در اون ریخته می‌شن رو مشخص می‌کنه. ‍i هم مسیر لینک‌ها رو. بقیه‌ی سوئیچ‌ها هم که رایج هستن و مربوط تعداد اتصال‌ها و سرعت دانلود می‌شن.

۳. نصب بسته ها

همیشه اپت بسته‌ها رو توی مسیر /var/cache/apt/archives/ می‌ریزه. خب، ما که خودمون این کار رو با aria2 کردیم! پس دیگه apt نیازی به دانلود نداره.

root@debian:~# apt-get -y install guake
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
  python-glade2 python-vte
Suggested packages:
  python-gtk2-doc
The following NEW packages will be installed:
  guake python-glade2 python-vte
0 upgraded, 3 newly installed, 0 to remove and 0 not upgraded.
Need to get 0 B/201 kB of archives.
After this operation, 1,381 kB of additional disk space will be used.
Selecting previously unselected package python-vte.
(Reading database ... 240702 files and directories currently installed.)
Preparing to unpack .../python-vte_0.28.2-5ubuntu1_amd64.deb ...
Unpacking python-vte (1:0.28.2-5ubuntu1) ...
Selecting previously unselected package python-glade2.
Preparing to unpack .../python-glade2_2.24.0-3ubuntu3_amd64.deb ...
Unpacking python-glade2 (2.24.0-3ubuntu3) ...
Selecting previously unselected package guake.
Preparing to unpack .../guake_0.4.4-1ubuntu1_amd64.deb ...
Unpacking guake (0.4.4-1ubuntu1) ...
Processing triggers for gconf2 (3.2.6-0ubuntu2) ...
Processing triggers for man-db (2.6.7.1-1ubuntu1) ...
Processing triggers for gnome-menus (3.10.1-0ubuntu2) ...
Processing triggers for desktop-file-utils (0.22-1ubuntu1) ...
Processing triggers for bamfdaemon (0.5.1+14.04.20140409-0ubuntu1) ...
Rebuilding /usr/share/applications/bamf-2.index...
Processing triggers for mime-support (3.54ubuntu1.1) ...
Processing triggers for hicolor-icon-theme (0.13-1) ...
Setting up python-vte (1:0.28.2-5ubuntu1) ...
Setting up python-glade2 (2.24.0-3ubuntu3) ...
Setting up guake (0.4.4-1ubuntu1) ...

در ضمن اگر دیدین بسته‌های زیادی دانلود کردین و حجم زیادی رو اشغال، از شرشون خلاص بشین!

root@debian:~# apt-get clean

موفق باشین.