مخزن بسته محلی دبیان - ایجاد یک مخزن محلی (apt-mirror). تهیه و نصب apt-mirror

من اخیراً با یک ابزار مفید روبرو شدم reprepro. این به ایجاد یک مخزن محلی از توزیع های مبتنی بر deb کمک می کند. بعد به من رسید. من مدت زیادی است که در حال جمع آوری بسته هایی هستم که در بایگانی های رسمی نیستند، بنابراین هر بار که باید آنها را مرور کنم و آنها را نصب کنم، تبدیل به یک حرامزاده شد و تصمیم گرفتم بخشی را با مخازن چنین بسته هایی در آنجا ایجاد کنم. بنابراین، هنگام تغییر سیستم، فقط آن را سوار کنید و در صورت نیاز از آن استفاده کنید. این به نظر من مفیدتر از ذخیره کش از apt-get است.


به طور خلاصه در مورد reprepro
شما باید یک دایرکتوری برای مخزن ایجاد کنید. انتخاب من بر سر آن است / مخزنبنابراین، برای کار کردن به حقوق ابرکاربر نیاز دارد. و در اصل، اگر فقط مدیر حقوق نوشتن در این فهرست را داشته باشد، احتمال زیادی وجود دارد که هیچ کس خارج از خانه نتواند به "آرشیو" شما آسیب برساند.
# mkdir / مخزن
بیا بریم اونجا:
یک پوشه ایجاد کنید /repository/conf/برای فایل های پیکربندی
# mkdir /repository/conf

ما یک فایل ایجاد می کنیم و بخش های لازم را اضافه می کنیم (شما می توانید در خروجی فرمان بیشتر در مورد آن بخوانید مرد repreproدر بخش CONFIG FILES)
# mousepad /repository/conf/distributions
نگارنده در متن اصلی توضیحات، چنین نمونه ای از این فایل را آورده است


منبع: دبیان
مجموعه: تست
AlsoAcceptFor: آزمایشی ناپایدار
نام رمز: لنی
نسخه: 5.0
معماری: منبع i386
اجزاء: مشارکت اصلی غیر رایگان
UDebComponents: مشارکت اصلی غیر رایگان
توضیحات: مخزن محلی من
جایی که:
مبدا - نام توزیع = دبیان
سوئیت - شعبه = تست
AlsoAcceptFor - به شما امکان می‌دهد بسته‌های شاخه‌های دیگر را به مخزن آزمایشی فشار دهید = آزمایشی ناپایدار، اگر گزینه مشخص نشده باشد، وقتی می‌خواهید بسته‌هایی را از شاخه‌های ناپایدار/آزمایشی اضافه کنید به این شکل سوگند می‌خورد.
کد نام - کد شعبه = لنی
نسخه - نسخه شعبه = 5.0
معماری - معماری، من یک پردازنده x86 دارم، بنابراین یک i386 دارم، همچنین گاهی اوقات منابع را در مخزن آپلود می کنم، بنابراین یک منبع وجود دارد
مؤلفه‌ها - بخش‌هایی از شاخه که می‌توانید بسته‌های deb را در آنجا قرار دهید، و همچنین منابع = مشارکت اصلی غیر رایگان (شما می‌توانید تعداد بیشتری را که دوست دارید ایجاد کنید)
UDebComponents - بخش‌هایی از شاخه که می‌توانید بسته‌های udeb را در آن قرار دهید (برخی هستند) = مشارکت اصلی غیر رایگان (بهتر است وقتی با خط بالا مطابقت داشته باشند)
توضیحات - شرح شفاهی کوتاه مخزن = به عنوان مثال، مخزن محلی من

اگر دایرکتوری مخزن جاری نیست، به اصطلاح بنویسید BASEDIRگزینه ها -ب BASEDIR(در مورد من BASEDIR=/repository).

پس از ایجاد فایل /repository/conf/distributionsمخزن را مقداردهی اولیه کنید
# صادرات مجدد
# reprepro ایجاد پیوندهای نمادین

می توانید مخزن را با بسته ها پر کنید. دستورات و گزینه های زیادی برای این کار وجود دارد که جزئیات بیشتری در مورد آنها در man reprepro یافت می شود
بیشترین استفاده شده

افزودن بسته deb به مخزن.
به طور کلی به نظر می رسد این است:
# reprepro -b BASEDIR -C SECTION includeeb BRANCH /path/to/file/filename.deb
همانطور که قبلا توضیح دادم، این نمونه ای از اضافه کردن یک بسته نه از دایرکتوری با مخزن، بلکه از یک دایرکتوری دلخواه است. اگر در دایرکتوری مخزن هستید، دستور یکسان است اما بدون آن -ب BASEDIR
به عنوان مثال، برای اضافه کردن یک بسته foo_1.0.debواقع در پوشه /home/user/debian، در بخش اصلی شاخه lenny دستور به این صورت خواهد بود
# reprepro -b /repository -C main includeeb lenny /home/user/debian/foo_1.0.deb

حذف بسته deb از مخزن
برای حذف یک بسته deb از شاخه مخزن مشخص شده، باید دستور زیر را صادر کنید
# reprepro حذف شاخه_نام بسته

به عنوان مثال، برای بسته در نظر گرفته شده است foo_1.0.debواقع در شعبه لنیاین دستور را بدهید:
# reprepro حذف lenny foo

برای استفاده از مخزن باید آن را به فایل اضافه کنید /etc/apt/sources.listبه صورت خط زیر (به طور کلی):
فایل deb:///path_to_repository_folder/ بخش های شاخه

که برای مثال ما به شکل زیر است:
deb file:///repository/ مشارکت اصلی لنی غیر رایگان

این اساسی است، که فکر می کنم در مورد من کافی است. اصل مقاله قرار دارد

چرا ممکن است به محلی نیاز داشته باشید؟ مخزنبرنامه ها؟ فرض کنید چندین ایستگاه کاری در دفتر خود بدون دسترسی به اینترنت دارید. اما آنها باید به نوعی نرم افزار را نصب و به روز کنند. در این حالت، یک مخزن محلی روی سرور (یا ماشین دیگری با دسترسی به اینترنت) ایجاد می شود که به طور دوره ای به روز می شود. و بقیه ایستگاه های کاری برنامه ها را از آنجا می گیرند. این همچنین می تواند در مورد اینترنت محدود یا همیشه در دسترس نباشد مفید باشد. مخزن را دانلود کنید - و در هر زمان می توانید هر برنامه موجود را نصب کنید. هیچ چیز پیچیده ای در ایجاد یک مخزن محلی وجود ندارد؛ اکنون همه چیز را با جزئیات شرح خواهم داد.

بسیار توصیه می شود که مخزن محلی را روی یک هارد دیسک جداگانه (حداقل یک پارتیشن) قرار دهید تا در صورت بروز حادثه، همه چیزهایی را که دانلود کرده اید از دست ندهید. مخزن توزیع دبیان 8برای معماری amd64وزن بیشتری دارد 40 گیگابایت. بر این اساس، اگر شما نیز نیاز دارید بسته های i386 (32 بیت)، سپس صدا دو برابر می شود. بنابراین، فرض کنید سیستم شما یک هارد دیسک 500 گیگابایتی جداگانه دارد که در /media/repo نصب شده است. این همان چیزی است که ما از آن اقدام خواهیم کرد. بیایید با Debian 8 Jessie شروع کنیم.

راه های مختلفی برای ایجاد یک مخزن محلی در Debian/Ubuntu وجود دارد. من از ساده ترین و آزمایش شده ترین ابزار استفاده خواهم کرد - apt-mirror. نصب:

sudo apt نصب apt-mirror apache2

یک دایرکتوری برای مخزن ایجاد کنید:

sudo mkdir /media/repo/debian

و فهرست خدمات:

sudo mkdir -p /media/repo/debian/(mirror,var,skel)

راه اندازی آن. فایل پیکربندی را باز کنید:

sudo nano /etc/apt/mirror.list



base_path /media/repo/debian را تنظیم کنید




# set var_path $base_path/var




