شما برای مطالعه این مقاله فقط 10 دقیقه وقت نیاز دارید

what-is-repository

ریپازیتوری چیست؟ افزودن Repository در اوبونتو، دبیان، centos

ریپازیتوری یکی از مفاهیم مهم در حوزه مدیریت نسخه و توسعه نرم افزار است که به عنوان یک منبع مرکزی برای ذخیره و مدیریت سورس کدها و تاریخچه کدها در پروژه های نرم افزاری عمل می کند. 

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

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

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

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

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

دیگر وقت آن است که با مخازن، نحوه استفاده از آنها و همچنین نحوه اضافه کردن مخازن در توزیع های مختلف لینوکس آشنا شویم:

ریپازیتوری چیست؟ 

Repository یک اصطلاح کلی است که در دنیای توسعه نرم افزار به کار می رود. یک نمونه واضح و دقیق از ریپازیتوری در دنیای واقعی، GitHub است که با استفاده از آن می توانید سورس کدهای پروژه را ذخیره و مدیریت کنید.  بسیاری از توسعه دهندگان از این گیت و مخازنی مثل GitHub برای همکاری های تیمی در مدیریت پروژه های نرم افزاری استفاده می کنند.

در کل، مخزن یا ریپازیتوری مجموعه ای از آیتم ها است که کاربران می توانند برای دسترسی به آیتم موردنظر خود به این مخزن مراجعه کنند و بعد از پیدا کردن آن آیتم، نسبت به دانلود آن اقدام کنند.

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

ریپازیتوری لینوکس حاوی اطلاعات مربوط به بسته ها، وابستگی ها و نسخه های مختلف نرم افزارها هستند و فرمت بسته ها هم به سیستم مدیریت بسته لینوکس بستگی دارد. به این صورت که فرمت پکیج های اوبونتو یا سایر توزیع های مبتنی بر دبیان، deb است یا بسته های مربوط به توزیع های مبتنی بر redhat مثل CentOS، به صورت RPM است.

ولی در حالت کلی، پکیج های موجود در ریپازیتوری لینوکس به صورت باینری یا سورس هستند و سورس کد نرم افزار را شامل می شوند.

انواع ریپازیتوری در لینوکس

ریپازیتوری لینوکس بر اساس محتوا و ماهیت بسته های خود به ۴ دسته تقسیم می شوند:

۱. اصلی (Main)

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

بسته های موجود در این مخزن، متن باز هستند و استفاده و تغییر یا توزیع مجدد آنها کاملاً رایگان است. همچنین، اکثر بسته های موجود در مخازن اصلی به صورت آماده و نصب شده همراه سیستم لینوکس عرضه می شود و دلیل آن هم این است که این بسته ها از ابزارهای موردنیاز سیستم و کاربر محسوب می شوند.

۲. محدود (Restricted)

اگرچه بسته های موجود در این مخازن هم رایگان هستند ولی در زمینه توزیع مجدد آن با محدودیت روبرو هستید و نمی توانید این کار را انجام دهید. این مخازن شامل ابزارها و درایورهایی است که برای عملکرد صحیح سیستم عامل ضروری هستند.

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

۳. جهانی (Universe)

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

۴. چندجهانی (Multiverse)

این ریپازیتوری ها شامل بسته های نرم افزاری با مجوزهای مختلف هستند و به صورت رایگان در دسترس نیستند. برنامه های اختصاصی بدون مجوز هم در این نوع مخازن گنجانده شده اند.

توصیه می کنیم که بسته های موجود در این مخازن را نصب نکنید چون احتمال اینکه که با مسائل و خطرات امنیتی مواجه شوید، خیلی بالا است.

کار با ریپازیتوری در اوبونتو

نصب پکیچ ها از ریپازیتوری اوبونتو

برای استفاده از پکیج های موردنیاز اول باید آن را با استفاده مدیر بسته سیستم های مبتنی بر دبیان یعنی apt نصب کنید که بهترین کار قبل از نصب بسته موردنظر این است که کل ریپازیتوری را آپدیت کنید تا به آخرین نسخه نرم افزار موردنظر دسترسی داشته باشید:

sudo apt update

بعد از اینکه با دستور بالا، مخازن موجود در مسیر etc/apt/sources.list/ سیستم را آپدیت کردید، اسم بسته موردنظر را در دستور زیر لحاظ کنید و آن را اجرا کنید:

sudo apt install package-name

برای حذف بسته موردنظر هم می توانید از دستور زیر استفاده کنید:

apt remove package

نحوه اضافه کردن ریپازیتوری به اوبونتو و دبیان

