چرا گنو/لینوکس؟ قسمت اول – مدیر بسته

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

باید بگم که نه که نشه، می‌شه از این کارا هم کرد، اما دلیل این که نمی‌شه این کارا رو کرد یا بهتره که این کارا رو نکرد منافعیه که از نبود این چیزا به دست میاد، مثل امنیت، مثل کم حجم شدن بسته‌ها، مثل قابلیت به روز رسانی “کل” سیستم‌عامل و نرم‌افزارای جانبی فقط با یک دستور، مثل عدم نیاز به گشتن توی سایت‌های معتبر و غیرمعتبر برای پیدا کردن فایل نصاب و…

تاکس در برابر ام‌اس‌ان

کمی هر کدوم از مواردی رو که گفتم شرح می‌دم:

امنیت و عدم نیاز به گشتن توی سایت‌های معتبر و غیرمعتبر برای پیدا کردن فایل نصاب:

گنو/لینوکس ویندوز
  • در گنو/لینوکس بسته‌ها از طریق مدیر بسته و از مخازن رسمی توزیع گنو/لینوکس که بسته‌های تایید شده روش قرار می‌گیرن نصب می‌شن و پس از دانلود بسته، هش بسته با هش موجود روی سرور مطابقت داده می‌شه تا از دانلود صحیح بسته و همچنین دستکاری نشدن بسته در مسیر اطمینان حاصل بشه.
  • در ویندوز من به عنوان کاربر ممکنه فایل نصاب رو از منبع مطمئن (مثلا وبسایت رسمی) یا از هر منبع غیرمطمئنی دانلود کنم یا حتی از دوستم بگیرم، چه کسی تضمین می‌کنه در حین دانلود از سایت رسمی بسته توسط مثلا ISP تغییر داده نشده؟ یا سایت غیررسمی فایل دستکاری شده قرار نداده؟ یا فایلی که دوستم بهم می‌ده توسط ویروس روی رایانه دوستم آلوده نشده باشه (فرض کنیم دوستم آدم بدی نیست) راه‌حل اینه که خودم هش بسته رو چک کنم. 🙂

کم‌حجم شدن بسته‌ها:

شاید پیش خودتون بگید چه ربطی به حجم بسته داره این که از کجا بگیرمش؟ آره خب ربط نداره، اینجا یکی دیگه از تفاوت‌های بزرگ گنو/لینوکس رو می‌بینید که برای تحققش نیاز به مدیر بسته هست. برای همین اینجا آوردمش 🙂

یک مثال خیلی ساده می‌زنم (بهش ایراد نگیرید)، فرض کنید من یک برنامه‌نویس هستم و می‌خوام یه برنامه بنویسم که نیاز داره کاربر چیزی رو با استفاده از صفحه‌کلید توش تایپ کنه:

ویندوز گنو/لینوکس
  • به عنوان برنامه‌نویس: در ویندوز من باید کتاب‌خانه‌ی خواندن از صفحه‌کلید رو کنار برنامم بذارم و به کاربر نهایی بدم.
  • به عنوان کاربر: من یک بار زمان نصب مثلا فایرفاکس کتاب‌خانه خواندن از صفحه‌کلید رو با بسته فایرفاکس دانلود می‌کنم، و در پوشه ProgramFiles\Firefox نصب می‌کنم، یک بار هم همراه بسته کرومیوم دانلود و نصب می‌کنم، چندین بار هم توسط نرم‌افزارهای دیگم دانلود و نصب می‌کنم پس هم حجم دانلودم زیاد شد هم فضای اشغال شده روی سیستمم با کتاب‌خانه‌های تکراری گرفته شد.
  • به عنوان برنامه‌نویس: در گنو/لینوکس من در برنامه ذکر می‌کنم که این برنامه به کتاب‌خانه‌ی خواندن از صفحه‌کلید نیاز داره، اما کنار برنامه نمی‌گذارمش.
  • به عنوان کاربر: دستور نصب برنامه رو به مدیر بسته می‌دم، مدیر بسته به صورت خودکار اگر نیاز باشه کتاب‌خانه مورد نظر رو توی کتاب‌خانه مرکزی توزیع من نصب می‌کنه و از این به بعد همه نرم‌افزار‌هایی که به اون کتاب‌خانه نیاز داشته باشن از همون استفاده می‌کنن. و دفعات بعد دانلود کمتری هم خواهم داشت 🙂

خب تا همین‌جا هم معلوم شد چرا حجم بسته‌ها کم می‌شه اما می‌خوام چند تا فایده این کار رو هم بگم 🙂 فرض کنیم کتاب‌خانه خواندن از صفحه‌کلید یه مشکل داره، مثلا به جای ‘ح’ می‌زنه ‘خ’، نویسنده کتاب‌خانه مشکل رو حل می‌کنه و یه نسخه جدید از کتاب‌خونه رو می‌ده.

ویندوز گنو/لینوکس
  • به عنوان برنامه‌نویس: من باید نسخه جدید کتاب‌خانه مورد نظر رو بگیرم و کنار برنامم قرار بدم و با یک فایل نصاب دیگه با نسخه جدید تحویل مشتری بدم.
  • به عنوان کاربر: من باید به ازای همه نرم‌افزارهایی که از اون کتاب‌خونه استفاده می‌کردن، یک بار به سایت اون نرم‌افزار سر بزنم، اگر توسعه‌دهنده لطف کرده بود و نسخه جدید قرار داده بود دوباره کل بسته نرم‌افزار رو دانلود کنم و نصب کنم.
  • مدیر بسته به من اطلاع می‌ده که نسخه جدیدی از بسته‌ای در مخازن قرار گرفته و با تایید من فقط یک بار نسخه جدید اون یک کتاب‌خانه رو دانلود و نصب می‌کنه و مشکل تمام نرم‌افزارهایی که از اون استفاده می‌کردن حل می‌شه!