# تنظیم پیش‌فرض


run_postmirror 0 را تنظیم کنید

# پارامترهای سرویس، نه
nthreads 20 را تنظیم کنید
set_tilde 0
#

# آینه با بسته های amd64 jessie (پایدار) + منابع
deb-amd64 http://mirror.yandex.ru/debian jessie مشارکت اصلی غیر رایگان

# آینه با به روز رسانی امنیتی amd64 jessie (پایدار) + منابع
deb-amd64 http://security.debian.org/jessie/updates مشارکت اصلی غیر رایگان


deb-amd64 http://mirror.yandex.ru/debian jessie main/debian-installer




skip-clean http://mirror.yandex.ru/debian/dists/jessie/main/installer-amd64/

# آینه با بسته های i386 jessie (پایدار) + منابع
deb-i386 http://mirror.yandex.ru/debian jessie مشارکت اصلی غیر رایگان
deb-src http://mirror.yandex.ru/debian jessie مشارکت اصلی غیر رایگان
# آینه با به روز رسانی امنیتی i386 jessie (پایدار) + منابع
deb-i386 http://security.debian.org/jessie/updates مشارکت اصلی غیر رایگان
deb-src http://security.debian.org/jessie/updates مشارکت اصلی غیر رایگان
# آینه مورد نیاز برای نصب شبکه (udebs)
deb-i386 http://mirror.yandex.ru/debian jessie main/debian-installer
# فایل هایی که در Release فهرست نشده اند را حذف کنید
تمیز http://mirror.yandex.ru/debian
http://security.debian.org را پاک کنید
# پاکسازی پوشه انتخاب شده را غیرفعال کنید
skip-clean http://mirror.yandex.ru/debian/dists/jessie/main/installer-i386/

صرفه جویی. بیایید دانلود مخزن را شروع کنیم:

sudo apt-mirror

پس از دانلود فایل های فهرست، Apt-Mirror به شما می گوید که چند بسته را باید دانلود کنید (حجم بسیار بسیار زیاد خواهد بود). تنها کاری که باید انجام دهید این است که صبر کنید. بقیه کارها را سیستم خودش انجام خواهد داد. برای همگام سازی و تمیز کردن خودکار آینه ها، باید یک خط به تنظیمات اضافه کنید cronو زمان مناسب را تعیین کنید. آینه های رسمی هر 6 ساعت به روز می شوند: 3:00، 9:00، 15:00، 21:00. به عنوان مثال مانند این:

crontab -e

05 01 * * * apt-mirror >> /var/log/apt-mirror.log
05 03 * * * /media/repo/debian/var/clean.sh >> /var/log/apt-mirror.log

برای عملکرد صحیح لازم است پیوندهای نمادین اضافه شود "پایدار","آزمایش کردن", "ناپایدار"بر جسی, کش آمدن, طرفبر این اساس (اگر آنها را دارید). مثال برای جسی:

ln -s /media/repo/debian/mirror/mirror.yandex.ru/debian/dists/jessie /media/repo/debian/mirror/mirror.yandex.ru/debian/dists/jessie/stable

ما یک وب سرور نصب کرده ایم آپاچیبه دلیل خوب ما به آن برای توزیع بسته‌ها از مخزن محلی خود در شبکه (محلی) نیاز داریم. ابتدا باید دسترسی به مخزن را پیکربندی کنید. برای انجام این کار، باید یک پیوند نمادین ایجاد کنید:

سی دی /media/repo/debian/
sudo ln -s /media/repo/debian/mirror/mirror.yandex.ru/debian debian

اکنون در دستگاه مشتری (که نیاز به دسترسی به مخزن محلی دارد)، آدرس مخزن را ارائه دهید. اگر رایانه دارای مخزن دارای نام شبکه باشد (به عنوان مثال سرور) سپس آن را نشان دهید. در غیر این صورت، آن را با آدرس نشان دهید آدرس آی پی:

sudo nano /etc/apt/sources.list

deb http://server/debian jessie main contrib غیر رایگان
deb-src http://server/debian jessie contrib اصلی غیر رایگان
deb http://server/debian jessie/updates مشارکت اصلی غیر رایگان

