X
تبلیغات
رایتل
آموزش نصب و کار با سیستم عامل جنتو Gentoo OS

تولد یک غول به نام لینوکس جنتو

یکشنبه 12 بهمن‌ماه سال 1393 ساعت 12:16 ب.ظ

این برگردان یک بخش از مقاله سه گانه  دنیل روبینز درباره سلسله اتفاقاتی است که به ایجاد سیستم عامل جنتو لینوکس ختم گردیده. نوعی خاطره نگاری با روایتی داستانی است که تجربیات جالبی در آن وجود دارد. من  (هادی صرامی) از خواندن آن لذت بردم. امید که شما هم لذت ببرید. برگردان آن به فارسی اگرچه درخورد پارسی زبانان نیست و شیوایی لازم را ندارد ٬ اما هدف رساندن پیام درون آن با برگردانی بهتر از برگردان های ماشینی است.  به هر تقدیر من هم از نظر زمان با مذیقه روبرو هستم و این اندک تنها علاقه من به شماست. تا چه قبول افتد و چه در نظر آید.

 

 

 

 

ساخت یک توزیع ٬ بخش ۱

۱.  تولد توزیع لینوکس جنتو

لینوکس و من

برای هر کاربر اینوکس زمانی فرا می رسد که لینوکس چیزی بیشتر از یک نام خواهد شد و خودش را چیزی بیشتر از هیجان انگیز ٬ قدرتمند ٬ و از هر چیزی که گسترش دهندگان بروی آن کار کرده اند قوی تر نشان خواهد داد. مکاشفه من هنگامی رخ داد که من به عنوان مدیر دستگاه در دانشگاه نیو مکزیکو کار می کردم سرور ان تی جدید ما بخوبی کار می کرد و من زمان بیشتری در اختیار داشتم. بنا بر این یک دبیان بروی یک جعبه سرور ۱۶۶ پنتیوم نصب نمودم و شروع به یادگیری کردم ... و یادگیری و یادگیری و یادگیری و سپس من شگفت زده شدم

ابتدا مبانی آی ان اس و اطراف اینوکس را فرا گرفتم: چگونه اطراف را کنکاش کنم٬ پشتیبان ها را تهیه کنم٬ سامبا را راه اندزی کنم٬ و غیره. سپس یک qmail و آپاچی نصب نمودم و برنامه نویسی شل و پایتون را یادگرفتم. من یک دپارتمان اینترانتی ایجاد نمودم . لینوکس را در خانه نصب نمودم و شروع به تجربه توزیع های مختلف نمودم سر انجام از همه لینوکس ها گریزان شدم. شما می دانید این فرایند چگونه رخ می دهد: ابتدا شما با  مبانی لینوکس دست و پنجه نرم می کنید ٬ سپس هنگامیکه دوجین اطلاعات بدست آوردید ٬ لینوکس خودتان را بهینه سازی می کنید ٬ شروع به یادگیری می کنید.. از آنجا که لینوکس چیزی برای پنهان ساختن ندارد٬ می توانید به کنکاش تکنولوژی و ابزارهایی بپردازید که لینوکس را راه اندازی می کنند و آنرا رشد می دهند .

لینوکس درباره ظرفیت هاست

لینوکس چیزهایی ارائه می کند که من پیشتر ندیده بودم اگر بخواهم آن چیز جادویی را با کلمات تعریف نمایم ٬ به آن ظرفیت می  گویم: ظرفیت تغییر ٬ برای گسترش٬ برای تغییر٬ برای تعمییر چیزها٬ و البته ٬ شکستن برخی چیزها. هنگامیکه من دستگاه خودم را به یک کرنل جدید ارتقا دادم مشاهده نمودم که لینوکس در مقابل چشم من تقریبا هر روز خود را تغییر می داد. و من در حال کنترل آن بودم! من بخشی از تغییر بودم. این شادی آفرین بود.

اگر شما هم شبیه من هستید٬ پیش از آنکه تحت تاثیر لینوکس و جنبش متن باز قرار بگیرید نگاهی به آن شرکت های بزرگ در ردموند و کاپرتینو بیاندازید که سیستم های سپس-تولید را فراهم می آورند که سرانجام دقیقا آنگونه کار می کنند که شما می خواهید. اما افسوس که رویاها هرگز واقعیت پیدا نمی کنند. و هنگامیکه ما منتظر بودیم ٬ لینوکس به میان آمد. و هر چند لبه های ایراد دار بسیاری دارد٬ برخی چیزهایی را برای ما بچه هکرها فراهم می آورد که می توانیم به کمک آنها چیزهایی را که نیاز داریم در زمان انتظار برای ساخته شدن آنها ٬ ایجاد نماییم. سپس یک روز از خواب بلند می شویم تا بیابیم امروز لینوکس چه چیز جدیدی را اضافه نموده است. همچنان با خنده ٬ به هک کردن ادامه می دهیم.

