47.05882352941176% Complete

مدیریت بسته‌های نرم افزاری در دبیان

مفاهیم بسته (package)

قبل از شروع ،‌ شما باید با برخی از مفاهیم در زیمنه لینوکس و ابزار‌های مدیریت بسته آشنا باشید.هر نرم‌افزار کامپیوتری مانند برجی از کارت ها (card tower) است:هر برنامه ممکن است به چندین برنامه یا کتابخانه دیگر وابسته باشد، و هر کدام از این وابستگی‌ها خود وابستگی هایی داشته باشند،و این روال ادامه پیدا می‌کند.و در آخر همه‌ی این برنامه ها به کرنل لینوکس وابسته‌اند.در حالت تئوری هر کدام از این بسته ها می‌توانند با نمونه های مشابه جایگزین شوند ،‌ اما در عمل ممکن است در بعضی مواقع مشکلاتی بوجود بیاید.بدتر از آن پاک کردن یکی از این کارت‌ها (برنامه یا کنابخانه ها)‌ از این پشته می‌تواند باعث ریختن کل کارت های این برج بریزد و برج را به کلی خراب کند.

ابزار های مدیریت بسته های لینوکسی در نظر گرفته شده‌اند تا دنبال کردن و ثبت کردن برنامه های نصب شده کمک کنند این برج کارت (مجموعه به هم وابسته برنامه ها و کتابخانه ها) ساخته و دست‌کاری شود.اطلاعاتی که توسط سیستم نگهداری می‌شوند کمک می کنند تا به چندین روش از وقوع مشکلات دوری شود:

بسته ها بیشترین اطلاعات پایه‌ای که سیستم‌‌های بسته‌ (package systems) نگهداری می‌کنند اطلاعاتی مربوط به بسته‌های نرم‌افزاری است.بسته های نرم‌افزاری مجنوعه‌ای از فایل های هستند که بر روی کامپیوتر نصب می‌شوند.بسته ها معمولا به صورت یک فایل شبیه فایل های tarball (اشیو هایی که با دستور tar درست شده و معمولا با ابزار های gzip و bzip2 فشرده می‌شوند) توزیع می‌شوند.یک بسته تشکیل شده از ده‌ها یا صدها فایل است و سیستم بسته تمامی این فایل ها را دنبال کرده و ثبت می‌کند.هر بسته شامل اطلاعاتی است که به وظایف متعاقب سیستم بسته کمک می‌کند.

پایگاه داده فایل های نصب شده (Installed File Database) سیستم های بسته پایگاه داده‌ای از فایل های نصب شده را نگهداری‌ می‌کنند.این پایگاه داده شامل اطلاعات در مورد تمامی فایل های نصب شده توسط سیستم مدیریت بسته است.مواردی مثل نام بسته‌ی این فایل ها و دیگر اطلاعات همراه بسته.

وابستگی ها (Dependencies) یکی از مهمترین انواع اطلاعاتی که توسط سیستم مدیریت بسته نگهداری می‌شود اطلاعات وابستگی ها(نیاز های یک بسته به بسته های دیگر) است.برای مثال vim به libc6 وابسته است و پایگاه داده این اطلاعات را ذخیره می‌کند.اگر شما سعی کنید vim را نصب کنید در حالی که libc6 نصب نباشد سیستم مدیریت بسته این اجازه را به شما نمی دهد.

بررسی ها (Checksums) سیستم های مدیریت بسته نتایج بررسی‌ها و اطلاعات جانبی مناسبی را در مورد فایل ها نگهداری می‌کنند.این اطلاعات برای بررسی اعتبار نرم‌افزارهای نصب شده استفاده می‌شود.این ویژگی محدودیت های خود را دارد،‌هر چند این ویژگی در نظر گرفته شده تا کمک کند خطاهای دیسک را پیدا کنید یا از بازنویسی تصادفی یک فایل جلوگیری کنید،‌ این ویژگی توانایی تشخیص نفوذ را ندارد، چون یک مزاحم می تواند سیستم بسته برای نصب نرم افزار سیستم تغییر داده و استفاده کند.

