انجمن‌های فارسی اوبونتو

لطفاً به انجمن‌ها وارد شده و یا جهت ورود ثبت‌نام نمائید

لطفاً جهت ورود نام کاربری و رمز عبورتان را وارد نمائید

نویسنده موضوع: Repository Cache Server  (دفعات بازدید: 2746 بار)

0 کاربر و 1 مهمان درحال مشاهده موضوع.

آفلاین Behnam Golds

  • High Hero Member
  • *
  • ارسال: 1368
  • جنسیت : پسر
Repository Cache Server
« : 18 امرداد 1387، 07:55 ق‌ظ »
امروز   داشتم   با  شبکه   کوچیک   بلوتوثیم  که   تازه  راه اندازی   کردم  و  توی  ا این
پست   توضیح  دادم  بازی  میکردم  ،  همونطور که  توی اون  پست توضیح دادم   اینترنت  رو  هم  از  سیستم  اول  share    کردم   ...   بعد  متوجه   شدم  که  نزدیک   40   50    مگابایت  آپدیت   دارم  ...  اومدم  دکمه   آپدیت  رو  بزنم  که  به  فکر  فرو  رفتم  ... ... ...   با  خودم  گفتم    من  اون  بسته ها رو  چطوری  روی  سیستم  بعدی  هم  نصب  کنم  ؟؟؟    باید  بسته ها رو  دستی  کپی  کنم و  دونه دونه  نصب  کنم ؟    دایرکتوری  رو  share    کنم  و   مخزن   بسازم؟   بیخیال  بشم  و  دوباره  دانلود  کنم  ؟   مخزن  remote    بسازم ؟         در  هر  صورت  هر  کاری   بخوام   بکنم   دفعه  بعد  هم  کلی باید  دردسر   داشته  باشم  و کار هارو  دوباره  انجام  بدم  ... 

توی   این  حین  و   بین  به   فکر راه اندازی  یه  cache server   افتادم   که   خیلی  ساده   باشه   و   با  یک  بار   تنظیم  کارهارو  خودش   انجام  بده ...
توی  گوگل  گشتم  و  بالاخره  یه  cache  server    کوچولو  مخصوص  مخازن  پیدا  کردم  ،  شاید   اسمش رو  شنیده  باشید     apt-cacher    ...

از   فواید   cache  server   هم  که  دیگه  خودتون  خبر  دارین ...  روی سیستم های  دیگه  سرعت   به  روز  رسانی  فوق العاده  بالاست   چون  دیگه  دوباره  دانلود  نمیکنه  و  حتی   به  روز رسانی   لیست  بسته های  موجود  هم   با  سرعت  بالا  انجام  میشه  چون  اونها رو هم  نگهداری  می کنه ...  فعلا  در همین  حد متوجه  شدم .   خوب    توی  این  پست  راهنمای   نصب  و  راه اندازی  و  یکی  دو تا   نکته   کوچیک  و کاربردی  رو  می نویسم  برای  کسایی که   همچین  مشکلی  دارن.

بسته ای  که  باید  نصب   کنیم   خیلی   کم  حجمه  و   توی  مخازن  هم  هست  ،  این  رو  روی  سرور  نصب  کنید :

sudo apt-get install apt-cacher

بعد  از  نصب   اول  باید  یک  سری  تنظیمات  کوچیک  رو    روی  سرور  انجام  انجام  بدیم   :

sudo gedit /etc/default/apt-cacher
خط  زیر  رو  پیدا  کنید  :

AUTOSTART=0
و  صفر  رو  به  یک  تغییر  بدید .

با   فرض  اینکه  آی پی   کلاینت   192.168.0.6    باشه     :