حالا اگر بسته موردنظر خود را از ریپازیتوری اوبونتو پیدا نکردید و می خواهید مخزن دیگری را به سیستم خود اضافه کنید، می توانید از دو روش استفاده کنید.

۱. از دستور add-apt-repository استفاده کنید.

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

sudo add-apt-repository [options] repository

repository فرمت مخازن موجود در فایل sources.list است و فرمت پیش فرض آن به صورت زیر است:

deb https://repositoryurl.com distro type

فرمت ریپازیتوری های مبتنی بر دبیان

به عنوان مثال، اگر می خواهید مخزن نسخه های پایدار گوگل کروم را به سیستم اضافه کنید، می توانید از دستور زیر استفاده کنید:

sudo add-apt-repository "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main"

deb: فرمت بسته های مخزن

[arch=amd64]: نوع معماری بسته ها

http://dl.google.com/linux/chrome/deb : آدرس ریپازیتوری

stable: نشاندهنده نسخه پایدار

main: نوع ریپازیتوری

حتی اگر خواستید می توانید یک ppa به دستور add-apt-repository اضافه کنید و مخزن موردنظر را با آن نصب کنید. PPA ها نوع خاصی از ریپازیتوری ها در اوبونتو هستند که توسط افراد یا گروه های کوچکی ساخته می شوند. برای اضافه کردن این ریپازیتوری ها به اسم کاربر یا گروه ایجاد کننده ppa و اسم خود ppa نیاز دارید:

sudo add-apt-repository ppa:PPA_NAME/PPA

به عنوان مثال، برای اضافه کردن ریپازیتوری آخرین نسخه های مرورگر وب فایرفاکس می توانید از دستور زیر استفاده کنید:

sudo add-apt-repository ppa:mozillateam/firefox-next

البته، حتما از معتبر و قابل اعتماد بودن ppa موردنظر مطمئن شوید و بعد نسبت به نصب آن اقدام کنید. 

۲. مخزن را به صورت دستی به سیستم اضافه کنید.

همانطور که قبلاً هم اشاره کردیم، لیست مخازن سیستم های مبتنی بر دبیان در فایل sources.list قرار دارد. برای اضافه کردن دستی مخزن موردنظر، اول باید این فایل را با ویرایشگر باز کنید:

sudo nano /etc/apt/sources.list

بعد اینکه فرمت مخازن موجود در این فایل را مشاهده کردید، مخزن جدید را هم مشابه با همان فرمت منتها به این فایل اضافه کنید و سپس آن را ذخیره کنید.

بعد از اینکه با یکی از این دو روش ها، مخزن را به سیستم اضافه کردید بهتر است دستور زیر را اجرا کنید تا لیست مخازن موجود در سیستم، آپدیت شود.

sudo apt-get update

نحوه حذف یک ریپازیتوری از اوبونتو

برای حذف مخزن موردنظر از لیست مخازن سیستم لینوکس، کافیست آپشن r را به دستور افزودن مخزن اضافه کنید.

مثلاً اگر همان دستور گوگل کروم را در نظر بگیرید، برای حذف آن کافیست فقط آپشن r را به آن اضافه کنید:

sudo add-apt-repository -r "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main"

یا اینکه با استفاده از ویرایشگر متنی vim یا nano یا هر ویرایشگر دلخواه دیگر، فایل sources.list را باز کنید و خط مربوط به مخزن را از آن حذف کنید.

کلیک کنید  Cron Job در لینوکس چیست؟ آشنایی با دستورات کرون جاب

کار با ریپازیتوری در توزیع های مبتنی بر RedHat مثل فدورا و CentOS

توزیع های مبتنی بر ردهت مثل فدورا از مدیر بسته های dnf و yum استفاده می کنند و ما هم در این آموزش، دستورات مرتبط با بسته ها و مخازن را برای هر دو مدیر بسته قرار می دهیم:

* مدیر بسته dnf قابلیت های امنیتی و عملکردی نسبت به yum دارد و توصیه می شود که از dnf استفاده کنید.

نحوه نصب پکیچ ها از مخازن

قبل از اینکه با نحوه اضافه کردن یا حذف مخازن آشنا شویم، بهتر است نحوه استفاده از آنها برای نصب یا حذف بسته های نرم افزاری سیستم های RedHat را بررسی کنیم.

برای نصب بسته کافیست اسم پکیج را در دستور زیر لحاظ کرده و آن را اجرا کنید:

sudo dnf install package-name

sudo yum install package-name

مثلاً برای نصب بسته ای به اسم firefox می توانید از دستور زیر استفاده کنید:

sudo dnf install firefox

sudo yum install firefox

برای حذف بسته موردنظر هم می توانید از دستور زیر استفاده کنید:

sudo dnf remove firefox

sudo yum remove firefox

اگر می خواهید این بسته را همراه با تمام فایل های بسته و تنظیمات آن حذف کنید، کافیست آپشن allowerasing را هم به دستور اضافه کنید:

sudo dnf remove --allowerasing package-name

sudo yum remove --allowerasing package-name

نحوه اضافه کردن ریپازیتوری به سیستم های مبتنی بر ردهت

برای اضافه کردن مخزن موردنظر به سیستم RedHat می توانید از دو روش استفاده کنید. 

۱. از ابزار config-manager استفاده کنید.

 dnf از یک ابزار داخلی به اسم config-manager برخوردار است و کاربران با استفاده از آن به راحتی می توانند مخازن جدید را به سیستم اضافه کنند یا در صورت نیاز آنها را حذف یا غیرفعال کنند که yum هم می تواند از این قابلیت بهره مند شود، منتها به شرطی که ابتدا این ابزار را با دستور زیر نصب کنید:

sudo dnf install yum-utils

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

برای اضافه کردن مخزن موردنظر به سیستم می توانید از دستورات زیر استفاده کنید:

dnf config-manager --add-repo repository

yum-config-manager --add-repo repository

برای اینکه مخزن موردنظر را به سیستم اضافه کنید، باید URL آن را جایگزین repository کنید.

sudo dnf config-manager --add-repo http://www.example.com/myrepo/

دستور بالا، یک فایل repo. جدید به فولدر /etc/yum.repos.d/ اضافه می کند. 

اگر می خواهید این فایل را به صورت دستی به فولدر مخازن اضافه کنید، باید از روش دوم استفاده کنید.

۲. فایل repo را به صورت دستی ایجاد کنید.

برای این کار، اول باید آدرس مخزن موردنظر را پیدا کنید.

بعد با استفاده از ویرایشگر موردنظر خود، در مسیر /etc/yum.repos.d/ فایل جدیدی با پسوند repo. ایجاد کنید.

sudo nano /etc/yum.repos.d/new-repo.repo

بعد این فایل جدید را طبق الگوی زیر ویرایش کنید و تنظیمات مخزن را مقداردهی کنید:

[repository-name]

name=Repository Name

baseurl=https://path-to-repo.com/

enabled=1

gpgcheck=1

gpgkey=https://path-to-repo.com/RPM-GPG-KEY.repo-name

repository-name: شناسه ریپوزیتوری

name: اسم موردنظر برای ریپوزیتوری

baseurl: آدرس URL ریپازیتوری

enabled: وضعیت ریپازیتوری (فعال = ۱) و (غیرفعال = 0)

Gpgcheck: فعال سازی (۱) یا غیرفعال سازی (۰) بررسی امضای GPG

gpgkey: آدرس کلید GPG موردنیاز برای امضای پکیج ها

بعد از اینکه این فایل را تکمیل کردید، روی Ctrl + X کلیک کنید تا فایل ذخیره شود.

در آخر کار، برای اینکه مطمئن شوید dnf یا yum از مخزن جدید اطلاع دارد، دستور آپدیت را اجرا کنید:

sudo dnf update

sudo yum update

نحوه فعال سازی یا غیرفعال سازی مخزن موردنظر در سیستم ردهت

با اینکه موقع کار کردن با فایل ریپازیتوری به صورت دستی، برای مقدار دهی پارامترهایی مثل وضعیت ریپازیتوری آزادتر هستید و کافیست مقدار آن را تغییر داده و فایل را ذخیره کنید. 

ولی اگر به دنبال راحتی بیشتری هستید، ابزار config-manager در کنار شماست. با استفاده از دستورات زیر می توانید مخزن موردنظر را فعال کنید. کافیست شناسه ریپازیتوری را به جایگزین MyRepo کنید:

sudo dnf config-manager --set-enabled MyRepo

sudo yum config-manager --set-enabled MyRepo

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

sudo dnf config-manager --set-disabled MyRepo

sudo yum config-manager --set-enabled MyRepo

نحوه حذف ریپازیتوری

برای حذف مخزن موردنظر از سیستم های مبتنی بر redhat فقط باید فایل repo مربوط به آن را از مسیر /etc/yum.repos.d حذف کنید. برای این کار کافیست از دستور rm استفاده کنید:

sudo rm /etc/yum.repos.d/MyRepo.repo

بعد از اجرای این دستور، مخزن موردنظر برای dns یا yum غیرقابل شناسایی است و هیچ بسته ای از آن مخزن بازیابی یا نصب نخواهد شد.

کار با ریپازیتوری ها در توزیع های مبتنی Arch Linux مثل مانجارو

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

Arch Linux دارای یک مخزن متن باز به اسم AUR است که شامل هزاران بسته نرم افزاری توسعه یافته توسط کاربران است. شما با استفاده مدیر بسته AUR می توانید به این مخزن دسترسی پیدا کنید و نرم افزارهای شخص- ثالث موردنیاز خود را نصب کنید.

شاید بپرسید پس Pacman که مدیر بسته پیش فرض آرچ لینوکس است، چه کار می کند؟ این مدیر بسته به بسته های ذخیره شده در مخزن AUR دسترسی ندارد و فقط بسته هایی را نصب می کند که در مخازن رسمی خود سیستم آرچ لینوکس قرار دارند. به همین خاطر است که نمی توانیم از آن برای نصب بسته های شخص-ثالث دیگر استفاده کنیم.

اما اگر به بسته ای نیاز دارید که در داخل مخازن سیستم قرار دارد، می توانید از دستور زیر برای نصب آن استفاده کنید:

sudo pacman -S package-name

و از دستور زیر هم برای حذف بسته موردنظر استفاده کنید:

sudo pacman -R package-name

برای استفاده از AUR، اول باید آن را نصب کنید. البته، این مدیر بسته دارای چند نسخه است که محبوب ترین آنها yay است. پس ابتدا با استفاده از دستور گیت زیر آن را نصب کنید:

git clone https://aur.archlinux.org/yay-git.git

بعد، طبق آموزش های ارائه شده در مجوزهای دسترسی فایل در لینوکس، مجوزهای فولدر دانلود شده را تغییر دهید:

sudo chmod 777 /yay-git

سپس، این دایرکتوری را با cd باز کنید و با دستور makepkg هم آن را نصب کنید:

cd /yay-git && makepkg -si

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

برای این کار، کافیست اسم پکیج موردنظر را در دستور زیر لحاظ کرده و آن را اجرا کنید:

yay -S package-name

به عنوان مثال برای نصب ویژوال استودیو باید از دستور زیر استفاده کنید:

yay -S visual-studio-code-bin

این دستور از شما تایید می خواهد که کافیست y را فشار دهید و منتظر بمانید تا پروسه دانلود و نصب بسته ها تمام شود. 

حذف بسته نصب شده از AUR

اگر بسته ای را با دستور yay نصب کرده اید و الان به هر دلیلی می خواهید آن را حذف کنید، قبل از نصب بهتر است لیست بسته های نصب شده از AUR را ببینید:

yay -Qm

بعد اسم بسته موردنظر را پیدا کنید و برای حذف آن از دستور زیر استفاده کنید:

yay -Rns package-name

این دستور پکیج موردنظر و تمام وابستگی های آن را حذف می کند. اگر هم به خاطر تاثیرات منفی، نمی خواهید وابستگی های نرم افزار را از سیستم حذف کنید، می توانید از دستور زیر استفاده کنید:

yay -Rdd package-name

نکات امنیتی مهم در مورد ریپازیتوری های لینوکس

  • سعی کنید تا حد امکان از مخازن رسمی و تایید شده توسط توزیع های لینوکس استفاده کنید.
  • از مخازنی استفاده کنید از پروتکل https استفاده می کنند. با مطالعه مقاله پروتکل http و https متوجه اهمیت این موضوع می شوید.
  • هویت مخزن جدیدی که می خواهید به سیستم اضافه کنید را تایید کنید.
  • مخازن را به طور منظم آپدیت کنید.
  • از منابع معتبر استفاده کنید. ( مثل AUR در Arch Linux)
  • قبل از نصب هر بسته از مخزن جدید، توضیحات آن را مطالعه کنید.
  • اگر از برنامه های مدیریت دسترسی به سیستم مثل SELinux استفاده می کنید، مطمئن شوید که بسته های مخازن هم تحت کنترل این برنامه ها قرار دارند.
  • بهتر است برای نصب برنامه های نصب شده از مخازن جدید، از یک کاربر جدا با دسترسی های محدود استفاده کنید.
  • اقدامات لازم برای جلوگیری از خطرات امنیتی را انجام دهید.

کلام آخر

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

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

سوالات متداول:

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

مطالب مشابهی که شاید علاقمند باشید

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

دیدگاه های شما

برای دریافت این مقاله لطفا ایمیلتان را وارد کنید

می توانید مقاله را دانلود کنید یا پرینت بگیرید