ارتقا و غیرفعال کردن (Upgrades and Uninstallation) با دنبال کردن و بررسی فایل‌ها و وابستگی ها ،‌ سیستم بسته به راحتی عمل ارتقا دادن و غیرفعال کردن بسته ها را انجام می‌دهد.کافی است شما به سیستم بسته بگویید بسته‌ای را پاک کند یا ارتقا دهد تا این سیستم تمامی فایل های بسته را پاک کرده یا جایگزین کند.البته با این فرض که بسته مشکل وابستگی نداشته باشد.

ساخت بسته‌های binary هم سیستم مدیریت بسته redhat و هم دبیان ابزار هایی را برای کمک به ساخت بسته‌های binary (‌بسته هایی که به صورت مستقیم بر روی سیستم نصب می‌شوند)‌ را روی بسته های کد منبع (source package) فراهم کرده‌اند.این ویژگی به طور خاص وقتی مفید خواهد بود که شما لینوکس را بر روی CPU خاصی استفاده می‌کنید.شما می‌توانید کد منبع را دانلود کرده و یک بسته binary برای آن بسته بسازید حتی اگر توسعه دهنده به طور مستقیم CPU مورد استفاده شما را پشتیبانی نکند.ساختن یک بسته binary مزایایی نسبت به کامپایل کردن معمولی نرم‌افزار از روی کد دارد چون شما می‌توانید این بسته را با سیستم مدیریت بسته نصب و مدیریت کنید.

ابزار های مدیریت بسته debian و RPM هر دو این ویژگی های پایه را پشتیبانی می‌کنند اما جزییات عملیات این ابزار ها متفاوت است.این دو سیستم مدیریت بسته با یک دیگر سازگاری ندارد به این معنا که شما نمی‌توانید یک بسته rpm را مستقیما بر روی یک سیستم بر پایه دبیان نصب کنید و بلعکس ،‌ اما ابزار هایی برای تبدیل این بسته ها وجود دارد.

استفاده از مدیر بسته دبیان

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

هر بسته دبیان شامل برنامه و فایل های پیکربندی ، مستندات و لیست وابستگی های آن بسته است.نام هر بسته شامل سه بخش کلی است :

نام بسته (Package name) نام یک بسته دبیان کوتاه و توصیفی است.در صورتی که نام بسته از کلمه تشکیل شده باشد کلمات با استفاده از - (hyphens) از هم جدا می‌شوند.نام های بسته چیزهای مانند vim ،‌ kernel-source یا binutils می‌باشند.

شماره نسخه (Version number)‌ هر بسته دارای یک شماره نسخه می‌باشد.اکثر بسته‌های دارای شماره نسخه مشابه با شماره نسخه نرم‌افزار درون خود هستند.ساختار نسخه بسته از بسته به بسته دیگر متفاوت است ولی معمولا ساختار عددی دارند (major.minor.patchlevel).

شماره اصلاح (Revision number) این شماره شبیه به شماره بسته است با این تفاوت که این شماره نشان دهنده تغییراتی است که نگهدارنده بسته بر روی اعمال کرده نه نویسنده اصلی نرم‌افزار .این تغییرات می‌تواند شامل تغییر در فایل اسکریپت ، makefile ها ،‌ control file ها و غیره باشد.

معماری (Architecture)‌ این قسمت مشخص کننده معماری است که بسته پشتیبانی می‌کنند.برای مثال i386 در این قسمت نشان دهنده این است که این بسته برای cpu های i386 ساخته شده.

بسته های دبیان دارای پسوند deb. می‌باشند.

dpkg

دی پی کاجی ابزار اصلی مدیریت بسته دبیان است که مستقیما با بسته ها deb. کار می‌کند و می‌توان از آن برای نصب و نگهداری خودکار بسته‌های دبیان استفاده کرد.

شکل کلی دستور dpkg

 # dpkg [option] action
