۴.۴ مدیریت بستههای نرم افزاری در دبیان
نصب لینوکس و مدیریت بسته¶
انواع بسته های نرم افزاری¶
بسته های نرم افزاری دو دسته هستند:
بسته های باینری و بسته های کد منبع که تفاوت آن ها این است که بسته های کد منبع هنوز به زبان ماشین(صفر و یک) کامپایل (ترجمه) نشده اند ولی بسته های باینری تبدیل به زبان ماشین شده اند.برای نصب کد های منبع ابتدا باید آنها را به زبان ماشین ترجمه کنید و در نهایت آنها را نصب کنید اما بسته های باینری با دوبار کلیک رویشان نصب خواهند شد. موضوع پر اهمیت دیگر مفهوم وابستگی های نرم افزاری است. هر بسته نرم افزاری مجموعه ای از کد ها و کتابخانه هایی است که در کنار هم نرم افزار به درستی کار می کند. پس چیزی که در مورد هر دو بسته اهمیت دارد این است که از قبل باید تمام پیش نیاز ها روی سیستم موجود باشند.
بسته های باینری شامل بسته هایی با پسوند rpm,deb,run و بسته های کد منبع بسته هایی با پسوند tar.gz,tar.bz2,tgz است.
مثال:
$ ls Downloads
google-chrome-stable_current_amd64.deb
google-chrome-stable_current_amd64.rpm
NVIDIA-Linux-x86_64-340.32.run
firefox-31.0-32bit.tar.bz2
thunderbird-17.0.5.tar.bz2
#ls /usr/src/
linux-patch-3.2-rt.patch.bz2
linux-source-3.2.tar.bz2
postfix-2.9.3.tar.gz
pidgin-2.10.9.tgz
مفاهیم اولیه¶
Dependencies:به نرم افزارهای و کتابخانه هایی که یک نرم افزار برای اجرای مناسب به آن ها نیاز دارد و در صورت نصب نبودن آن ها امکان نصب نرم افزار مورد نظر هم نیستوابستگی های سیستم می گویند.در مواقعی که امکان نصب هم زمان دو بسته در یک سیستم وجود نداشته باشد اصطلاحا این دو بسته تداخل دارند.
همخوانی بسته ها¶
در حالت ایده آل هیچ مشکلی برای استفاده یک بسته rpm یا deb در نسخه های مختلف لینوکس که بر مبنای rpm و deb هستند وجود ندارد ولی به دلایلی این موضوع در دنیای واقعی امکان پذیر نیست از جمله:
-
نام گذاری های مختلف بسته ها در توزیع های مختلف
-
موجود نبودن وابستگی های مورد نیاز یک بسته و یا قدیمی یا جدید بودن نسخه های موجود
-
وجود اسکریپت های نصب مختص به یک توزیع مشخص در یک بسته
-
عدم همخوانی نسخه rpm یا dpkg مورد استفاده در تولید بسته و نسخه مورد استفاده در نصب
نحوه استفاده از مدیریت بسته ها در دبیان¶
ساختار نام گذاری بسته deb¶
نام گذاری یک بسته به صورت زیر انجام می شود:
foo_VVV_RRR_AAA.deb
-
بخش اول:قسمت VVV شماره نسخه ای است که نویسنده برنامه به آن نسبت داده شده یا همان شماره نسخه برنامه اصلی است.
-
بخش دوم:قسمت RRR شماره ساخت یا build number یا همان ورژن است.این شماره تعداد دفعات کامپایل مجدد برنامه با پیکربندی های متفاوت است و تغییرات و patch های انجام شده توسط نگهدارنده یا maintainer بسته است.
-
بخش سوم:قسمت AAA همان بستر سخت افزاری است که بسته برای آن کامپایل شده است.
دستور dpkg
این دستور مدیریت بسته ها را به عهده دارد و نحوه استفاده از آن به صورت زیر است:
# dpkg [ -iEGRlLsSr] <packagename.deb>
این دستور را میتوان با گزینه های زیر استفاده کرد:
گزینه | توضیحات |
-i | نصب یک بسته |
-E | در صورت برابر بودن با نسخه قبلی بسته نصب شده قبلی را باز نویسی نمی کند |
-G | اگر نسخه موجود جدید تر باشد نصب انجام نمی شود |
-R | به همراه -iو --unpackزیر شاخه ها به صورت بازگشتی می شوند |
-l [pattern] | اطلاعات وضعیت یک بسته را نمایش می دهد. |
-L package | لیست فایل هایی که یک بسته نصب شده می سازد را نمایش می دهد. |
-s یا --status | اطلاعات مربوط به یک بسته را نمایش میدهد همچنین فایل های پیکربندی را نیز لیست می کند. |
-- purge | بسته را به همراه فایل های پیکربندی آن پاک می کند. |
-r یا --remove | همه چیز را به غیر از فایل های پیکربندی پاک می کند |
-S | بسته مالک یک فایل را پیدا می کند. |
مثال: پیدا کردن بسته مربوط به دستور ls
$ dpkg -S /bin/ls
coreutils: /bin/ls
اطلاعات مربوط به وضعیت بسته در /var/lib/dpkg/status
$ dpkg -l dosfstools
Desired=UNknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Description
+++-==============-==============-
======================================
ii dosfstools 3.0.9-1 utilities for making and checking MS-DOS FAT
$ dpkg -i virtualbox-4.3_4.3.6-91406~Debian~wheezy_amd64.deb
فایل های مربوط به apt¶
- پوشه ای شامل فایل های پیکر بندی مرتبط با apt
/etc/apt/apt.conf
/etc/apt/apt.conf.d/
- لیست مخازن
مخازن سرویس دهنده هایی هستند که بسته های مورد نظر در ساختار از پیش تعریف شده برای استفاده توسط نرم افزار مدیر بسته ها بر روی شبکه و اینترنت در اختیار قرار می دهند.
/etc/apt/source.list
/etc/apt/source.list.d/
- محل ذخیره سازی فایل های دریافت شده از مخازن
/var/cache/apt/archives/
- لیست فایل های دریافت شده از مخازن
/var/lib/apt/lists/
برای مشاهده لیست مخازن از دستور زیر استفاده می کنیم:
deb uri distribution [component1] [component2] [...]
در زیر نمونه هایی از آدرس دهی مخازن در فایل sources.list آورده شده است:
deb file:/home/lpi/debian stable main contrib non-free
deb http://ftp.de.debian.org/debian squeeze main contrib non-free
deb ftp://ftp.debian.org/debian unstable contrib
برای اضافه کردن cdrom به لیست مخازن از دستور زیر استفاده می شود:
# apt-cdrom add
Using CD-ROM mount point /media/cdrom/
Identifying... [c60d29055a06d05adcdb2ab75f3dd723-2]
Scannind disc for index files...