اگر بارگذاری بسته های 32 بیتی (i386) را در پیکربندی مشخص کرده اید، فراموش نکنید که این معماری را به سیستم اضافه کنید:

sudo dpkg --add-architecture i386

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

به روز رسانی sudo apt-get

سپس همه چیز طبق معمول است. برای اوبونتو، همه چیز یکسان است، به جز نام مخازن و اضافه شدن یک معماری 32 بیتی به یک سیستم 64 بیتی (لازم نیست). پیکربندی mirror.list برای اوبونتو 14.04:

############# پیکربندی ###################
# دایرکتوری پایه، جایی که یک آینه محلی از مخزن دبیان ایجاد خواهد شد
base_path /media/repo/ubuntu را تنظیم کنید

# مسیرهای فایل های آینه، فایل های موقت و گزارش اجرای apt-mirror
# تنظیم mirror_path $base_path/mirror
# set skel_path $base_path/skel
# set var_path $base_path/var
# مجموعه پاک اسکریپت $var_path/clean.sh

# معماری که آینه برای آن ساخته شده است. پیش فرض معماری است
# سیستمی که apt-mirror روی آن اجرا می شود (amd64،i386 یا موارد دیگر). نیازی به تغییر نیست
# زیرا در زیر به صراحت هر دو آینه و معماری را نشان خواهیم داد.
# تنظیم پیش‌فرض

# مسیر اسکریپت پس از پردازش به طور پیش فرض وجود ندارد، اما ما هنوز به آن نیاز نداریم.
# set postmirror_script $var_path/postmirror.sh

# اسکریپت پس از پردازش را اجرا نکنید
run_postmirror 0 را تنظیم کنید

# پارامترهای سرویس، نه
nthreads 20 را تنظیم کنید
set_tilde 0
#
############# پیکربندی پایانی ##############

deb-amd64 http://archive.ubuntu.com/ubuntu قابل اعتماد اصلی محدود شده است
deb-amd64 http://archive.ubuntu.com/ubuntu trusty-updates اصلی محدود شده است
deb-amd64 http://archive.ubuntu.com/ubuntu جهان قابل اعتماد
deb-amd64 http://archive.ubuntu.com/ubuntu trusty-updates universe
deb-amd64 http://archive.ubuntu.com/ubuntu multiverse trusty
deb-amd64 http://archive.ubuntu.com/ubuntu trusty-updates multiverse
deb-amd64 http://archive.ubuntu.com/ubuntu trusty-security main limited
deb-amd64 http://archive.ubuntu.com/ubuntu trusty-security universe
deb-amd64 http://archive.ubuntu.com/ubuntu multiverse trusty-security

deb-i386 http://archive.ubuntu.com/ubuntu قابل اعتماد اصلی محدود شده است
deb-i386 http://archive.ubuntu.com/ubuntu trusty-updates اصلی محدود شده است
deb-i386 http://archive.ubuntu.com/ubuntu جهان قابل اعتماد
deb-i386 http://archive.ubuntu.com/ubuntu trusty-updates universe
deb-i386 http://archive.ubuntu.com/ubuntu multiverse trusty
deb-i386 http://archive.ubuntu.com/ubuntu trusty-updates multiverse
deb-i386 http://archive.ubuntu.com/ubuntu trusty-security اصلی محدود شده
deb-i386 http://archive.ubuntu.com/ubuntu trusty-security universe
deb-i386 http://archive.ubuntu.com/ubuntu multiverse trusty-security

خوب، بر این اساس، باید پیوند نمادین را تغییر دهید:

ln -s /media/repo/ubuntu/mirror/archive.ubuntu.com/debian/dists/trusdy /media/repo/ubuntu/mirror/archive.ubuntu.com/ubuntu/dists/trusty/stable

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