دستور dpkg شامل بخش action است که مشخص کننده عمده عملیاتی است که dpkg باید انجام دهد،‌هر action می‌تواند شامل تعدادی option باشد.در ادامه تعدادی از action های پر کاربرد معرفی خواهند شد. گزینه **install-- یا i-**‌ برای نصب یک بسته استفاده می‌شود ،‌ این گزینه شامل باز کردن بسته، نصب فایل ها و پیکربندی بسته می‌شود.استفاده از گزینه E- باعث جلوگیری از باز نصب بسته‌ با شماره نسخه یکسان می‌شود، شما می‌توانید با استفاده از G- مانع از بازنصب یک بسته با شماره بسته‌ی قدیمی‌تر شوید. گزینه **configure--**‌ برای پیکربندی یک بسته باز نشده استفاده می‌شود. گزینه **remove-- یا r-**‌ این گزینه یک بسته را پاک می‌کند اما فایل های پیکربندی را نگه‌میدارد. گزینه **purge-- یا P-**‌ این گزینه یک بسته را همراه با تمامی فایل های پیکربندی پاک می‌کند. گزینه **list-- یا l-**‌ اطلاعاتی را در مورد بسته های نصب شده که با الگوی دریافتی مطابقت کند نمایش می‌دهد. گزینه **listfiles-- یا L-**‌ لیست فایل های یک بسته را نمایش می‌دهد. گزینه **status-- یا s-**‌ اطلاعات یک بسته را نمایش می دهد. گزینه **search-- یا S-**‌ با دریافت نام کامل یک فایل آن را در بین بسته ها جست و جو می‌کند. با استفاده از دستور dpkg-reconfigure می‌توان یک بسته نصب شده را دوباره پیکربندی کرد. ####apt ابزار دیگر به نام aptبا استفاده از نام بسته‌ها آن‌ها را از مخازن از پیش مشخص شده دریافت می‌کند.از مزایای apt-get نسبت به dpkg این است که این ابزار بعد از تشخیص وابستگی‌های یک بسته آن‌ها را از مخزن دریافت کرده و نصب می‌کند به این ترتیب مشکل وابستگی بسته‌ها را به طور خودکار حل می‌کند.نکته‌ای که در مورد apt وجود دارد این است که apt در زمان پاک کردن بسته وابستگی های آن بسته را پاک نمی‌کند.برای این منظور می‌توانید از ابزار aptitude استفاده کنید. منابع مورد استفاده توسط دستور apt در فایل etc/apt/source.list/ و پوشه etc/apt/source.list.d/ به صورت زیر مشخص می‌شوند.خط هایی که با # شروع می‌شوند در نظر گرفته نمی‌شوند.
/etc/apt/source.list

deb http://ftp.de.debian.org/debian/  wheezy main contrib non-free

deb-src http://ftp.de.debian.org/debian/  wheezy main contrib non-free

deb http://ftp.de.debian.org/debian/ wheezy-updates main contrib non-free

deb http://ftp.de.debian.org/debian/ wheezy-backports main contrib 

# deb file:///mnt/debian-cd-iso/ wheezy main contrib 
# deb http://security.debian.org/ wheezy/updates main contrib
# deb-src http://security.debian.org/ wheezy/updates main contrib
# deb http://ftp.debian.org/debian/ wheezy-updates main contrib
# deb-src http://ftp.debian.org/debian/ wheezy-updates main contrib

####apt-get ابزار apt-get یکی از مجموعه ابزار بسته apt است که با آن می‌توان بسته های را مدیریت کرد شکل کلی این دستور به صورت زیر است .
 
 # apt-get [option] command [package_name ...]

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

گزینه update‌ برای بروز رسانی لیست بسته های موجود در مخازن استفاده می‌شود.

گزینه remove‌ این گزینه یک بسته را پاک می‌کند اما فایل های پیکربندی را نگه‌میدارد.

گزینه purge‌ این گزینه یک بسته را همراه با تمامی فایل های پیکربندی پاک می‌کند.

