۱۳۸۶ اسفند ۱۳, دوشنبه

راه اندازي و ساخت مخزن (Repository) محلي براي Debian و Ubuntu


خيلي اوقات داشتن يك مخزن محلي بر روي سيستم يا شبكه داخلي ما را كمك مي كند تا با خيالي آسوده تر و راحت تر با سيستم كار كنيم ، چراكه مجبور نيستيم براي نصب بسته ها مرتبا cd هاي مختلف را تعويض كنيم يا پهناي باند زيادي را به نصب بسته ها اختصاص دهيم. البته در صورتيكه اينترنت پر سرعت وجود داشته باشد كه در اكثر مواقع وجود ندارد ، به جرات مي توانم بگويم كه اكثر به اصطلاح ISP ها هم قادر به اين كار نيستند چرا كه معمولا 2-3 برابر ظرفيت خود كاربر اختيار مي كنند.
همجنين با ساختن مخزن ،قادريم بسته هايي كه در مخازن اصلي وجود ندارند و جداگانه آنها را دريافت كرده ايم به مخزن محلي خود اضافه كنيم تا هم مخزني كامل تر داشته باشيم و هم در صورت وجود وابستگي ، نصب آن بسيار راحت تر باشد.
وجود يك مخزن محلي در يك شبكه داراي چندين سيستم لينوكسي باعث راحتي كار ، كم شدن زحمات مديران سيستم و در صورت نصب بسته ها از اينترنت ، صرفه جويي قابل ملاحظه اي در پهناي باند مي شود.

مراحل كار :

در اين آموزش ما مخزن را به واسطه بسته هاي موجود در DVD مي سازيم.

ابتدا دايركتوري هاي مورد نياز را ايجاد مي كنيم :
mkdir /dpkg/pool/main /dpkg/dists/main/binary-i386 -p