همانطور که می دانید، اوبونتو ذخیره سازی متمرکز اطلاعات مربوط به همه برنامه های اصلی را در یک مکان برای جستجوی راحت تر و نصب بعدی پیاده سازی می کند. آن مکان مدیر بسته سیناپتیک است. (System -> Administration -> Synaptic Package Manager) برای نصب برنامه فقط باید آن را در لیست پیدا کرده و برای نصب علامت گذاری کنید، سپس برنامه به صورت خودکار از اینترنت دانلود و نصب می شود.

برنامه های اساسی که ممکن است هنگام کار در سیستم عامل اوبونتو مفید باشند، در مخزن به اصطلاح در سرور رسمی اوبونتو ذخیره می شوند. هر بار که برنامه ای را برای نصب در مدیریت بسته سیناپتیک بررسی می کنید، ابتدا دانلود می شود.

اما اگر اینترنت بسیار کند یا گرانی داشته باشید، یا شاید اصلاً به شبکه جهانی وب دسترسی نداشته باشید، یا فقط نمی خواهید هنگام کار در لینوکس اوبونتو به اتصال به اینترنت وابسته باشید، چه؟ البته می‌توانید تمام برنامه‌ها (پکیج‌ها) را یکی یکی دانلود کنید و سپس به صورت دستی نصب کنید، اما چه کسی می‌داند کدام برنامه در آینده برای شما مفید خواهد بود؟

راه حل این مشکل ایجاد یک مخزن محلی است، یعنی. یک کپی کامل یا جزئی از مخزن رسمی روی هارد دیسک شما. بنابراین، هنگامی که کل مخزن را دانلود کردید، دیگر به اینترنت وابسته نخواهید بود.

پس بیایید شروع کنیم.

1. برای ایجاد یک کپی (برش) از مخزن بر روی هارد دیسک خود، یک برنامه ویژه وجود دارد: debmirror. بر این اساس، ابتدا باید آن را از همان مدیر بسته Synaptic نصب کنید

یا با تایپ دستور در ترمینال:

sudo apt-get install debmirror

2. یک پوشه در فهرست اصلی ایجاد کنید که در آن یک تکه از مخزن (یا حتی چندین) ذخیره شود، به عنوان مثال، بگذارید آن را Repositories بنامیم.

بیایید به پوشه Repositories برویم:

و یک فایل اسکریپت در آن به نام archive.ubuntulinux.org.sh ایجاد کنید:

gedit archive.ubuntulinux.org.sh

موارد زیر را در این فایل قرار دهید:

#!/bin/bash -x
/usr/bin/debmirror --nosource -m --passive --host=archive.ubuntulinux.org \
--root=ubuntu --method=ftp --progress \
--dist=hardy, hardy-security, hardy-updates, hardy-backports \
--ignore-release-gpg --section=main,restricted,multiverse,universe \
--arch=i386 /full/path/to/folder/where/need/to/download/repository/

مسیر کامل شما باید چیزی شبیه به این باشد: /home/aidsoid/Repositories/ru.archive.ubuntu.com/

و آن را ذخیره کنید. پس از ذخیره، باید فایل را قابل راه اندازی کنید (chmod +x archive.ubuntulinux.org.sh).

مثال بالا مخزن اوبونتو 8.04 (Hardy Heron) را دانلود می کند، اگر هنوز از نسخه قدیمی اوبونتو 7.10 (Gutsy Gibbon) استفاده می کنید، پس باید این اسکریپت را کمی تغییر دهید، به ویژه، باید مقادیر را تغییر دهید. از پارامتر --dist از هاردی تا جسور. همچنین باید به پارامتر --arch که معماری رایانه شما را نشان می دهد توجه کنید؛ مقدار i386 نشان می دهد که بسته ها برای رایانه ای با معماری x86 دانلود می شوند. این پارامتر همچنین می تواند برای کامپیوترهای AMD 64 بیتی یا اینتل amd64 باشد.

4. خوب، این همه است، در واقع، اکنون می توانید اسکریپت را برای اجرا اجرا کنید. برای این کار، در کنسول، در حالی که در پوشه Repositories هستید، دستور زیر را تایپ کنید:

./archive.ubuntulinux.org.sh

