انجمن کاربران لینوکس ایران - تکنوتاکس سابق
apt-get و connection های متعدد - نسخه قابل چاپ

+- انجمن کاربران لینوکس ایران - تکنوتاکس سابق (https://forum.sito.ir)
+-- انجمن: پرسش‌ها و پاسخ‌ها (https://forum.sito.ir/forumdisplay.php?fid=3)
+--- انجمن: انجمن عمومی (https://forum.sito.ir/forumdisplay.php?fid=6)
+--- موضوع: apt-get و connection های متعدد (/showthread.php?tid=17739)



apt-get و connection های متعدد - m_pahlevanzadeh - 2012-02-24

با سلام و درورد،
بر مبنای سرعت اینترنت و عدم تکثر CONNECTION زیاد در برنامه apt-get می‌توان این برنامه را به یکی از دو Download manager های معروف که می‌توانند تعدداد connection ها را بالا ببرند pipe کرد و در نیجه سرعت بالا رود.
البته این کمی کار داره که براتون shell script اون رو گذاشتم:
در ابتدا axel رو نصب کنید:
کد :
apt-get install axel
کد :
#!/bin/sh
[ "`whoami`" = root ] || exec sudo "$0" "$@"

# Test if the axel is installed
if [ ! -x /usr/bin/axel ]
then echo "axel is not installed, perform this?(y/n)"
    read ops
    case $ops in
         y) if apt-get install axel -y --force-yes
               then echo "axel installed"
            else echo "unable to install the axel. you are using sudo?" ; exit
            fi ;;
         n) echo "not possible usage apt-fast" ; exit ;;
    esac
fi

# If the user entered arguments contain upgrade, install, or dist-upgrade
if echo "$@" | grep -q "upgrade\|install\|dist-upgrade"; then
  echo "Working...";

  # Go into the directory apt-get normally puts downloaded packages
  cd /var/cache/apt/archives/;

  # Have apt-get print the information, including the URI's to the packages
  # Strip out the URI's, and download the packages with Axel for speediness
  # I found this regex elsewhere, showing how to manually strip package URI's you may need...thanks to whoever wrote it
  apt-get -y --print-uris $@ | egrep -o -e "(ht|f)tp://[^\']+" > apt-fast.list && cat apt-fast.list | xargs -l1 axel -a

  # Perform the user's requested action via apt-get
  apt-get $@;

  echo -e "\nDone! Verify that all packages were installed successfully. If errors are found, run apt-get clean as root and try again using apt-get directly.\n";

else
   apt-get $@;
fi
فطعه کد بالا رو در فایلی به نام apt-fast ذخیره کنید و permission اجرایی اون رو ست کنید:
کد :
chmod +x ./apt-fast
این فایل رو در /usr/sbin/ کپی کنید و تمام پارامتر‌های دریافتی اون همانند apt-get می‌شن.
راه حل دوم:
در ابتدا بسته aria2 رو نصب کنید:
کد :
apt-get install aria2
سپس قطعه کد زیر را در فایلی ذخیره کنید:
کد :
#!/bin/sh
if echo "$@" | grep -q "upgrade\|install\|dist-upgrade"; then
  echo "Working...";

  # Go into the directory apt-get normally puts downloaded packages
  cd /var/cache/apt/archives/;

  # Have apt-get print the information, including the URI's to the packages
  # Strip out the URI's, and download the packages with Axel for speediness
  # I found this regex elsewhere, showing how to manually strip package URI's you may need...thanks to whoever wrote it
  apt-get -y --print-uris $@ | egrep -o -e "(ht|f)tp://[^\']+" > /tmp/apt-fast.list;
  aria2c -c -j5 --input-file=/tmp/apt-fast.list --connect-timeout=600 --timeout=600 -m0;

  # Perform the user's requested action via apt-get
  apt-get $@ -y;

  echo -e "\nDone! Verify that all packages were installed successfully. If errors are found, run apt-get clean as root and try again using apt-get directly.\n";

else
   apt-get $@;
fi
همانند بالا برای اون permission اجرایی اون رو ست کنید و در مسیر خاصی قرار بدید. تمام پارامتر‌های ورودی اون همانند apt-get می‌باشد.


Re: apt-get و connection های متعدد - farid51 - 2012-03-03

ممنون!


Re: apt-get و connection های متعدد - AmiNimA - 2012-03-10

احسنت. خیلی ممنون. با اجازه در وبلاگم استفاده میکنم.


Re: apt-get و connection های متعدد - TimmyTurner - 2012-08-14

این کدی که گذاشتید مربوط به یک اسکریپت بوده به اسم apt-fast که الان کاملا کد ها تغییر کرده اند و به روز شده اند.
با سپاس


Re: apt-get و connection های متعدد - m_pahlevanzadeh - 2012-08-15

بله مربوط به همون هستش حتی apt-aria2c هم وجود داره اسمش یادم نیماد ولی به جای axel با aria2c کار می‌کنه. ولی الان داره رو سیستمم کار می‌کنه. نمی‌دونم ممشکل از کجاست؟ رو سسیستمون مشکلی دارید؟


Re: apt-get و connection های متعدد - G0d's-servant - 2012-08-15

m_pahlevanzadeh نویسنده :بله مربوط به همون هستش حتی apt-aria2c هم وجود داره اسمش یادم نیماد ولی به جای axel با aria2c کار می‌کنه. ولی الان داره رو سیستمم کار می‌کنه. نمی‌دونم ممشکل از کجاست؟ رو سسیستمون مشکلی دارید؟
اتفاقا من با اسکریپت هایی که تو نت بود مشکل داشتم ولی اسکریپ آقای پهلوان زاده خیلی خوب کار میکنه.


Re: apt-get و connection های متعدد - TimmyTurner - 2012-08-16

نه اصلا! چه مشکلی؟ من فقط گفتم این ورژن قدیمی هستش و نسخه ی جدید تری از اون اومده که داخل خودش میشه راحت با برداشتن کامنت ها دانلود منیجر مورد نظر رو انتخاب کرد،


Re: apt-get و connection های متعدد - G0d's-servant - 2012-08-16

TimmyTurner نویسنده :نه اصلا! چه مشکلی؟ من فقط گفتم این ورژن قدیمی هستش و نسخه ی جدید تری از اون اومده که داخل خودش میشه راحت با برداشتن کامنت ها دانلود منیجر مورد نظر رو انتخاب کرد،
بی زحمت لینک اسکریپت نسخه ی جدید رو میذاری؟ اونایی که من تو نت پیدا کردم نمی دونم مشکل از چی بود ولی اغلب اوقات کار نمی کرند.


Re: apt-get و connection های متعدد - m_pahlevanzadeh - 2012-08-16

دوستان،
http://sourceforge.net/apps/phpbb/aria2/viewtopic.php?f=1&t=52 هم جالبه اما چند تا نکته:
اول اینکه:
اگر حجم فایلبتون بزرگ هستش از اسکریپتهای مذکور استفاده کنید.
دوم اینکه :
درصد occurcp شدن فایل‌های گرفته شده با ARIA2C زیاده


Re: apt-get و connection های متعدد - TimmyTurner - 2012-08-16

<!-- m --><a class="postlink" href="https://github.com/ilikenwf/apt-fast">https://github.com/ilikenwf/apt-fast</a><!-- m -->


RE: apt-get و connection های متعدد - saraamalek70 - 2017-04-06

مرسی از لینک نسخه جدید.


RE: apt-get و connection های متعدد - hamedemami - 2017-06-17

نمونه برنامه ساخته شده اندرویدی در وبسایت شیشه آلات آزمایشگاهی,
شیشه آلات آزمایشگاهی http://www.avizhe.org/