رفتگر دبیان و اصلاح خودکار حدود ۶۰ هزار مشکل ریز در پکیج‌ها

رفتگر دبیان یا همون دبیان جنیتور سیستم اتوماتیکی است برای حل مشکلات ریز در بسته‌هایی که برای مدیر بسته دبیان درست می شن؛ یعنی همون dpkg. این رفتگر به شکل خودکار پیشنهادهای اصلاح رو بررسی می‌کرد و اونهایی که برای نرم افزار هم واضح بودن رو قبول می‌کرد اما حالا یه قدم جلوتر رفته: شخصا مشکلات رو پیدا می‌کنه و بعدش هم اصلاح (:

این سیستم برای بررسی اینکه باید روی کدوم پکیج‌ها کار کنه، اول خروجی lintian رو می‌بینه و بسته‌هایی رو انتخاب می‌کنه که مشکلات بیشتر و حادتری دارن که حلش از عهده خودش برمیاد. وقتی پکیج انتخاب شد، اونو توی رپوزیتوری کلون می‌کنه و بعد لینتین براش رو روش اجرا می‌کنه. این سیستم شامل یکسری اصلاح کننده است که می‌تونن برای مشکلات مختلفی نوشته و اجرا بشن.

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

#!/usr/bin/python3

from debmutate.control import ControlEditor
from lintian_brush.fixer import report_result, fixed_lintian_tag

with ControlEditor() as updater:
    for para in updater.paragraphs:
        if para.get("Priority") == "extra":
            para["Priority"] = "optional"
            fixed_lintian_tag(
                para, 'priority-extra-is-replaced-by-priority-optional')

report_result("Change priority extra to priority optional.")

این سیستم تا حالا حدود ۶۰هزار اصلاح روی پکیج های دبیان زده که به نوبه خودش اتفاق خیلی بزرگی است که قبلا با دست و در مقیاسی بسیار کمتر و کندتر و پر خطاتر انجام می‌شد. این نمونه‌ای است از اینکه چطوری می شه کدها رو اتوماتیک کرد و کارهای دستی رو به ماشین ها سپرد. نگرانی خاصی هم برای «از دست رفتن شغل برنامه نویسی» نیست چون همیشه با اینجور پیشرفت ها، افق های جدیدی باز می شن که ما هنوز توشون لازمه کار کنیم. در واقع در اینجور موارد همون اتفاقی می‌افته که با اختراع تراکتور افتاد. آدم ها بیکار نشدن بلکه کشاورزی راحتتر شدن و بقیه رفتن سراغ چیزهای دیگه (:

البته بذارین دو نکته رو هم بگم:

۱. این توضیح در مورد همه اختراعات نیست. واقعا شاید برسیم به جایی که ماشین ها کار کنن ما بخوابیم یا صاحب هامون بخوابن و ما تو خرابه ها دنبال غذا بگردیم (:

۲. اصطلاح رفتگر اصطلاح قشنگی است. الان مد شده بعضی ها می گن «پاکبان»‌ چون ظاهرا احساس می کنن رفتگر توهین آمیزه. رفتگری هم یه شغله و لازم نیست اگر فکر می کنیم تحقیر کننده است، اسمش رو عوض کنیم که راحت بشیم. اگر فکر می کنین رفتگرها زندگی سختی دارن، بهتره آشغال کمتری روی زمین بریزین، بهشون خوراکی های باحال بدین، باهاشون سلام علیک کنین و … عوض کردن اسم چیزها مشکلی رو حل نمی کنه (: مگر اینکه بخوایم بگیم پاکبان شمول بیشتری از رفتگر داره (: که قبوله.

پایان عمر کرانچ بنگ، پایان عمر یک لینوکس عالی

crunch

شاید بشه بهش گفت ناراحت کننده ولی کارهایی که با عقل انجام می شن ناراحت کننده نیستن. دولوپر اصلی کرانچ بنگ که لینوکسی سبک، زیبا و کارا بر پایه دبیان و محیط کار ال اوپن باکس است گفته که این سیستم رو دیگه توسعه نمی ده. دلیلش هم منطقی است:

هر کسی که در طول ده سال گذشته در دنیای لینوکس بوده باشه با من موافق است که خیلی چیزها عوض شده‌اند. البته چیزهایی ثابت موندن ولی خیلی چیزها در حد غیرقابل شناخته شدن تغییر کردن. این پیشرفت است، حداقل بخش بزرگی اش و پیشرفت چیز خوبی است. وقتی پیشرفت اتفاق می افته، چیزهایی در گذشته می مونن و در مورد من، کرانچ بنگ است که در گذشته است و باید ازش عبور کنم. من از کرانچ بنگ رد می شم چون صادقانه باور دارم که [این توزیع] دیگه ارزشی اضافه نمی کنه و با اینکه من باهاش خاطره دارم، دیگه فکر نمی کنم که بودن روی کرانچ بنگ به نفع کاربران باشه چون الان می تونن [به راحتی] از دبیان استاندارد استفاده کنن.

حرف معقولیه.. یادتونه دیگه؟ زندگی بالا رفتن از نردبان است و اگر قرار باشه از هر پله نردبان که رد شدیم، اونو بکنیم و با خودمون به بالا ببریم، هیچ وقت به بالای نردبان نمی رسیم. چیزهایی در گذشته هستن که باید ازشون گذشت، کرانچ بنگ برای اقای رانگ یکی از این چیزها بود.