ایجاد مخزن در لینوکس (repository)
جهت استفاده از هر سرویس، نیاز است تا پکیج مربوط به آن بر روی سیستم نصب شود. در سیستم عامل لینوکس برای راحتی نصب و به روز رسانی پکیجها می توان از مخازن نرم افزاری استفاده نمود. مخزن به مکانی گفته می شود که پکیج های نرم افزاری در آن تجمیع شدهاند. مخزن میتواند در قالب یک فایل iso، محیطی در بستر اینترنت و یا یک پوشه در سیستم که حاوی پکیج است، باشد.
* فایل تنظیمات مخازن:
هر مخزن توسط یک فایل متنی که در مسیر /etc/yum.repo.d قرار دارد، تعریف و تنظیم میشود. نام این فایل حتما باید پسوند .repo داشته باشد. پارامترهای مختلفی برای پیکربندی مخزن وجود دارد، در ادامه تعدادی از آنها که اهمیت بیشتری دارند را بررسی خواهیم کرد:
- [repositoryid]
در خط اول شناسه ی دلخواه در فرم مشخص (داخل براکت) بیان می شود. این شناسه بعنوان ID مخزن بوده و باید برای هر مخزن بصورت یکتا و در قالب یک کلمه تعریف شود.
[package]
- name
با استفاده از این پارامتر عبارت دلخواه برای نام مخزن تعیین می شود. در اینجا محدودیتی در تعداد کلمات استفاده شده وجود ندارد و میتوان برای فهم بهتر، مخزن را بصورت مختصر توضیح داد.
name=rpm package for redhat linux 7
- baseurl
این پارامتر مسیر مخزن را مشخص می کند.
بطور مثال مخازن اینترنتی بصورت زیر تعریف می شوند:
baseurl=http://192.168.20.50/package/centos/6
baseurl=ftp://192.168.20.60/package/rhel/5U7
مسیر مخزن در صورتی که بر روی یک دایرکتوری از سیستم باشد بصورت زیر تعریف می شود:
baseurl=file:///source/package
- enabled
با کمک این پارامتر میتوان مخزن را فعال یا غیرفعال نمود. در صورت عدم استفاده از این پارامتر، مخزن فعال می باشد.
enabled=1 or 0
- gpgcheck
این پارامتر تعیین می کند که پکیج ها قبل از نصب از نظر اصالت بررسی شوند یا خیر. برای اینکار Header پکیج با استاندارد معرفی شده توسط سازنده ی پکیج تطابق داده می شود. در حالت پیشفرض gpgcheck انجام نمی شود.
gpgcheck=1 or 0
- enablegroups
با استفاده از این پارامتر مشخص میشود که مخزن میتواند از package groups استفاده نماید یا خیر. در حالت پیشفرض مخازن مجاز به استفاده از package groups هستند.
enabledgroups=1 or 0
نکته : مخازن معتبر و استاندارد اینترنتی دارای امنیت بالایی هستند، زیرا تمامی پکیج های موجود تست شده و سازگار با توزیع مربوطه میباشند و کاربر با خیال راحت میتواند نسبت به نصب یا بروز رسانی برنامهها اقدام نماید.
* در سادهترین حالت میتوان فایل تنظیمات مخزن را بصورت زیر تعریف کرد.
vi /etc/yum.repos.d/<Any_Name>.repo
[rpm]
name= its a test
baseurl=file:///source/package/
* ایجاد مخزن با استفاده از فایل iso :
ابتدا باید مسیر ایجاد شود. (این مسیر دلخواه می باشد)
mkdir -p /source/image
فایل iso در این پوشه قرار می گیرد.
cd /source/image
ll
-rw-r--r--. 1 root root 3885117440 Jan 13 2017 Software.iso
فایل iso با دستور زیر به مسیر ایجاد شده Mount می شود.
mount -o loop /source/image/Software.iso /source/image/
df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 123G 87G 30G 75% /
tmpfs 7.8G 68K 7.8G 1% /dev/shm
/dev/sda1 488M 116M 337M 26% /boot
/source/image/Software.iso 3.7G 3.7G 0 100% /source/image
اکنون باید فایل تنظیمات مربوط به مخزن ایجاد شود. (با دستور زیر فایلی با نام test.repo در مسیر /etc/yum.repos.d/ با پارامترهای زیر ایجاد می شود.)
vi /etc/yum.repos.d/test.repo
[iso]
name=iso file
baseurl=file:///source/image
enabled=1
gpgcheck=0
برای مشاهده ی لیست مخازن موجود در سرور از دستور زیر استفاده می شود. مشخص است که مخزن جدید با تعداد 2675 پکیج در دسترس می باشد.
yum repolist
Loaded plugins: aliases, changelog, kabi, presto, refresh-packagekit, security,
: tmprepo, ulninfo, verify, versionlock
Loading support for kernel ABI
repo id repo name status
iso iso file 2,675
repolist: 2,675
* ایجاد مخزن با استفاده از Package File :
در ادامه روند ایجاد مخزن برای چند پکیج خاص که در یک دایرکتوری قرار دارند را مشاهده خواهید کرد. .
با دستور زیر مسیر ایجاد می شود.
mkdir -p /source/package
پکیج ها در این مسیر کپی می شوند.
cd /source/package
ll
-rw-r--r-- 1 root root 92328 Jan 10 2017 rlwrap-0.37-1.el6.x86_64.rpm
--rw-r--r-- 1 root root 96384 Oct 17 2013 createrepo-0.9.9-18.0.1.el6.noarch.rpm
-rw-rw-r-- 1 root root 74212 Oct 19 2013 cronie-1.4.4-12.el6.x86_64.rpm
-rw-rw-r-- 1 root root 30580 Oct 19 2013 cronie-anacron-1.4.4-12.el6.x86_64.rpm
-rw-rw-r-- 1 root root 9604 Oct 19 2013 cronie-noanacron-1.4.4-12.el6.x86_64.rpm
در این روش برای اجرای دستور زیر نیاز به نصب پکیج createrepo.noarch می باشد.
createrepo / source/package/
یک فایل با نام package.repo در مسیر /etc/yum.repos.d/ ایجاد و پارامترهای زیر در آن درج می شود.
vi /etc/yum.repos.d/package.repo
[rpm]
name=any packages
baseurl=file:///source/package/
enabled=1
gpgcheck=0
با دستور زیر لیست مخازن نمایش داده می شود.
yum repolist
Loaded plugins: aliases, changelog, kabi, presto, refresh-packagekit, security,
: tmprepo, ulninfo, verify, versionlock
Loading support for kernel ABI
repo id repo name status
iso iso file 2,675
rpm any package 5
repolist: 2,680
* تعریف مخزن اینترنتی :
برای استفاده از مخازن موجود در بستر اینترنت بصورت زیر عمل می شود.
vi /etc/yum.repos.d/redhat.repo
[redhat]
Name=redhat linux 7
Baseurl=http://www.sample.com/source/redhat7
Enabled=1
Gpgcheck=0
نمونه دیگری از تعریف baseurl :
baseurl=ftp://10.33.200.34/Fedora/Fedora-release/Packages/
نکته: برای تعریف بیش از یک مخزن می توان تنظیمات مربوط به مخازن را در فایل های جداگانه قرار داد و یا اینکه تنظیمات مربوط به تمام مخازن را در یک فایل تجمیع کرد.
* غیرفعال کردن مخزن :
در فایل تنظیمات مربوط به هر مخزن با تغییر مقدار Enabled به عدد صفر، مخزن غیرفعال می شود.
Enabled=0
البته برای اینکار میتوان فایل تنظیمات مخزن را حذف نمود.
نکته: با نصب پکیج yum-utils بر روی سیستم، ابزار yum-config-manager قابل استفاده می گردد.
از yum-config-manager برای پیکربندی ابزار yum و مخازن نرم افزاری استفاده می شود.
بطور مثال برای غیرفعال نمودن یک مخزن از دستور زیر نیز میتوان استفاده کرد.
yum-config-manager --disable <Repo_Name>
بزودی در مطلبی مستقل به بررسی ابزار yum-config-manager خواهیم پرداخت.