پکیجمنیجر چیزی رو نصب میکنه که نخواستی
خلاصهٔ کاملتر
فیل ایتون یادداشتش رو با یه واقعیت ساده شروع میکنه: مدیریت بسته سخته. هر توزیع لینوکس سیاست خودش رو برای تعریف «متنباز» داره و معمولاً به لایسنسهای تأییدشدهٔ OSI گره خورده. وقتی لایسنس یه نرمافزار آشکارا متنباز نباشه، حتی بستهبندی کردنش هم میتونه از نظر حقوقی مبهم بشه. نمونهٔ افراطیش استیمه: بعضی توزیعها نه خود نرمافزار، نه حتی نصبکنندهاش رو بستهبندی نکردن — فقط اسکریپتی رو بستهبندی کردن که نصبکننده رو برای کاربر دانلود میکنه.
مانگودیبی نمونهٔ حذف کامله. سال ۲۰۱۸ از AGPL (لایسنس تأییدشدهٔ OSI) به SSPL رفت؛ لایسنسی که خودش ساخته بود و هیچوقت تأیید OSI رو نگرفت. فدورا و دبیان بستهبندیش رو متوقف کردن و امروز مانگو تو هیچ توزیع بزرگ لینوکسی نیست، جز openSUSE و بستههای کاربری آرچ. ولی این یعنی کاربر نمیتونه نصبش کنه؟ نه؛ فقط یعنی مانگو باید خودش بسته بده، که میده.
نویسنده یادآوری میکنه نرمافزارهای بزرگ و بالغ معمولاً هم ترجیح میدن مستقیم از مخزن خودشون نصب بشن. راهنمای نصب داکر مدتهاست میگه اول نسخهای رو که توزیعت داده حذف کن، و پستگرس هم با لحن ملایمتری کاربر رو به مخازن خودش تشویق میکنه.
داستان MySQL از این عجیبتره. MySQL دهها ساله GPLه، یعنی کاملاً متنباز. ولی مدتی بعد از اینکه MariaDB ازش فورک شد، بعضی توزیعها بستهبندی رو جوری عوض کردن که با نصب mysql در واقع MariaDB گیرت میاومد. تو فدورا این وضع از نسخهٔ ۱۹ (۲۰۱۳) تا نسخهٔ ۴۰ (۲۰۲۴) برقرار بود. به نظر نویسنده کنار گذاشتن MySQL از اول خیلی منطقی نبود، ولی برگردوندنش کاملاً منطقیه، چون MariaDB حالا بهطور جدی از MySQL فاصله گرفته.
وضعیت هنوز یکدست نیست: تو دبیان default-mysql-server به MariaDB اشاره میکنه و mysql-server فقط تو مخزن ناپایدار هست، اون هم با تستهای بستهبندی ناموفق؛ ولی تو اوبونتو default-mysql-server واقعاً MySQLه. تو دنیای RHEL هم نسخهٔ ۷ (۲۰۱۴) بستههای MySQL رو کامل حذف کرد. باز هم راهحل همون بود: مخزن رسمی خود MySQL رو اضافه کن.
Redis راه مانگو رو رفت و سال ۲۰۲۴ از BSD به SSPL کوچ کرد، با این تفاوت که یه فورک اجتماعی به اسم Valkey خیلی سریع جا افتاد. تو همون سال فدورا ۴۱ رسماً Redis رو با Valkey عوض کرد و تا امروز هم نصب Redis روی فدورا در واقع Valkey بهت میده — با اینکه Redis سال ۲۰۲۵ دوباره یه لایسنس تأییدشدهٔ OSI اضافه کرده. دبیان و اوبونتو این کار رو نکردن و Redis همون Redis مونده. روی RHEL 10 و راکی لینوکس ۱۰ هم Redis نیست ولی Valkey هست.
مورد آخر Varnishه که به گفتهٔ نویسنده جالبترینه. تا ۲۰۲۶ بهخاطر اختلاف بر سر علامت تجاری، توسعهدهندههای Varnish Cache اسم پروژه رو به Vinyl عوض کردن و نهاد حقوقی پشت «Varnish» اسم رو نگه داشت. توسعهٔ اصلی روی Vinyl ادامه داره و Varnish عملاً یه توزیع پاییندستیه. نکتهٔ نویسنده اینه که هرکی پروژهٔ Varnish رو میخواست، احتمالاً توسعهدهندههاش رو هم میخواست — و اونها دیگه اونجا نیستن. با این حال فقط آرچ، FreeBSD و OpenBSD بستهٔ Vinyl دارن و تنها OpenBSD اسم مستعار «Varnish» رو بهش داده.
جمعبندی مقاله اینه که تو دنیای کانتینر و زیرساخت تغییرناپذیر، این تصمیمها کمتر مهمان: ایمیجها معمولاً مستقیم توسط خود سازندهها منتشر میشن و شرکتهای بزرگ هم مخازن داخلی خودشون رو دارن. ولی محیطهای توسعه و شرکتهای کوچیک بیشتر به بستههای پیشفرض توزیع تکیه میکنن و همونجاست که انتخاب نگهدارندهها بیشترین اثر رو میذاره. به تعبیر نویسنده، توزیعها دنبال یه سیستم منسجمان، پروژهها ترجیح میدن از مخزن خودشون نصب بشی، و کاربر فقط دنبال یه راه سادهٔ نصبه.
نکات کلیدی:
- تغییر لایسنس به SSPL باعث حذف مانگودیبی از توزیعهای بزرگ شد
- تو فدورا نصب mysql سالها یعنی نصب MariaDB؛ از نسخهٔ ۴۰ برگشت داده شد
- فدورا از نسخهٔ ۴۱ بهجای Redis، Valkey میده؛ دبیان و اوبونتو این کار رو نکردن
- Varnish به Vinyl تغییر نام داد ولی تقریباً هیچ توزیعی Vinyl رو بستهبندی نکرده
- نرمافزارهای بزرگ ترجیح میدن از مخزن رسمی خودشون نصب بشن
- تأثیر این تصمیمها بیشتر روی محیطهای توسعه و شرکتهای کوچیکه تا دنیای کانتینر