sudo gedit /etc/apt-cacher/apt-cacher.conf
و  خط  زیر  رو  :
allowed_hosts=127.0.0.1به
allowed_hosts=Server-ip , 192.168.0.5تغییر  بدید.این  Server-ip  که  نوشتم  آدرس  آی پی خارجی  سرورمون  هست ،  برای  من  این آدرس  10.0.0.6  هست  که با  اون به اینترنت  وصل میشم و  آدرسی  که  با اون با شبکه  داخلی ارتباط دارم  192.168.0.5   ...  من باید از 10.0.0.6   استفاده کنم.   این  کار برای اینه که  server هم  بتونه  از cache  استفاده  کنه  ،  چون  ممکنه  یک کلاینت قبلا  بسته ای  رو  درخواست  کرده باشه و الان در  cache  موجود باشه .(استفاده از آدرس  loopback  مجاز نیست چون در  فیلد "ارسال کننده" packet    ارسال شده برای درخواست  بسته ، آدرس ip خارجی قرار می گیره   ....حداقل  روی  سیستم   من  جواب  نداد)

بعد :
sudo /etc/init.d/apt-cacher restart

خوب   اینجا  اول  یه  چیز  کوچیک  رو  توضیح  بدم  .   این  سرویسی  که  نصب  کردیم  به   طور پیش فرض  به  پورت  3124      گوش  میده  ،   هر درخواستی   از  سوی  برنامه های   apt-get  ، aptitude ، synaptic     و هر برنامه  دیگه ای  که  از  مخازن  استفاده   میکنه   ،    توسط  این  سرویس   بررسی  میشه   و  اول  داخل   cache   رو  نگاه  میکنه    ،   اگر   بسته   درخواست  شده     با   همون  ورژن  درخواستی  موجود   بود    همون  رو  به  کلاینت   می فرسته  ،    در  غیر  اینصورت  شروع  به   دانلود  بسته  از  مخان  میکنه   و  به  طور    همزمان   هم  به   کلاینت  می فرسته و  هم   توی  cache   ذخیره  میکنه  ...  در واقع cache    به  فرم   یک  مخزن    روی   دیسک  ذخیره  میشه ...  نه  به  فرمی  که  در   دایرکتوری 
  var/cache/apt/archives/    میبینیم  .

خوب  میریم  سراغ  کلاینت.  ما  باید روی  کلاینت    تنظیماتی   انجام  بدیم  تا  وقتی  خواست برنامه ای رو از مخازن  بگیره apt-cacher  متوجه  بشه  و  اقدام کنه.  برای این  کار  دوتا  راه  وجود داره  که  هر کردوم  مزایا و  معایبی دارن...

راه  اول  :تغییر  مخازن   ،  با  یک  مثال مسئله رو  توضیح می دم :

فرض  کنیم  لیست  مخازن من روی  کلاینت  اینطوری باشه  :

deb http://repository.debuntu.org/ hardy multiverse
deb-src http://repository.debuntu.org/ hardy multiverse

من  تغییرات  رو روش  انجام  میدم  و ذخیرش  می کنم ،   نتیجه  اینطوری  میشه  :

deb http://192.168.0.5:3142/repository.debuntu.org/ hardy multiverse
deb-src http://192.168.0.5:3142/repository.debuntu.org/ hardy multiverse

فکر کنم  واضح  باشه ،  192.168.0.5  آدرس   ip   سرور  در  شبکه  داخلیه   و   3142   هم  شماره پورتیه  که    apt-cacher   به   اون  گوش میده  ،  برای همه ی   مخازن  باید  همین  کار رو بکنیم .   اگر   بسته ای   در cache موجود نباشه   apt-cacher   از  همون  لینک    که  بعد  از  شماره  پورت   اومده  استفاده میکنه...

بعد  از  این   کار باید  لیست   مخازن رو به  روز  رسانی  بکنیم  :

sudo apt-get update
روش   دوم :   ست  کردن  P-*-r-*-o-*-x-*-y       (عجب   حکایتیه!!!!)        از این  به  بعد    به  جای این  کلمه  زشت  میگم    کدو ،  اینم  معلومه  چیکار  میکنه  ،  شماره  ip   داخلی   سرور   و  پورت   مربوط  به  apt-cacher     رو   به  جای  کدووووو!!!     به   خورد  برنامه های  مدیریت بسته ها  میده .

