این مقاله در ادامه مقاله اطلاعات همراه با بسته باینری هست، اگه اون رو نخوندید از اینجا میتونید پیداش کنید.
در یک سیستم عامل بزرگ و مهمی مانند دبیان گنو/لینوکس، موقع نصب/آپگرید یا حذف بسته ها ممکنه که اتفاقات بسیاری بیوفته و مشکلات عدیده ای بوجود بیاد. الگوریتم های مقابله با این مشکلات در ابزار های مدیریت بسته پیادهسازی شدن و قرار نیست همه اون هارو ما بلد باشیم. توی این مقاله میبینیم موقع نصب/آپگرید یا حذف یک بسته چه اتفاقاتی میوفته. چه اسکریپت هایی اجرا میشن و اون اسکریپت ها اصلا از کجا اومدن و ....
قبل از اینکه فرایند هایی که گفتم رو ببینیم باید راجع به این اسکریپت ها بدونیم. این اسکریپت ها بخشی از اون meta-information هستن که قبلا توی این مقاله راجع بهشون صحبت کردیم. علاوه بر فایل کنترل ( control.tar.gz ) یک بسته دبیان ممکنه اسکریپت هایی رو هم همراه با خودش داشته باشه که توسط dpkg در زمان های متفاوت پردازش یک بسته صدا زده میشن و وظایف مهمی رو به عهده دارن.
دیتابیس دیپکیج dpkg database
تمام اسکریپت های پیکربندی بسته های نصب شده در /var/lib/dpkg/info/ با فرمت زیر دخیره شدند
همینطور که توی عکس میبینید، این اسکریپت ها با اسم پکیج همراه هستن و اسم اون بسته برای اون اسکریپت ها prefix شده.این پوشه همچنین فایلی رو با پسوند list. برای همه بسته ها داره که لیستی از فایل های متعلق به اون بسته رو نشون میده.
به طور کلی preinst script قبل از فرایند نصب و postinst بعد از اون اجرا میشن. و به همین ترتیب prerm قبل از حذف صدا و postrm بعد از اون زده میشن. آپدیت کردن یک بسته به این معنیست که ورژن قبلی حذف و ورژن جدید نصب بشه. این اسکریپت های مخصوص توسط خود توسعه دهنده یا نگهدارنده بسته نوشته میشن. چون زیر و بم بسته رو میدونن و میدونن باید چجور با اون رفتار بشه!
دنباله های توصیف شده در این بخش اسکریپت های پیکربندی را با نام های خاصی صدا می کند ، مانند old-prerm یا new-postinst. اون ها به ترتیب اسکریپت های موجود در نسخه قدیمی بسته ( *-old ) و اسکریپت های جدید اند ( *-new ) هستند.
این دو لینک میتونن یک جلوه تصویری از فرایند های نصب/آپگرید و یا حذف به شما بدن:
https://people.debian.org/~srivasta/MaintainerScripts.html
https://www.debian.org/doc/debian-policy/ap-flowcharts.html
این چیزی هست که در نصب ( یا آپگرید ) بسته اتفاق میوفته:
این اتفاقی هست که موقع حذف یک بسته میوفته.
دیگر پست های من: