سلام
در مورد اینترنت تو ایران مثلی هست که میگه: میبندی یا ببندم؟!. نصف اینترنت رو خودمون بستیم، نصف دیگش رو اونا بستن و تحریم کردن. متاسفانه بسته های تحریم شده هم در حال افزایش هستند. به همین دلیل در این آموزش به بررسی اینکه چطور میشه یک ریپازیتوری میرور برای بستههای تحریم شده راهاندازی کرد میپردازیم. با امید به اینکه شرکتها این روندها رو انجام بدن و دسترسی به ریپازیتوری ها رو راحت تر بکنن.
در این مرحله نیاز به نصب یک سرویسدهنده وب داریم. برای این منظور میتوان از apache یا nginx استفاده کرد. با دستور زیر بسته مورد نظر نصب خواهد شد:
sudo apt install apache2
راهاندازی ریپازیتوری با برنامه apt-mirror انجام میشود. در این مرحله این بسته نصب میشود (مشخصا دو بسته اشاره شده در ۱ دستور هم قابل نصب بودند)
sudo apt install apt-mirror
فضای ذخیره سازی و فضای دانلود بستهها در این مرحله ساخته میشود. برای این منظور میتوان از هر آدرسی که وب سرور به آن دسترسی داشته باشد استفاده کرد. برای مثال روند زیر قابل استفاده است:
mkdir /var/www/html/repo chown www-data:www-data /var/www/html/repo
فایل تنظیمات آپاچی برای دسترسی به این آدرس به صورت زیر میتواند باشد. مساله مهم، اضافه کردن Options Indexes MultiViews برای مشاهده لیست فایلها است.
<VirtualHost *:80> ServerAdmin webmaster@merepo.com ServerName merepo.com ServerAlias merepo.com DocumentRoot /var/www/html/repo <Directory "/var/www/html/repo"> Options Indexes MultiViews AllowOverride All Require all granted </Directory> SetEnvIf Request_URI "\.(jpg|xml|png|gif|ico|js|css|swf|js?.|css?.)$" DontLog SetEnvIfNoCase User-Agent "Googlebot" DontLog SetEnvIfNoCase User-Agent "bingbot" DontLog SetEnvIfNoCase User-Agent "MauiBot" DontLog SetEnvIfNoCase User-Agent baiduspider DontLog CustomLog /var/log/apache2/repo.log combined Env=!DontLog ErrorLog /var/log/apache2/repo_error.log </VirtualHost>
در ادامه وب سرور ریستارت و تست شود.
این مرحله مرحله نهایی در سرور است. در این مرحله فایل /etc/atp/mirror.list را با ویرایشگر خود باز کنید و تغییرات زیر را اعمال کنید (تغییر آدرس ذخیرهسازی بسته ها و اضافه کردن آدرس ریپازیتوری مورد نظر که در اینجا mysql8 است):
جایگذاری فایل شل زیر در محل مشخص شده:
sudo mkdir /var/www/html/repo/var sudo cp /var/spool/apt-mirror/var/postmirror.sh /var/www/html/repo/var
با دستور زیر بسته ها را دانلود میکنیم
sudo apt-mirror
خروجی مشابه زیر خواهد بود:
در این آموزش، در مرحله ۲ از آدرس merepo.com به عنوان آدرس ریپازیتوری استفاده شده است. این آدرس در فایلهای شاخه /etc/apt/sources.list.d/ قابل استفاده کردن است.
برای مثال، فایلی زیر را ایجاد کنید
/etc/apt/sources.list.d/mysql8list
و محتوای زیر رو به اون اضافه کنید
deb [trusted=yes] http://merepo.com/mysql8/release/ubuntu focal main