لینوکس درباره مردم است

نکته بعدی که من آموختم این بود که لینوکس درباره مردم است. آیا این یک بازسازی دوباره نیست؟ لینوکس تنها یک بسته از کدهای منبع نیست. یک جمعیت است. ما برای گرفتن پاسخ های خودمان به این جمعیت اتکا می کنیم٬ و هنگامیکه با صرف وقت و زمان و تجربه خودمان شروع به کمک کردن به دیگران می کنیم بخشی از این جمعیت می شویم..

کانال های IRC یا (اینترنت مبتنی بر گفتگو) مکان بزرگی برای ملاقات مردم و اتلاف مقدار زیادی وقت است. کانال های #Stampede بر روی irc.openprojects.net تبدیل به وقت گیر رسمی من گردید. آنجا جائی است که من پرسش های خودم درباره لینوکس را می پرسم. همچنین آنجا مکانی است که برای اولین بار شروع به کمک نمودن به دیگران نمودم. این کانال به کمک کاربران ماهر لینوکس برای کمک به تازه کارانی اختصاص داده شده که بدنبال نصب یک توزیع هستند. چنانکه در IRC رایج است٬ بسیاری از کاربران با تجربه وقت خود را برای پاسخ دادن به (هنوز دیگر) تازه کاران خرج می نمایند. اما من شگفت زده ام از پاسخ دادن به سئوالات تازه کارها ٬ که نمی توانم در پاسخ ندادن به آن مقاومت نمایم. و این داستان چگونگی درگیر شدن من با stampede است. من تنها جوان دیگری بودم که دوست داشت پاسخ پرسش هایش را بیابد. البته این تنها انتهای  کمک های بشر دوستانه نبود٬ چرا که من همچنین به خودم کمک می کردم تا دانش لینوکسی خودم را در برابر دیگر کاربران با تجربه لینوکس موجود در کانال بیازمایم (بدون در نظر گرفتن گسترش دهندگان این کانال!) .

درگیر شدن

هنگامیکه مردم از من می پرسند چگونه در یک پروژه متن باز درگیر شدم٬ من به آنها می گویم برای یافتن یک مکانی که بتواند مفید باشد٬ حتی اگر این تنها کمک نمودن به پرسش های ابتدائی نو آموزان لینوکس باشد. یک آرزوی راستین برای کمک به دیگران بلیط بزرگی برای ورود به جمعیت لینوکس است چراکه این احساس در قلب همه جنبش متن باز قرار گرفته است (در داخل لینوکس). کمینه اینگونه باید باشد.

در امتداد مسیری که میروید و مردمی که بهتر از شما آنرا می دانند. و شما از آنها یاد خواهید گرفت چنانکه نوآموزان از شما یاد خواهند گرفت. همچنین این شبیه به آن است که همچنانکه شما تجربه بیشتری را با کمک دیگران می آموزید٬ قابلیت بیشتری برای کمک در راه های جدیدتری را هم پیدا می نمایید.  ممکن است برخی گسترش دهندگان پروژه هایی که در آنها قرار می گیرید چیزهایی را پیشنهاد دهند ٬ یا خود آنها برای کمک درخواست کنند. همچنین ممکن است آنها از شما دعوت نمایند که بخشی از گروه گسترش آنها شوید. اگر شما بروی کمک به دیگران تمرکز نمودید٬ آنها باید احمق باشند که شما را رها نمایند. اگر در حال کمک نمودن به بسیاری از مردن در آن بیرون باشید٬ آنرا در جمعیت متوجه خواهید شد. این شکلی بود که با stamede و من روی داد.