سپس بسته هاي را از CD يا DVD كپي مي كنيم :
cp /cdrom/pool/main/* /dpkg/pool/main -R

اين مرحله را مي بايست براي تمامي DVD يا CD ها انجام بدهيم.

حال بسته هاي مورد نياز را نصب مي كنيم :
apt-get install apache2 dpkg-multicd


اكنون زمان ساختن فايل هاي مورد نياز براي ايندكس كردن بسته هاي درون مخرن است ، براي اين منظور از دستور dpkg-scanpackages بهره مي گيريم.

قاعده استفاده از dpkg-scanpackages بدين ترتيب است :
dpkg-scanpackages [-m medium] binarypath overridefile [pathperfiz] > Packages

ابتدا overridefile را ايجاد مي كنيم :
touch pa

سپس اين دستور را اجرا مي كنيم تا تمامي بسته ها ايندكس شوند :
dpkg-scanpackages -m 'PersianAdmins repo' /dpkg/pool/main pa > /dpkg/dists/main/binary-i386

فايل ايندكس ساخته شده را فشرده مي كنيم :
gzip /dpkg/dists/main/binary-i386/Packages

لينك هاي مورد نياز به ريشه وب دايركتوري را ايجاد مي كنيم :
ln -s /dpkg /var/www/dpkg
ln -s /dpkg /var/www/dpkg/dpkg


فايل تنظيمات مربوط به مخزن ها etc/apt/sources.list/ مي باشد.

در صورتيكه مي خواهيم از مخزن فقط بر روي همين سيستم استفاده كنيم ، مي توانيم بدون استفاده از آپاچي بدين ترتيب عمل كنيم :
nano /etc/apt/sources.list
deb file:///dpkg main /

در صورت استفاده در شبكه ، مي تواين تنظيمات زير را در سيستم هاي مورد نياز اعمال كنيم :
nano /etc/apt/sources.list
deb http://ip-address/pkg

و در آخر براي بروزرساني ليست بسته هاي سيستم :
apt-get update

هم اكنون مي توانيد براحتي با استفاده از ابزار apt به نصب بسته ها و جستجو در آنها بپردازيد.
apt-get install packge-name
apt-get install word


اگر يك بسته در مخازن اينترنتي دبين موجود است ولي شما آن را در اختيار نداريد ، مي توانيد با دستور زير بدون آنكه بسته مورد نظر را بر روي سيستم خود نصب كنيد ، آنرا با تمام وابستگي هايش دانلود كنيد :
apt-get install -d package-name

بسته بهمراه تمام وابستگي هايش در دايركتوري زير دانلود مي شوند :
/var/cache/apt/archives

راه اندازي و ساخت مخزن محلي Fedora ، CentOs و Redhat براي YUM

خيلي اوقات داشتن يك مخزن محلي بر روي سيستم يا شبكه داخلي ما را كمك مي كند تا با خيالي آسوده تر و راحت تر با سيستم كار كنيم ، چراكه مجبور نيستيم براي نصب بسته ها مرتبا cd هاي مختلف را تعويض كنيم يا پهناي باند زيادي را به نصب بسته ها اختصاص دهيم. البته در صورتيكه اينترنت پر سرعت وجود داشته باشد كه در اكثر مواقع وجود ندارد ، به جرات مي توانم بگويم كه اكثر به اصطلاح ISP ها هم قادر به اين كار نيستند چرا كه معمولا 2-3 برابر ظرفيت خود كاربر اختيار مي كنند.
همجنين با ساختن مخزن ،قادريم بسته هايي كه در مخازن اصلي وجود ندارند و جداگانه آنها را دريافت كرده ايم به مخزن محلي خود اضافه كنيم تا هم مخزني كامل تر داشته باشيم و هم در صورت وجود وابستگي ، نصب آن بسيار راحت تر باشد.
وجود يك مخزن محلي در يك شبكه داراي چندين سيستم لينوكسي باعث راحتي كار ، كم شدن زحمات مديران سيستم و در صورت نصب بسته ها از اينترنت ، صرفه جويي قابل ملاحظه اي در پهناي باند مي شود.

مراحل كار :

در اين آموزش ما مخزن را به واسطه بسته هاي موجود در DVD مي سازيم ; توزيع در نظر گرفته شده براي اين آموزش فدورا مي باشد ، هر چند روش كار در تمام لينوكس هاي بر پايه ردهت يكسان است.

ابتدا دايركتوري مورد نياز را ايجاد مي كنيم :
mkdir /pkg
mkdir /pkg/gpg


سپس بسته هاي را از CD يا DVD در شاخه pkg كپي مي كنيم :
cp /cdrom/Fedora/ /pkg -rf
cp /cdrom/RPM-GPG-KEY* /pkg/gpg


حال بسته هاي مورد نياز را نصب مي كنيم :
yum install httpd createrepo

سرويس آپاچي را آغاز بكار مي كنيم :
/etc/init.d/httpd start

و تنظيم مي كنيم تا در زمان بوت هم اجرا شود :
chkconfig httpd on

اكنون زمان ساختن فايل هاي مورد نياز براي ايندكس كردن بسته هاي مخرن است :
createrepo /pkg/Fedora
دستور بالا در صورت اضافه كردن بسته ، تكرار كنيد.


يك لينك از دايركتوري pkg/ به ريشه وب دايركتوري ايجاد مي كنيم :
ln -s /pkg /var/www/html

فايل هاي تنظيماتي مربوط به مخزن ها در دايركتوري /etc/yum.repos.d/ قرار دارند ، فايل هاي قديمي را به محل ديگري انتقال مي دهيم :
mkdir /root/old-yum-repo
mv /etc/yum.repos.d/* /root/old/yum-repo/

فايل جديدي ايجاد و تنظيمات را در آن قرار مي دهيم :
nano /etc/yum.repos.d/padmins.repo

در صورتيكه بخواهيم از مخزن فقط بر روي همين سيستم استفاده كنيم ، مي توانيم بدون استفاده از آپاچي بدين ترتيب عمل كنيم :
[base]
name=PersianAdmins Repository
baseurl=file:///pkg/Fedora
gpgcheck=1
gpgkey=file:///pkg/gpg/RPM-GPG-KEY-fedora


در صورت استفاده در شبكه ، مي تواين تنظيمات زير را در سيستم هاي مورد نياز اعمال كنيم :
[base]
name=PersianAdmins Repository
baseurl=http://ip-address/pkg/Fedora
gpgcheck=1
gpgkey=http://ip-address/pkg/gpg/RPM-GPG-KEY-fedora


و در آخر :
yum update

هم اكنون مي توانيد براحتي با استفاده از ابزار yum به نصب بسته ها و جستجو در آنها بپردازيد.
yum install packgename
yum search word