فیلمنامه شروع به کار خواهد کرد. کل مخزن حدود 20 تا 30 گیگابایت اشغال می کند، بنابراین قبل از دانلود مطمئن شوید که فضای دیسک رایگان دارید. شما می توانید بدون دردسر اسکریپت را در هر زمان با فشار دادن کلیدهای ترکیبی Ctrl+C قطع کنید. هنگامی که اسکریپت را دوباره اجرا می کنید، به دانلود بسته های دانلود نشده ادامه می دهد. همچنین، اجرای مجدد اسکریپت، مخزن محلی شما را به روز می کند، یعنی. وجود نسخه های جدید برنامه ها بررسی شده و آنها نیز دانلود می شوند.

توجه: کاربران اوبونتو 7.10 یک دام کوچک دارند، کاربران اوبونتو 8.04 چیزی برای نگرانی ندارند. یک اشکال در debmirror وجود دارد که باعث می شود هنگام اجرای مجدد اسکریپت، پوشه pool از مخزن محلی حذف شود. قبل از اجرای اسکریپت باید اصلاح شود. شرح خطا در اینجا: https://bugs.launchpad.net/ubuntu/+source/debmirror/+bug/136634

خطا به راحتی قابل حل است:
$ sudo gedit /usr/bin/debmirror
جایگزین خط محلی $/="\n\n"; به محلی $/="\n"; و فایل را ذخیره کنید. اکنون به روز رسانی مخزن بدون حادثه انجام می شود.

5. پس از دانلود اسکریپت (ممکن است زمان زیادی طول بکشد)، می توانید با افزودن خط deb به منابع برنامه از آن استفاده کنید. (سیستم -> مدیریت -> منابع برنامه)

خط deb باید به پوشه مخزن اشاره کند و چیزی شبیه به این باشد:
deb file:///home/aidsoid/Repositories/ru.archive.ubuntu.com/ جهان چندجهانی محدود اصلی سخت

اگر مدیر سیستم هستید، باید به طور مکرر نرم افزار جدید، به روز رسانی های امنیتی و سایر وصله ها را روی سیستم خود نصب کنید. اگر فقط یک کامپیوتر وجود داشت، مشکلی ایجاد نمی کرد، اما معمولا چندین کامپیوتر در شبکه وجود دارد و همه آنها نیاز به به روز رسانی دارند. این ممکن است توان عملیاتی شبکه را کاهش دهد. در هر سیستم، برنامه ها مستقیماً از مخازن اوبونتو دانلود و نصب می شوند.

اما یک راه برای خروج وجود دارد: می توانید همه برنامه ها را در یک سرور در یک شبکه محلی ذخیره کنید و سپس در صورت نیاز آنها را در رایانه های دیگر در این شبکه توزیع کنید. مخزن محلی اوبونتو یک راه واقعاً سریع و کارآمد برای استقرار برنامه‌ها است زیرا همه برنامه‌های مورد نیاز فوراً با سرعت بالا از سرور محلی بازیابی می‌شوند. بنابراین، می توانید ترافیک اینترنت را کاهش دهید و در نهایت هزینه اینترنت سالانه خود را کاهش دهید.

در این آموزش، نحوه راه اندازی یک مخزن محلی اوبونتو 16.04 را به دو روش به شما خواهم گفت.

در این روش تمام بسته ها را از مخزن عمومی به هارد سرور اوبونتو دانلود می کنیم. ابتدا باید وب سرور آپاچی را نصب کنید. برای توزیع بسته ها از طریق شبکه محلی لازم است:

sudo apt-get نصب apache2

اکنون apt-mirror را نصب کنید:

sudo apt-get install apt-mirror

یک دایرکتوری ایجاد کنید که در آن همه بسته ها دانلود شوند:

sudo mkdir /myrepo

حالا فایل /etc/apt/mirror.list را باز کنید و خط زیر را اضافه کنید:

sudo vi /etc/apt/mirror.list

############# پیکربندی ###################
#
# مسیر_پایه /var/spool/apt-mirror را تنظیم کنید

base_path /myrepo را تنظیم کنید

در اینجا /myrepo آدرس پوشه تازه ایجاد شده است. همچنین در این فایل پیکربندی می توانید مخازنی را که می خواهید استفاده کنید مشخص کنید، ما از موارد استاندارد استفاده خواهیم کرد، اما می توانید PPA را اضافه کنید. اگر می خواهید از هر دو معماری x64 و x32 استفاده کنید، مخازن آنها باید به طور جداگانه در فایل مشخص شوند.

به عنوان مثال، برای x32 خط با deb-i386 و برای x64: deb-amd64 شروع می شود. پس از اتمام تنظیمات، دانلود بسته ها را با دستور زیر شروع کنید:

ترمینال چیزی شبیه به:

دانلود 162 فایل فهرست با استفاده از 20 موضوع ...
زمان شروع: چهارشنبه 5 اوت 16:09:16 2015
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...

در حال حاضر، تمام بسته‌های مخزن عمومی اوبونتو دانلود و در یک پوشه محلی ذخیره می‌شوند. در مورد ما، در myrepo/. بسته به سرعت اینترنت شما، ممکن است چندین ساعت طول بکشد. می‌توانید دانلود را در هر زمانی لغو کنید، وقتی آن را از سر گرفتید، از همان جایی که متوقف کرده‌اید ادامه می‌یابد.

به جای اجرای دستی این دستور هر روز برای به روز رسانی مخزن، می توانید یک کار Cron را برنامه ریزی کنید. برای انجام این کار، خط زیر را در فایل /etc/cron.d/apt-mirror حذف کنید:

sudo vi /etc/cron.d/apt-mirror

# کارهای cron منظم برای بسته apt-mirror
#
0 4 * * * apt-mirror /usr/bin/apt-mirror > /var/spool/apt-mirror/var/cron.log

در این مثال، کرون به‌روزرسانی‌های بسته را هر روز ساعت چهار صبح اجرا می‌کند.

پس از اتمام دانلود، بررسی کنید که آیا بسته هایی در پوشه /myrepo وجود دارد یا خیر

اکنون باید بسته ها را از طریق شبکه در دسترس قرار دهیم. برای انجام این کار، بیایید یک پیوند نمادین ایجاد کنیم:

sudo ln -s /myrepo/mirror/us.archive.ubuntu.com/ubuntu/ ubuntu

پیکربندی مشتری

راه اندازی بر روی دستگاه مشتری هیچ مشکلی ایجاد نمی کند. فقط فایل /etc/apt/sources.list را باز کنید و مخزن محلی خود را به همان روشی که از راه دور اضافه کردید اضافه کنید، فقط از آدرس IP دستگاه خود استفاده کنید:

sudo vi /etc/apt/sources.list

[...]
deb http://192.168.1.102/ubuntu trusty universe
deb http://192.168.1.102/ubuntu trusty main limited
deb http://192.168.1.102/ubuntu trusty-updates اصلی محدود شده
[...]

همین، اینجاست 192.168.1.102 - آدرس سرور با مخزن. حالا بیایید لیست های بسته را به روز کنیم:

به روز رسانی sudo apt-get

برای نصب برنامه کافیست دستور استاندارد را اجرا کنید:

sudo apt-get install package-name

راه اندازی apt-mirror ubuntu 16.04 کامل شد. اکنون مشتریان برای دانلود بسته ها نیازی به اتصال به اینترنت ندارند. آنها تمام بسته ها و به روز رسانی ها را از مخزن محلی اوبونتو دریافت خواهند کرد.

روش 2: APT-Cacher

بیش از یک راه برای ایجاد یک مخزن محلی اوبونتو وجود دارد. Apt-cacher کمی با apt-mirror متفاوت است. همه بسته ها را از مخزن دانلود نمی کند، بلکه فقط بسته هایی را که یک بار درخواست شده اند ذخیره می کند و در دسترس همه قرار می دهد.

ابتدا سرور آپاچی را نصب کنید:

sudo apt-get نصب apache2

سپس apt-cahcer:

sudo apt-get install apt-cacher

روش راه اندازی - daemon را انتخاب کنید و ok را بزنید:

اکنون باید /etc/default/apt-cacher را ویرایش کنید و پارامتر autostart را روی 1 تنظیم کنید.

sudo vi /etc/default/apt-cacher

فایل پیکربندی راه اندازی دیمون apt-cacher

# برای اجرای apt-cacher به عنوان دیمون مستقل روی 1 تنظیم کنید، اگر می خواهید روی 0 تنظیم کنید
# برای اجرای apt-cacher از /etc/inetd یا در حالت CGI (منسوخ شده). متناوبا، از سوی دیگر
# فراخوانی "dpkg-reconfigure apt-cacher" باید کار را برای شما انجام دهد.
#
AUTOSTART=1

# تنظیمات اضافی برای لغو تنظیمات موجود در apt-cacher.conf
# EXTRAOPT=" daemon_port=3142 limit=30"

همچنین می‌توانید پیکربندی کنید که از کدام IP می‌توانید به حافظه پنهان دسترسی داشته باشید؛ برای انجام این کار، فایل /etc/apt-cacher/apt-cacher.conf را باز کنید و خط مربوطه را ویرایش کنید: به عنوان مثال، اجازه دهید فقط به رایانه‌هایی که IP دارند از 192.168.1.20 تا 192.168.1.30:

sudo vi /etc/apt-cacher/apt-cacher.conf

[...]
## لغو نظر و تنظیم محدوده IP ##
مجاز_هاست = 192.168.1.20 - 192.168.1.30
#میزبان_انکار =
[...]

پس از تکمیل تنظیمات، apache را مجددا راه اندازی کنید:

sudo systemctl راه اندازی مجدد apache2

راه اندازی مجدد سرویس sudo apache2

پیکربندی سمت مشتری

یک فایل sudo nano /etc/apt/apt.conf.d/01proxy ایجاد کنید و خط زیر را به آن اضافه کنید:

sudo nano /etc/apt/apt.conf.d/01proxy

دریافت::http::پراکسی "http://192.168.1.102:3142"؛

در اینجا 192.168.1.102 آدرس مخزن محلی ما است. تنها چیزی که باقی می ماند این است که لیست های بسته را به روز کنید:

به روز رسانی sudo apt-get

در اینجا ما یک مخزن محلی اوبونتو اضافه نمی کنیم، بلکه فقط از یک پروکسی برای دانلود بسته ها استفاده می کنیم.

نتیجه گیری

همین. این فناوری برای مدیران سیستم و همچنین کاربران عادی که اتصال اینترنت ضعیفی دارند بسیار مفید خواهد بود. اگر سوالی دارید، در نظرات بپرسید!

به جای استفاده از dpkg -i package_name.deb برای نصب، می توانید یک مخزن محلی برای بسته هایی که روی فلش مموری یا رسانه های دیگر آورده شده اند ایجاد کنید و سپس از synaptic/kynaptic (یا apt-get install package_name) استفاده کنید.

1. بهتر است تمام اقدامات به صورت root انجام شود

sudo su

2. اکنون بسته dpkg-dev را نصب کنید. این شامل ابزار dpkg-scanpackages است، که همان چیزی است که ما به آن نیاز داریم.

apt-get dpkg-dev را نصب کنید

3. همه بسته های .deb را در یک دایرکتوری قرار دهید، به عنوان مثال، /myrepo (نه مستقیماً در این دایرکتوری، بلکه در زیر شاخه های واقع در این فهرست)

4. اجرا کنید

cd /myrepo dpkg-scanpackages . /dev/null | gzip -9c > Packages.gz

5. اکنون باید یک مخزن جدید به /etc/apt/sources.list اضافه کنید. یک خط را در /etc/apt/sources.list درج کنید (بهتر است آن را نزدیک‌تر به ابتدا درج کنید، زیرا apt-get (سیناپتیک/کیناپتیک) اولویت بیشتری به منبعی که زودتر از سایرین قرار دارد می‌دهد)

فایل deb:/myrepo ./

6. لیست مخازن را به روز کنید

آپدیت apt-get

اگر محتویات دایرکتوری بسته تغییر کرد، مراحل 1.4 را تکرار کنید.