قابلیت به روز رسانی “کل” سیستم‌عامل و نرم‌افزارای جانبی فقط با یک دستور:

ویندوز گنو/لینوکس
  • متاسفانه چنین قابلیتی وجود نداره :)) شاید بگید ویندوز آپدیت این کار رو می‌کنه، اما اون فقط سیستم‌عامل و نهایتا خیلی تلاش کنه نرم‌افزار‌های مایکروسافت رو به روز می‌کنه، نه فایرفاکس وی‌ال‌سی رو مثلا!
  • چون همه بسته‌ها توسط مدیر بسته و از مخازن رسمی نصب شدن، با دادن دستور به مدیر بسته (می‌شه در حالت گرافیکی هم روی یک دکمه کلیک کرد) می‌شه کل سیستم‌عامل و نرم‌افزارهایی که روش نصبه رو به روز کرد.

خوش‌حال می‌شم نظرتون رو راجع به کارم بدونم 🙂 خوش و خرم باشید.

13 دیدگاه در “چرا گنو/لینوکس؟ قسمت اول – مدیر بسته”

  1. البته مورد دوم “کم‌حجم شدن بسته‌ها” کمی چالش برانگیزه.
    حداقل الان تلاش هایی داره صورت میگیره و مدیر بسته هایی معرفی میشن که اپ ها رو به صورت ایزوله اجرا میکنن.(یه بسته به همراه تمامی وابستگی هاش تو یه سندباکس اجرا میشه)مثلا:
    https://www.ubuntu.com/desktop/snappy
    http://flatpak.org/
    یکی از نقطه ضعف های اشتراک گذاری لایبری ها دو تا نقطه ضعف عمده داره:
    ۱-کاهش سطح امنیت و خطایابی سخت تر
    ۲-عدم نصب بسته هایی با نسخ مختلف در آن واحد
    پس نمیشه با قاطعیت گفت اشتراک گذاری لایبری ها همواره خوبه.گاهی (به نظر خودم گاهی) لازمه بسته ها به صورت سند باکس نصب و اجرا بشن.

    1. راجع به مدیربسته‌هایی که گفتی، اینا به کل سیستم کاری ندارن، ما بحثمون راجع به یه سیستم عادی بوده… من اگه بیام چنین چیزی استفاده کنم بعد بگم حجم دانلودم کم نشد، مشکل خودمم نه سیستم!

      کاهش سطح امنیت رو نمی‌فهمم برای چی گفتی… فرض کن یه باگ امنیتی توی یه کتاب‌خونه هست، من اگه مجبور باشم ۱۰ تا نرم‌افزار که ازش استفاده می‌کنن رو آپدیت کنم بهتره یا مدیر بستم همون یک کتاب‌خونه در کتاب‌خونه مرکزی رو آپدیت کنه و برای همه اون ۱۰ تا نرم‌افزار این مشکل حل بشه؟؟ فکر می‌کنم روش دوم امن‌تره.
      کتاب‌خانه مرکزی کار رو برای برنامه‌نویس سخت‌تر می‌کنه… ولی به نفع کاربر هست. آره خطایابی رو برای برنامه‌نویس سخت می‌کنه. ولی به مزایاش می‌ارزه به نظرم.
      راجع به عدم نصب بسته با نسخه مختلف، قبول ندارم، شما الان روی سیستم خودت از /usr/lib یه ls -l بگیر ببین که چند تا بسته داری که ۲ تا ورژن یا بیشتر ازشون هست! برای اینکه با آپدیت اساسی یک کتاب‌خونه بقیه نرم‌افزارایی که ازش استفاده می‌کردن دچار ایراد نشن، معمولا این اتفاق می‌افته که از یه کتاب‌خونه چند ورژن باشه… (این اتفاق باری آپدیت‌های امنیتی نمی‌افته). ضمن اینکه شما اگه خیلی اصرار داشته باشی می‌تونی دستی محل نصب رو تغییر بدی و از کتاب‌خونه با ورژن متفاوت استفاده کنی.

      در آخر، خودت هم گفتی گاهی لازمه به صورت سندباکس اجرا و نصب بشن (که شاید من قبولش ندارم) ولی همون گاهی، الان روی گنو/لینوکس امکان‌پذیر هست ولی توی ویندوز گاهی نیست، همیشه هست.

      ممنون از نظرت، بازم نظر بذار خوشحال می‌شم، خوش و خرم باشی…

  2. یادمه اولا که اومده بودم لینوکس اعصابم خورد میشد وقتی میخواستم یک بسته جدید نصب کنم و همش فکر میکردم چرا اینجوریه؟
    الان برعکسه. تعجب میکنم چطور میتونستم مدل نصب نرم افزار توی ویندوز – خصوصا با کرک و اینا- رو تحمل کنم. الان یک جوری شده یکی از آشناها که ویندوز داره میخواد واسش چیزی نصب کنم برام عذاب ذهنیه

پاسخی بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *