در این پست قصد داریم شما را با یکی از مفاهیم پایه سیستم عامل لینوکس یعنی مخازن داده آشنا کنیم، این مطلب برای تمامی توزیع های لینوکس از جمله توزیع های پرکاربردی مانند centos , ubuntu ,debian و fedora کارایی دارد پس از شما دعوت میکنیم با ادامه این مطلب با ما همراه باشید .
مخزن یا ریپازیتوری چیست ؟
به طور ساده یک مخزن لینوکس محل نگهداری و ذخیره سازی تمامی فایلهایی است که شما در زمان نصب یا بروزرسانی یک نرم افزار و حتی خود سیستم عامل لینوکس به آنها متصل شده و فایل دریافت میکنید که این فایلها پکیج نامیده میشوند .
فایلهای هر مخزن در یک سرور نگهداری و ذخیره میشود که ممکن است شامل پکیج های چندین مجموعه نرم افزار بوده یا برای یک نرم افزار خاص در نظر گرفته شده باشد که در زمان نصب یا بروزرسانی هر یک از این نرم افزارها شما به آن مخزن متصل شده و پکیج ها را دریافت خواهید کرد . زمانی که شما یک کامند مانند“sudo apt update” یا “sudo apt upgrade” را اجرا میکنید در ابتدا شروع به دریافت اطلاعات بسته ها و سپس در صورت نیاز به بروزرسانی دریافت خود پکیج ها میکنید .
اگر با توضیحات بالا کمی سردرگم شده اید و مطالبی ذکر شده که اطلاعاتی از آن ندارید با ادامه پست با ما همراه باشید در انتها حتما به طور کامل متوجه این مطلب خواهید شد و در صورت داشتن سوال نیز میتوانید در بخش نظرات همین مقاله سوالات خود را با ما مطرح کنید.
معمولا اوبونتو یکی از سیستم عامل های محبوب در بین کاربران بوده و هست که یکی از علل این محبوبیت سهولت و گستردگی مخازن برای نصب نرم افزارهای مختلف میباشد . اگر قصد نصب نرم افزاری در یک سیستم عامل لینوکس را دارید، در صورتی که این نرم افزار در یکی از مخازن وجود نداشته باشد برای نصب آن باید اقدام به نصب از سورس نمایید که نسبت به نصب از مخازن مراحل سخت تری را خواهید گذراند که در پست های آتی به نحوه نصب نرم افزارها در این روش نیز خواهیم پرداخت .
شاید برای شما سوال پیش آمده باشد که آیا مخازن همیشه در بستر اینترنت هستند و امکان داشتن مخزن محلی یا در یک حافظه جانبی وجود ندارد ؟ در پاسخ به این سوال باید بدانید که مخازن استاندارد و بروز همیشه در بستر اینترنت قرار دارند اما شما میتوانید یک مخزن محلی در یک حافظه جانبی یا DVD نیز داشته باشید . در خصوص نحوه استفاده و راه اندازی اینگونه مخازن در پست های آتی حتماً مفصلاً صحبت خواهیم کرد.
در ادامه میپردازیم به انواع مخازن و نحوه دریافت و مشاهده لیست مخازن نصب شده حال حاضر در لینوکس شما .
به طور کلی دو نوع مخزن لینوکس وجود دارد نوع اول مخازن استاندارد یا رسمی هستند و نوع دوم مخازن غیراستاندارد یا غیر رسمی، اگر شما هم شروع به خواندن مقالات مختلف در خصوص نصب نرم افزارها در لینوکس نموده باشید احتمالا در روش نصب این نرم افزارها حتماً به بخش هایی برخوردید که در آن اقدام به نصب یک ریپازیتوری (Repository) استاندارد یا غیراستاندارد شده است . مخازن غیر استاندارد همانند مخازن استاندارد بوده و شما میتوانید به راحتی آنها را در سیستم خود افزوده و اقدام به نصب نرم افزارهایی کنید که در آن مخزن نگهداری شدهاند اما زمانی که از مخازن استاندارد استفاده میکنید میتوانید با خیال راحت از همه لحاظ اقدام به استفاده از آنها نمایید، بدون دغدغه از لحاظ سازگاری با سیستم عامل شما یا سالم بودن فایلها .
دریافت لیست مخازن افزوده شده در توزیع های Debian Based مانند اوبونتو :
توزیع های لینوکسی زیادی با کرنل debian نوشته و به بازار عرضه شده اند که در اکثر موارد به روشی که در این بخش توضیح میدهیم میتوانید نسبت به دریافت لیست مخازنی که در حال حاضر از آنها استفاده میکنید اقدام کنید . برای این منظور از command زیر استفاده میکنیم که در آن با استفاده از دستور grep اقدام به چاپ لیست این مخازن از دو فایل etc/apt/sources.list
و /etc/apt/sources.list.d
نموده ایم و ^[^#] نیز جهت نادیده گرفتن مخازن غیر فعال استفاده شده است .
grep ^[^#] /etc/apt/sources.list /etc/apt/sources.list.d/*
خروجی این دستور چیزی شبیه به نمونه زیر خواهد بود که شامل لیست تمامی مخازن استفاده شده در سیستم شما میباشد
/etc/apt/sources.list:deb http://us.archive.ubuntu.com/ubuntu/ bionic main restricted /etc/apt/sources.list:deb http://us.archive.ubuntu.com/ubuntu/ bionic-updates main restricted /etc/apt/sources.list:deb http://us.archive.ubuntu.com/ubuntu/ bionic universe /etc/apt/sources.list:deb http://us.archive.ubuntu.com/ubuntu/ bionic-updates universe /etc/apt/sources.list:deb http://us.archive.ubuntu.com/ubuntu/ bionic multiverse /etc/apt/sources.list:deb http://us.archive.ubuntu.com/ubuntu/ bionic-updates multiverse /etc/apt/sources.list:deb http://us.archive.ubuntu.com/ubuntu/ bionic-backports main restricted universe multiverse /etc/apt/sources.list:deb http://security.ubuntu.com/ubuntu bionic-security main restricted /etc/apt/sources.list:deb http://security.ubuntu.com/ubuntu bionic-security universe /etc/apt/sources.list:deb http://security.ubuntu.com/ubuntu bionic-security multiverse /etc/apt/sources.list.d/teejee2008-ubuntu-ppa-bionic.list:deb http://ppa.launchpad.net/teejee2008/ppa/ubuntu bionic main
اگر به خروجی بالا توجه کنید متوجه خواهید شد که هر مخزن در توزیع های Debian Base از چند توافق نامه با نامهای main,restricted, universe و multiverse پیروی میکند هر یک از این این terms ها اطلاعات مهمی را شامل میشوند که باید بدانید :
main : پشتیبانی رسمی از نرم افزارهای متن باز ، شامل همه بسته های نرم افزاری متن بازی که در نصب پیش فرض قرار دارد و برخی نرم افزارهای متن باز مهم دیگر
restricted : پشتیبانی رسمی از نرم افزارهای سورس بسته مانند درایور سخت افزارها ، با پشتیبانی مشخص در طول دوره انتشار
universe : نرم افزار های اوپن سورس(متن باز) با پشتیبانی community که بسیاری از نرم افزار های اوبونتو از این مخزن استفاده میکنند ، پشتیبانی رسمی نداشته و مستقیما توسط جامعه اوپن سورس پشتیبانی میشود .
Multiverse : نرم افزار غیرقابل پشتیبانی، نرم افزار بسته شده و نرم افزار تحت پوشش حق کپی رایت .
دریافت لیست مخازن افزوده شده در توزیع های Redhat based مانند Centos :
برای نمایش لیست مخازن در حال استفاده در سیستم های ردهت بیس مانند Centos یا Fedora از دستور زیر استفاده میکنیم ، توجه داشته باشید در اینجا ما از dnf استفاده کردیم که جایگزین دستور قدیمی yum میباشد، اگر سیستم عامل شما centos 6 یا centos 7 است yum را بجای dnf استفاده کنید .
sudo dnf repolist
خروجی دستور بالا چیزی شبیه به نمونه زیر خواهد بود که در ستون status نیز میتوانید تعداد پکیج های موجود در هر مخزن را مشاهده کنید .
Last metadata expiration check: 0:18:37 ago on Sat 15 Sep 2018 12:28:02 PM EDT. repo id repo name status *fedora Fedora 28 - x86_64 57,327 *updates Fedora 28 - x86_64 - Updates 18,739
در دستور فوق به صورت پیشفرض مخازن غیر فعال را مشاهده نخواهید کرد، اگر قصد دارید تمامی مخازن از جمله مخازن غیر فعال را نیز مشاهده کنید کافیست در انتهای دستور قبلی کلمه all را بیفزایید که در این حالت خروجی شبیه یه زیر را مشاهده خواهید کرد .
sudo dnf repolist all Last metadata expiration check: 0:19:39 ago on Sat 15 Sep 2018 12:28:02 PM EDT. repo id repo name status *fedora Fedora 28 - x86_64 enabled: 57,327 fedora-cisco-openh264 Fedora 28 openh264 (From Cisco) disabled fedora-cisco-openh264-debuginfo Fedora 28 openh264 (From Cisco) disabled fedora-debuginfo Fedora 28 - x86_64 - Debug disabled fedora-source Fedora 28 - Source disabled *updates Fedora 28 - x86_64 - Updates enabled: 18,739 updates-debuginfo Fedora 28 - x86_64 - Updates - D disabled updates-source Fedora 28 - Updates Source disabled updates-testing Fedora 28 - x86_64 - Test Update disabled updates-testing-debuginfo Fedora 28 - x86_64 - Test Update disabled updates-testing-source Fedora 28 - Test Updates Source disabled
تا به اینجا آموختیم مخزن لینوکس یا linux repository چیست و چه کاربردی دارد و چگونه میتوانیم در سیستم خود لیست مخازن در حال استفاده را دریافت کنیم.
اگر بخواهید اقدام به نصب یک نرم افزار در لینوکس نمایید باید بدانید که به چه شکل میتوانید یک مخزن جدید یا غیر فعال را به لینوکس خود اضافه یا فعال کنید.
افزودن یک مخزن جدید به توزیع های Debian Based :
در سیستم هایی با کرنل دبیان مانند اوبونتو میتوانید از دستور sudo apt-add-repository
استفاده کنید که اگر در انتهای آن از علامت (flag) –help استفاده کنید روشهای در دسترس جهت افزودن مخزن را مشاهده میکنید که در اینجا به شکل زیر هستند .
apt-add-repository 'deb http://myserver/path/to/repo stable myrepo' apt-add-repository 'http://myserver/path/to/repo myrepo' apt-add-repository 'https://packages.medibuntu.org free non-free' apt-add-repository http://extras.ubuntu.com/ubuntu apt-add-repository ppa:user/repository apt-add-repository ppa:user/distro/repository apt-add-repository multiverse
همچنین جهت حذف یک مخزن نیز میتوانید از علامت r- مانند apt-add-repository -r ppa:user/repository
استفاده کنید .
افزودن یک مخزن جدید به توزیع های Redhat based :
در سیستم های ردهت بیس مانند فدورا یا سنت او اس جهت افزودن یک مخزن به سیستم میتوانید از دستور زیر استفاده کنید .
dnf config-manager --add-repo http://www.example.com/example.repo
توجه داشته باشید بجای dnf میتوانید از yum استفاده کنید ، در این خصوص در پاراگرافهای بالاتر توضیح داده شد .