اینطوری    :     
sudo gedit  /etc/apt/apt.conf.d/70debconfو اینو  توش مینویسیم :

Acquire::http::Proxy "http://192.168.0.5:3142";192.168.0.5:3142   هم  که  توضیح  دادم  ip    داخلی   سرور ...

و  سمت  سرور   :

Acquire::http::Proxy "http://127.0.0.1:3142";
و بعد   :
sudo apt-get update


خوب   حالا   مقایسه  این  دو روش  :

در  روش  اول  تغییر  دادن    sources.list     سخته   و   اگر  روزی   نخواستیم   از  cache  استفاده  کنیم  در  صورت  نداشتن  نسخه  پشتیبان  باید دستی  به حالت  اول برگردونیم.

در  روش  دوم       تغییرات  زیادی  اعمال  نمیشه   و  برگشتن  به  حالت  اول  هم  سادست...


در  روش  دوم   از  مخازن    FTP   نمیشه   استفاده  کرد ...  و   ظاهرا   فعلا  قصد   طراحی  FTP   کدو  رو  هم  ندارن...  یه  بنده  خدایی  می گفت  از   همون  http   برای   مخازن   ftp    استفاه  کن  ،  که  من  این  کارو   نکردم   هرکسی  خواست امتحان  کنه .... ضمنا   من  روی  سیستمم    از  مخازن  ftp    استفاده  نمیکنم  (البته   تا  به  حال   ، شاید  بعدها...)    من  روش   اول    رو  ترجیح  میدم...



خب    یه  نکته  :   چطور    وقتی    apt-cacher  رو  نصب  کردیم     بسته هایی   که  الان   توی  دایرکتوری  var/cache/apt/archives/    هستن  رو   به   cache  اضافه  کنیم  ؟ 

خیلی  راحت   :

sudo /usr/share/apt-cacher/apt-cacher-import.pl   /var/cache/apt/archives
این  روش  رو   میشه  روی  یک  سیستم   هم   اجرا  کرد  ،  مثلا   یه  بنده  خدایی   دوباره  اوبونتو  نصب  میکنه و  میخواد  از  بسته هایی   که  قبلا  دانلود  کرده  استفاده  کنه ... 

تموم شد...






« آخرین ویرایش: 18 امرداد 1387، 06:34 ب‌ظ توسط Behnam Golds »

آفلاین محمدرضا بوذری

  • گروه راهبران
  • *
  • ارسال: 2643
  • جنسیت : پسر
    • فروشگاه اینترنتی شهر کودک
پاسخ به: Repository Cache Server
« پاسخ #1 : 18 امرداد 1387، 03:12 ب‌ظ »
 =D>
حلقه ایرانیان اوبونتویی در فیسبوک [facebook.com/ubuntu.ir]

آفلاین Behnam Golds

  • High Hero Member
  • *
  • ارسال: 1368
  • جنسیت : پسر
پاسخ به: Repository Cache Server
« پاسخ #2 : 18 امرداد 1387، 06:37 ب‌ظ »
 :biggrin:

آفلاین arinaweb

  • Newbie
  • *
  • ارسال: 14
پاسخ به: Repository Cache Server
« پاسخ #3 : 18 امرداد 1387، 07:26 ب‌ظ »
واقعا ممنون بهنام جون ، رو همون بلوتوث امتحانش کردم \\:D/

آفلاین Behnam Golds

  • High Hero Member
  • *
  • ارسال: 1368
  • جنسیت : پسر
پاسخ به: Repository Cache Server
« پاسخ #4 : 18 امرداد 1387، 07:31 ب‌ظ »
واقعا ممنون بهنام جون ، رو همون بلوتوث امتحانش کردم \\:D/

خواهش  می کنم   arinaweb     جان ،   من  هم  روی  همون  بلوتوث  دارم  اجراش  می کنم  خیلی  حال میده  \\:D/