بتدریج من بیشتر و بیشتر با گسترش stampede درگیر شدم. دیری نپایید که من یکی از گسترش دهندگان این کانال شدم.  با همراهی های  skibum (مت وود ٬ سرگروه گسترش دهندگان این کانال) ٬ من شروع به کار بروی یک نسخه جدید از بسته های slp فرمت این نرم افزار نمودم. در ابتدا فرمت بسته slp یک .tar.bz2 با اصلاح زیرنویس آن بود که درباره نویسنده آن و نحوه کارکرد آن ٬ و دیگر چیزها توضیح می داد. این پیشنهاد دو ایراد بزرگ داشت: نت هایی که زیرنویس و درازا را ثابت نگاه می داشت براستی بزرگ نبود٬ و توانایی گسترشی هم در کار نبود (هیچ راهی برای افزودن نتی به فرمت slp در آینده وجود نداشت). آشکارا این چیزها تعمییرات بزرگی را نیاز داشتند.

در هنگام کار با گسترش دهندگان بزرگ stampede٬ من پروپوزالی از چگونگی برطرف نمودن مشکل ها نوشتم. پس آن شروع به کد نویسی ابزارهای پروتوتایپ در پایتون نمودم. فرمت جدید (نام کد slpv6) چیزی شبیه فرمت فایل IFF در آمیگا بود. این ابداع - پسین  فرمت slp به ۲ ۳۲ دسته از فیلدها٬ و یک ۲ ۳۲ بایت از طول بیشینه فیلد داده ها امکان ایجاد شدن داد . نه فقط فرمت بسیار اجراشدنی بود٬ همچنین بسیار فشرده تر از plain-text ساده برای parse کردن بود. هر دو داده text و باینری می توانستند در فرمت نگهداری گردند که برای بسیاری از اندیس ها امکان ایجاد فراهم می آورد . ایده اصلی چسباندن این ابداع - پسین به سربرگ دینامیک در انتهای فایل آرشیو بود٬ موجب تولید یک ابداع - پسین از فرمت SLP گردید که کاربران  stampede  برای سالها می توانستند از آن استفاده نمایند و بشکل همزمان این امکان وجود داشت که با فرمت های بایگانی استاندارد  UNIX آنرا نگهداری و بهینه سازی نمود .

مردم می توانند زشت ببینند

 گسترش دهندگان slpv6 بخوبی به پیش رفتند و همه گسترش دهندگان ارشد از کارکرد من خوشحال بودند. اما متاسفانه دو تن از گسترش دهندگان سطح پایینتر stampede خواهان کنترل پروژه slpv6 بودند. آنها مسیری را که من می پیمودم را دوست نداشتند ٬ و بیشتر زمان خود را خرج ایراد گیری از slpv6 جدید می نمودند. از آنجا که من بیشتر وقت خود را در گفتگوها خرج تعریف پروپوزال در برابر حملات آنها می کردم ٬ ما نمی توانستیم چیزی را برطرف کنیم. در نهایت روشن گردید که آنها ذاتا اهل بحث و گفتگو هستند و تا هنگامی که راه خودشان را نروند راضی نخواهند بود. متاسفانه برای من ٬ پروژه من بوسیله گسترش دهندگان ارشد مورد موافقت قرار گرفت. اما این گفتگو در من شروع شد و گسترش stampede را برای من بسیار ناخوش آیند نمود. اه!

هنگامی که به #stampede می رفتم تا با گسترش دهندگان سطح بالاتر گفتگو نمایم نمی توانستم این پسرها را نادیده بگیرم. و هرگاه من در کانال بودم آنها جنگجویانه وارد می شدند ٬ و تلاش می کردند کار مرا مورد آسیب قرار دهند. آنها از تکنیک های حیله گرانه ایی شبیه پرسش برای جلسات گسترش دهندگان استفاده می کردند (تنها به این خاطر که به قابلیت های کار من در مقابل گسترش دهندگان ارشد حمله نمایند). آنها تلاش می کردند با رای گیری و کارهایی نظیر آن به کنترل stampede دست یابند. البته آنها تنها زمانی اقدام به رای گیری می نمودند که اطمینان داشتند که به اندازه کافی کسانی که با آنها موافقت داشته باشند در رای گیری حضور دارند. در این میان من به گسترش slpv6 ادامه می دادم.  بدون نیاز به گفتن ٬ گسترش دهندگان ارشد به کار من علاقه داشتند و می خواستند که من ادامه دهم (بدون پشتیبانی آنها من قادر به ادامه این کار نبودم) .

درک خواسته های ناگهانی

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

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