گزینه upgrade‌ برای بروز رسانی بسته ها استفاده می‌شود در صورتی که هیچ بسته‌ای برای این دستور مشخص نشود تمامی بسته‌های قابل ارتقا بروز رسانی خواهند شد.

گزینه dist-upgrade‌ همانند گزینه upgrade است با این تفاوت که وابستگی های یک بسته را نیز بروز رسانی می‌کند و در نتیجه منجر به بروز‌رسانی کل سیستم می‌شود.

گزینه download‌ تنها بسته را از مخزن دریافت کرده ، در این action بسته تصب یا پیکربندی نمی‌شود.

apt-cache

ابزار apt-cache برای بدست آوردن اطلاعات در مورد بسته های استفاده می‌شود.

گزینه show‌ اطلاعات یک بسته را نمایش می دهد.

گزینه search‌ با دریافت نام یک بسته آن را در بین بسته ها جست و جو می‌کند.


 # apt-cache show bash
 Package: bash
 Version: 4.2+dfsg-0.1+deb7u3
 Essential: yes
 Installed-Size: 3941
 Maintainer: Matthias Klose 
 Architecture: amd64
 Replaces: bash-completion (<< 20060301-0), bash-doc (<= 2.05-1)
 Depends: base-files (>= 2.1.12), debianutils (>= 2.15)
 Pre-Depends: dash (>= 0.5.5.1-2.2), libc6 (>= 2.11), libtinfo5
 Recommends: bash-completion (>= 20060301-0)
 Suggests: bash-doc
 Conflicts: bash-completion (<< 20060301-0)
 Description-en: GNU Bourne Again SHell
  Bash is an sh-compatible command language interpreter that executes
  commands read from the standard input or from a file.  Bash also
  incorporates useful features from the Korn and C shells (ksh and csh).
  .
  Bash is ultimately intended to be a conformant implementation of the
  IEEE POSIX Shell and Tools specification (IEEE Working Group 1003.2).
  .
  The Programmable Completion Code, by Ian Macdonald, is now found in
  the bash-completion package.
 Multi-Arch: foreign
 Homepage: http://tiswww.case.edu/php/chet/bash/bashtop.html
 Description-md5: 3522aa7b4374048d6450e348a5bb45d9
 Tag: implemented-in::c, interface::shell, role::program, scope::utility,
  suite::gnu, uitoolkit::ncurses
 Section: shells
 Priority: required
 Filename: pool/main/b/bash/bash_4.2+dfsg-0.1+deb7u3_amd64.deb
 Size: 1500594
 MD5sum: 0485742eacebc3b64a09a93e8b8f47fa
 SHA1: 3b8f5bbc81b0885c9703526fafe8e815ca1718fc
 SHA256: f237486ebcdff43cc09bd93960316e02a9a7381145b9c9128e0e766d0522f000

استفاده از s- در قسمت option دستورات بالا واقعا اجرا نشده و فقط شبیه سازی می‌شوند و همچنین گزینه y- به تمامی سوالات پاسخ yes را ارسال می‌کند.در صورتی که گزینه f- را همراه install وارد کنید.این ابزار سعی می‌کند مشکلات مربوط به بسته‌ها یا وابستگی های آن‌ها را که به درستی نصب نشده‌اند را حل کند

aptitude

نکته‌ای که در مورد apt وجود دارد این است که apt در زمان پاک کردن بسته وابستگی های آن بسته را پاک نمی‌کند.برای این منظور می‌توانید از ابزار aptitude استفاده کنید.aptitude از خیلی جهات شبیه به apt است ، شما می‌توانید اکثر action های apt را به همان صورت در aptitude استفاده کنید ،‌ action هایی مانند install ، remove ، purge ، update ، upgrade ، download ،‌ ...

شکل کلی دستور

 
 # aptitude [option] command [package_name]

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

گزینه update‌ برای بروز رسانی لیست بسته های موجود در مخازن استفاده می‌شود.

گزینه remove‌ این گزینه یک بسته را پاک می‌کند اما فایل های پیکربندی را نگه‌میدارد.

گزینه purge‌ این گزینه یک بسته را همراه با تمامی فایل های پیکربندی پاک می‌کند.

