سیستمعاملهای مدرن روشهای بسیار سادهی نصب نرمافزار را برای کاربران فراهم کردهاند. این روشها شامل پکیجهای نصب یا فرمانهایی میشوند که اجزای مختلف نرمافزار را به شکل یکجا نصب میکنند. آیا میدانید هنگام اجرای این فایلها یا فرمانهای نصب، دقیقا چه اتفاقی در پس زمینه سیستمعامل رخ میدهد؟ در این مقاله قصد داریم به نحوهی نصب نرمافزارها در سه سیستمعامل دسکتاپ مطرح یعنی ویندوز، مک و لینوکس نگاهی داشته باشیم.
روشهای مختلفی برای نصب و اجرای نرمافزار جدید روی کامپیوتر وجود دارد که به ترتیب پیچیدگی عبارتند از:
در این مقاله بیشتر بر شیوه پکیج نصب تمرکز خواهیم داشت؛ زیرا فروشگاه/مدیر نرمافزار هم بر همین شیوه و استفاده از همین پکیجها در پسزمینه سیستمعامل اتکا دارد. با نگاهی به سیستمعاملهای مطرح امروز، یعنی ویندوز، مک و لینوکس چگونگی ایجاد این پکیجها را تشریح خواهیم کرد. همچنین در این مطلب اتفاقاتی که هنگام نصب و اجرای این پکیجها رخ میدهد بررسی خواهیم کرد.
در سیستمعامل ویندوز، کاربران معمولا با دو پکیج نصب نرمافزار مواجه میشوند؛ اولین دسته، فایلهای اجرایی (EXE) نامیده میشوند که قادر به کپی کردن فایلها در محل مورد نظر و اعمال تغییرات لازم در رجیستری ویندوز هستند. به دومین نوع، پکیجهای نصب MSI گفته میشود که علاوه بر ویژگیهای فایلهای EXE، قادر به فراهم کردن استانداردهای دیگری از قبیل uninstallنرمافزار هستند.
برای مشاهده محتوای آرشیو فایلهای نصب EXE و MSI، میتوان از نرمافزار 7-Zip استفاده کرد. برای مثال اگر با استفاده از این نرمافزار به فایل نصب خود 7-Zip نگاهی داشته باشیم، فایلهای متفاوتی قابل رؤیت است.
این فایلها درون فایل نصب پوشهبندی نشدهاند و توسعهدهندگان نرمافزار هر فایل را به دایرکتوری خاصی برای نصب ارجاع میدهند. بیشتر این فایلها در محل نصب پیشفرض ویندوز (C:\Program Files\program name یا C:\Program Files (x86)\your new app) کپی میشوند.
توسعهدهندگان نرمافزار با استفاده از ابزاری حرفهای مانند نرمافزار InstallShield، میتوانند فرایند نصب را سفارشی و جزئیات آن را مشخص کنند. برای مثال توسعهدهندگان قادر هستند نسخه ویندوزی که نرمافزار روی آن نصب میشود مشخص کنند، برای نرمافزار در منوی استارت یا دسکتاپ میانبر (shortcut) ایجاد کنند و اقدام به ثبت اطلاعات کاربران نظیر نام، آدرس و... کنند. در نمونه پروژهای که در تصویر زیر به نمایش گذاشته شده است، صفحهای از نرمافزار InstallShield را مشاهده میکنید که بخش تنظیمات بهروزرسانی یا ایجاد رکورد جدید در رجیستری ویندوز را نشان میدهد.
نرمافزار InstallShield فایلهای مورد نظر و سایر تنظیمات نصب را در قالب فایلی با نامsetup.exe ذخیره میکند. با باز کردن این فایل بهوسیله نرمافزار 7-Zip، یک فایل نصب MSI قابل مشاهده است که فرآیند نصب را مشابه آنچه برای اکثر کاربران آشنا است به اجرا میگذارد. حال نگاهی به جزئیات فرایند نصب نرمافزار در ویندوز خواهیم داشت.
نصب کننده نرمافزار یا Installer در ویندوز مراحل زیر را طی میکند و ترتیب مراحل به تنظیمات اعمالشده توسط توسعهدهندگان نرمافزار مرتبط است:
همه این مراحل در فرایند نصب نرمافزار روی سیستمعامل ویندوز ممکن است در مقایسه با فرایند نصب در سیستمعامل بعدی این لیست پیچیده به نظر برسند.
فرآیند نصب نرمافزار در ویندوز شامل مراحل زیادی در پسزمینه سیستمعامل میشود. در نقطه مقابل، نصب نرمافزار در macOS معمولا شامل دانلود برنامه مورد نظر، باز کردن فایل DMG یاApple Disk Image و طی کردن چند مرحله ساده است. حتی در برخی موارد فایل نصب، قابلیت کشیدن و رها کردن (Drag and Drop) و نصب برنامه به شکلی بسیار آسان را برای کاربران فراهم میسازد. در این فایلها کاربر معمولا با عبارت Drag here مواجه میشود. در ادامه به فایلهای نصب APP و PKG در سیستمعامل macOS نگاهی خواهیم داشت.
فرایند نصب نرمافزار با استفاده از فایل نصب APP، از دو جهت بسیار سادهتر از چیزی است که در ویندوز رخ میدهد؛ ابتدا این که فایل APP در واقع یک پوشه استاندارد است. تنها تفاوتی که در این فایل وجود دارد پسوند APP. این فایل است. اگر این فایل روی ویندوز دانلود شود، کاربران آن را مانند یک پوشه معمولی ویندوز میبینند. دلیل دوم این است که فایل APP تمامی ملزومات و مواردی را که یک برنامه برای اجرا به آن نیاز دارد شامل میشود و دیگر نگرانی در مورد فایلهای ناقص یا فرایند دانلود قبل از نصب برنامه وجود ندارد.
این فایلها شامل سه بخش اساسی در پوشه نصب هستند:
پوشههای اختیاری دیگری نیز ممکن است در این فایلها مشاهده شوند که در ادامه به چند مورد از آنها اشاره میکنیم. پوشه Frameworks که شامل موارد عمومی است که برخی برنامهها برای عملکرد به آن نیاز دارند یا Plug-Ins که شامل ویژگیهایی از برنامه میشود که نیاز به اجرای مجزا ندارند و همچنین SharedSupport که شامل دادههایی فرعی مانند templates میشود.
بر خلاف فایلهای APP، فایل نصب PKG در macOS، دارای فرآیند نصبی مشابه ویندوز با ساختاری یونیکسی است. امکان مشاهده محتویات فایل PKG که با فرمت xar فشرده شده است به وسیله نرمافزار 7-Zip وجود دارد. داخل این فایل یک یا چندین فایل اصلی به شکل آرشیو وجود دارد. برای خارج کردن محتوای فایل PKG از فرمان زیر در ترمینال مک یا لینوکس استفاده میشود.Cpio یک فرمت آرشیو و برنامهای برای اعمال تغییرات بر فایلهای آرشیو است. بعد از اجرای این فرمان، کاربر قادر به مشاهده دایرکتوری خواهد بود؛ مشابه چیزی که در یونیکس رواج دارد.
در مثال زیر، برای نشان دادن محتوای یک فایل PKG از نرمافزار تبدیل کننده Pandoc استفاده شده است. این نرمافزار شامل اطلاعات باینری در مسیر /usr/local/bin و فایلهای دیگری در مسیر /usr/local/share/man است. برای این که پی ببریم این فایلها چطور روی مک نصب میشوند، نگاهی به فرآیند نصب در سیستمعامل شرکت اپل خواهیم داشت. همانطور که در تصویر مشاهده میکنید، برای نمایش محتویات فایل، از نسخه ویندوز 7-Zip به جای نسخه لینوکسی و مبتنی بر خط فرمان آن استفاده شده است.
هنگامی که کاربر فایل APP را به پوشه Applications مک کپی میکند تغییرات زیادی ایجاد نمیشود. آنطور که پیشتر گفته شد، تمامی موارد مورد نیاز برای اجرای برنامه در این فایل موجود است. تنها تفاوتی که این فرایند با یک عمل کشیدن و رها کردن معمولی با سایر فایلها دارد، ثبت شدن فایل Info.plist برنامه جدید در سیستم است.
ثبت فایل Info.plist تنظیماتی برای اجرای برنامه، نمایش آیکونی خاص، فایلهایی که در این برنامه پشتیبانی میشوند و... به وجود میآورد. بهغیر از این موارد، برنامه مورد نظر کاربر که در مثال زیر فایل APP نسخهای از برنامه ویرایش متن Atom است، آماده به کار خواهد بود.
باز کردن فایل PKG در سیستمعامل دسکتاپ اپل باعث شروع فرآیندی میشود که به wizard نصب در ویندوز شباهتهایی دارد. در برنامههای ساده، این فایل معمولا به نصب اجزای برنامه میپردازد که شامل مراحل زیر است:
توسعهدهندگان در فایلهای PKG قادر هستند اجزای دیگری را به فرآیند نصب محصولات خود اضافه کنند. این بخشها شامل نمایش توافقنامه مجوز کاربر نهایی (EULA)، جمعآوری اطلاعاتی درباره کاربر و انتخاب بخشهای مختلف نرمافزار جهت نصب میشود. در خلال همین موارد فایل نصب به شکل مرحله به مرحله در پسزمینه سیستمعامل اقدام به نصب نرمافزار مورد نظر کاربر میکند.