اگر نقد و انتقادهای آنها نتوانست موثر باشد ٬ آنها درخواست یک جلسه گسترش دهندگان خواهند نمود. تقسیم نمودن تیم شما به دو بخش و ایجاد از هم پاشیدگی از قابلیت های ایشان خواهد بود. هنگامیکه فکر کنند افراد کافی در سمت خود دارند ٬ درخواست یک رای گیری می نمایند (که می دانند در آن برنده خواهند شد). اگر رای گیری را برنده نشدند٬ برای یک جلسه ملاقات گسترش دهندگان در هفته آینده درخواست خواهند داد که در آن سعی خواهند نمود گروه شما را دوباره به دو بخش تقسیم نمایند. آنها این مسیر را بدون اتمام تکرار می نمایند.

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

در رویکردی دیگر ٬ ابله ها موجب آزرن و رماندن گسترش دهندگان سازنده شما خواهند شد. پس از آن آنها چنانکه مقتدرانه  تلاش می کنند ساختار قدرت پروژه شما را دوباره سازی نمایند بروی باقی مانده گروه شما دیوانه وار کار خواهند کرد. اگر کوشش های آنها در انتها بی نتیجه ماند ٬ آنها دوباره تلاش خواهند کرد این روش ها را دوباره به هم بیاویزند و  پروژه شما را به چنگال بیاورند. آخ!

مدیریت کرد ابله ها

می توانید این آدم ها را بسادگی بشناسید. آنها کسانی هستند که هیچ کدی نمی نویسند (یا هیچ قصد و نیتی برای این کار ندارند). بجای آن زمانشان را صرف چیزهای مهمتری می نمایند. شما آن نتایج مدیریتی را می شناسید. اگر شما یک مدیر پروژه هستید ٬ بسیار آسان است که با ایشان سروکار داشته باشید. تنها به آنها بگویید نمی خواهید هیچ طرح بدون کد تولید شده در حال کار کردن را بررسی نمایید. یا اصرار نمایید که پیش از آنکه به آنها فرصت هر انتقاد سازنده ایی را بدهید ٬ ایشان بشکل سازنده ایی به پروژه حاضر کمک نمایند ٬ که شامل پیروی کردن از مدیر پروژه کنونی هم می شود٬. اگر ایشان کدهای درخوری نوشتند یا شروع به مفیدتر بودن نمودند ٬ بسیار خوب . اگر چنین نشد به ایشان بگویید از پروژه بیرون بروند. آنها پروژه را ترک خواهند نمود (اگر آنها را به اندازه کافی نادیده بگیرید) ٬ یا کارهایشان را با هم گردآوری می کنند و شروع به نوشتن کدهایی می کنند که معمولا بیشتر خوش آیند خواهد بود.

متاسفانه گسترش دهندگان ارشد stampede  توانایی مدیریت ابله ها را نداشتند. به بیان بهتر آنها به این دو نفر اجازه دادند تا من (و دیگران) را به ستوه آورند. هنگامیکه گسترش دهندگان ارشد همیشه کارهای گسترش دهندکی من را می پسندیدند ٬ این دو نفر را بیشتر کنترل نمی نمودند. بنابر این یک روز من تصمیم گرفتم که ساده تر است که توزیع خودم را بنویسم تا بیش از این با این دو احمق درگیر باشم. من از گسترش stampede استعفا دادم و شروع به نقشه کشیدن برای ساخت توزیع خودم نمودم.

هنگامیکه درباره ترک پروژه بخاطر دو گسترش دهنده سطح پایین ٬ اندکی احساس خستگی کردم در واقع آنها هنوز نشانی از اشکال های مدیریتی نشان نمی دادند. اگر گسترش دهندگان سطح بالاتر قادر به اطمینان از این که گسترش دادن stampede خوش آیند خواهد بود بودند ٬ پس من دوست نداشتم در چنان جایی باشم.

آغاز پاکیزه