گزینه safe-upgrade‌ برای بروز رسانی بسته ها استفاده می‌شود در صورتی که هیچ بسته‌ای برای این دستور مشخص نشود تمامی بسته‌های قابل ارتقا بروز رسانی خواهند شد.

گزینه full-upgrade‌ همانند گزینه safe-upgrade است با این تفاوت که وابستگی های یک بسته را نیز بروز رسانی می‌کند و در نتیجه منجر به بروز‌رسانی کل سیستم می‌شود.

گزینه download‌ تنها بسته را از مخزن دریافت کرده ، در این action بسته تصب یا پیکربندی نمی‌شود.

گزینه autoclean فایل دانلود شده بسته‌هایی که دیگر قابل دانلود کردن نیستن را پاک می‌کند و از بزرگ شدن کش و اشغال فضای اضافی جلوگیری می‌کند.

گزینه clean‌ تمامی فایل های بسته‌ها را از کش ‌(cache) پاک می‌کند.

بسته‌های دانلود شده از مخازن در مسیر var/cache/apt/archives/ لیست این بسته ها در مسیر /var/lib/apt/lists/ قرار گرفته.

 
 # aptitude -s -y install apache2 

علاوه بر این دستورات ابزار aptitude شامل یک رابط کاربری گرافیکی تحت ترمینال است که به کمک آن می‌توانید بسته‌ها را نصب و مدیریت کنید.برای استفاده از این رایط کاربری کافیست دستور aptitude را به تنهایی در ترمینال تایپ کنید.

ابزار alien

با استفاده از ابزار alien شما می‌توانید بسته های غیر دبیانی را بر روی سیستم دبیان نصب کنید.این ابزار بسته‌های rpm ، slp ، tgz را پشتیبانی می‌کند.شما می‌توانید با استفاده از گزینه i- بسته های مورد نظر را بر روی سیستم خود نصب کنید.همچنین با استفاده از گزینه r- و t- می‌توانید بسته‌های دبیان را به ترتیب به بسته‌های rpm و tat.gz تبدیل کنید.

alien -i package.rpm

LPIC-1 Linux Professional Institute Study Guide(3rd Edition)
LPI Linux Certification in a Nutshell, 3rd Edition
47.05882352941176% Complete

کامپیوترها، نرم افزارها و سیستم عامل ها کامپیوتر چیست؟ بخش‌های مختلف یک کامپیوتر نرم افزار سیستم عامل‌های مهم لینوکس و نرم افزار آزاد لینوکس: داستان یک موفقیت آزاد یا متن باز نرم افزارهای آزاد مهم توزیع های لینوکس مهم نصب یک توزیع معماری سیستم استخراج و پیکربندی تنظیمات سخت افزار روند بوت سیستم مدیریت Runlevelها و shutdown و reboot نصب لینوکس و مدیریت بسته ها طراحی ساختار دیسک نصب یک مدیر بوت مدیریت Share library ها

مدیریت بسته‌های نرم افزاری در دبیان

استفاده از RPM و YUM دستورات گنو و یونیکس کار با خط فرمان پردازش جریان‌های داده باکمک فیلتر ها مدیریت فایل‌ها - مقدماتی استفاده از stream‌ها, pipe‌ها و redirect ایجاد، رصد و حذف یک فرایند ویرایش اولویت اجرای فرایندها جستجوی فایل‌های متنی توسط regular expressionها ویرایش فایل با کمک vi تجهیزات، فایل سیستم های لینوکسی و فایل سیستم سلسله مراتبی ساخت پارتیشن و فایل سیستم نگهداری از یکپارچگی فایل سیستم کنترل mount و unmount شدن فایل سیستم سهمیه بندی فضای دیسک یا quota مدیریت مجوزهاو مالکیت‌ فایل ساخت و تغییر hard و symbolic link جستجوی فایل سیستم و محل درست فایل‌ها راهنمای استفاده از Docpad نصب و راه اندازی اولیه نحوه تهیه مستندات