هنگامیکه آنجا را ترک کردم نفسی از سر راحتی کشیدم. وای! سرانجام همه چیز آرام و ساکت شد. اکنون زمان آن بود که دریابم توزیع من بناست تا درباره چه چیزی باشد و چه چیزی به صحنه توزیع های لینوکس اضافه نماید . یکی از چیزهایی که در stampede برای من جالب بود اجرای ناکارآمد بود (با سپاس از استفاده آنها از کامپایلر pgcc به شکل تجربی بهینه سازی شده برای پنتیوم. بنابر این ابتدا تصمیم گرفتم بروی کارآیی تمرکز نمایم. همچنین همزمان با کاهش بکاربری CPU ٬ همچنین می خواستم از بزرگی بی مصرف هم کم نمایم. بسیاری از توزیع ها (بخصوص آنها که عامه پسندانه مجوز کوچک شدن داشتند)بسیاری از کارکردهایی را بشکل پیش فرض فعال می نمودند که شما پس از اینکه یک xterm را باز می نمودید مقداری از RAM را از دست می دادید. من می خواستم توزیع من گرایش و معنا ٬ و تمرکزی بروی بالاترین کارایی سخت افزاری که بروی آن اجرا می شود داشته باشد. تصمیم گرفتم بشکل همه جانبه و ابزاری برای مشکل کارایی همه کاربران راهکاری ایجاد نمایم .

اما از آنجا که تنها گسترش دهنده توزیع خودم بودم ٬ فقدان کد منبع جدی داشتم! چگونه ممکن بود چیزی را که در کالدرا یا ردهت با اشتراک گذاری ایجاد شده بود را خودم ایجاد نمایم؟ پاسخ اتوماسیون بود. شروع به نوشتن کدهایی نمودم که هرچیزی را بشکل اتوماتیک اجرا نمایند ٬ بنابر این در آزمایش های تکراری مقداری در زمان صرفه جویی می شد. پس از این همه چه چیزی را کامپیوتر بهتر و درست انجام می دهد؟

بسرعت کدهای ساده ایی را نوشتم  برای نوعی از اتوماسیون که برای احتیاج های من کافی نبود. من نیاز داشتم تا یک دستگاه کامل برای ایجاد یک توزیع لینوکس از پایه ایجاد نمایم. بشکل آزمایشی آنرا دستگاه ائی بویلد نامگذاری نمودم و شروع به کار نمود. دستگاه ebuild می توانست بشکل خودکار همه باینری های توزیع  را ایجاد نماید٬ هرچیزی بشکل خودکار از بسته بندی خارج شده و کد منبع آن کامپایل شده ٬ نصب شده و بسته بندی می شد . پس از اینکه چهارچوب ebuild شروع به کار نمود (مانند gcc و glibc و binutils و util-linux و دیگر دوستان).  از آنجا که کدهای ابتدائی من (بر پایه کدهای اولیه ایی که پیشتر در stampede نوشته بودم) و آزمودن و نصب هر بسته جدیدی که ایجاد مینمودم ٬ جعبه گسترش stampede من بتدریج به سوی دستگاه خودم تغییر جهت داد.

چند ماه بعد من یک توزیع لینوکس خودنگه دار کامل داشتم. آنرا ائی ناچ نامگذاری نمودم و نشستم و با خوشنودی لبخند زدم. اما ائی ناچ چه شد و چگونه با لینوکس جنتو درگیر شد؟ نوشتار پسین مرا پیگیری نمایید که داستان چگونگی تبدیل شدن ائی ناچ به لینوکس جنتو ٬ و بسیاری از چالش هایی را که با آنها روبرو شدم را برایتان بگویم.

خواستگاه ها

• در بخش ۲ و ۳ با ساختن یک توزیع ادامه دارد.

• برای داده های بیشتر درباره توزیع به پایگاه وب لینوکس جنتو مراجعه نمایید.

• درباره دستگاه ائی بویلد لینوکس جنتو در نوشتار دنیال ٬ بش و نمونه هایی از آن بیشتر بیاموزید .

درباره نویسنده


دنیال روبینز در آلباکائرکو در نیومکزیکو زندگی می کند. او بهینه ساز ارشد تکنولوژیهای جنتو است.٬ معمار ارشد پروژه جنتو و یک نویسنده داوطلب منتشر شده بوسیله انتشارات مک میلان: کالدرا لینوکس باز گرفته ٬ سوزه برگرفته از لینوکس و جستارهایی از سامبا. دنیال با کامپیوتر از دوره دوم تحصیلی هنگامیکه وی زبان برنامه نویسی لوگو را به نمایش گذارد و تا سرحد مرگ با پک من کار نمود آشنا شد. شاید این نشان دهد چرا وی به عنوان ناشر دیوانه الکترونیک SONY در سمت هنرمند گرافیک ارشد مشغول به کار شد. دنیال بیشتر زمان خود را با همسرش ماری و دختر تازه به دنیا آمده اش حادثه می گذراند . می توانید با دنیال از راه رایانامه drobbins AT gentoo.org ارتباط داشته باشید.