بایناری یا پکیج منبع: از کدام یک باید استفاده کنید؟

بایناری یا پکیج منبع: از کدام یک باید استفاده کنید؟

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

کدام روش مناسب شماست؟ پکیج بایناری یا نصب از منبع؟

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

پکیج بایناری چیست؟ 

نصب کردن برنامه ها روی لینوکس معمولاٌ با نصب کردن آن روی ویندوز متفاوت است. به جای این که اینستالر را از یک وبسایت خریداری کنید فایل ها از یک مخزن برنامه بازیابی می شوند که معمولاٌ برای سیستم عامل شما طراحی شده اند. 

بایناری پکیج


فایل ها برای برنامه های جداگانه در فرمت آرشیو ذخیره می شوند. این کار همه چیز را در یک فایل قرار می دهد تا دسترسی به آن ساده تر شود. برای مثال دبیان از فرمت DEB استفاده می کند تا برنامه ها را ذخیره کند. به این بسته ها پکیج های بایناری می گویند. 
نصب نیازمند یک برنامه خاص برای اکسترکت کردن این فایل ها و قرار دادن آن ها روی کامپیوتر است که کار پکیج منیجر شماست ( برای مثال APT, Yum و غیره). پکیج منیجر کارهای جالب دیگری نیز از جمله ردیابی فایل هایی که نصب کرده اید و مدیریت به روز رسانی نرم افزار را انجام می دهد. 

پکیج ها از کجا می آیند؟ 

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

نصب " از منبع" چیست؟ 

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

نصب از منبع


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

میک


ابزارهای خاص باعث می شوند که روند نصب خودکار شود. روی دسکتاپ های لینوکس این امر معمولاً در فرم یک برنامه خط فرمان به نام میک (make) می آید. کد منبع نوشته شده در زبان های مختلف نیاز به کامپایلرها و فرمان های خاص برای تغییر آن ها به بایناری دارند. برنامه میک این پروسه را خودکار می کند. 
برای این کار برنامه ها یک makefile یا فایل میک می سازند که به میک می گوید چه کاری باید انجام داد و کامپایل کند. این روزها این کار معمولاً به صورت خودکار با نرم افزارهای مخصوصی مانند CMake صورت می گیرد. اینجاست که کار کاربر شروع می شود. چرا که از اینجا می توانند دقیقاٌ مشخص کنند که چه قابلیت هایی را دوست دارند در نرم افزار خود کامپایل کنند. 

نمایش سریع

برای مثال فرمان زیر یک فایل پیکربندی با استفاده از CMake می سازد. فایل ساخته شده به برنامه میک می گوید که فقط بخش Writer کالیگرا را کامپایل کند. 
cmake -DPRODUCTSET=WORDS -DCMAKE_INSTALL_PREFIX=$HOME/kde/inst5 $HOME/kde/src/calligra
وقتی که این کار را کردید اجرای ابزار میک برای کامپایل و کپی نتایج روی کامپیوتر است. از این روش این کار را انجام دهید: 
make
make install
در حالی که این الگویی عمومی برای کامپایل برنامه هاست راه های زیاد دیگری برای نصب پکیج های منبع وجود دارد. جنتو لینوکس برای مثال روشی درون خود برای این کار دارد که این پروسه را سریع تر و آسان تر می کند. در کنار آن ساخت پکیج های بایناری به چند قدم بیشتر از فرمان های بالا نیاز دارد. 
مزایای استفاده از پکیج های بایناری
اگر از لینوکس استفاده می کنند این احتمال وجود دارد که برنامه هایی که نصب کرده اید از قبل کامپایل شده باشند. این روزها این کار متداول تر از استفاده از پکیج های منبع است. این اتفاق به چند دلیل می افتد: 


مدیریت ساده تر

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

پکیج منیجر


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

ثبات بهتر

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

دبیان


برای مثال، پکیج هایی در مخازن دبیان وجود دارد که قابلیت تعمیر دارند. این کار حتی می تواند شامل برنامه های بزرگ مانند مرورگرهای وب هم بشود. 
علاوه بر آن پکیج ها معمولاٌ باید از قوانین سختی مطابقت کنند تا روی سیستم شما اجرا شوند. هردو دبیان و اوبونتو و دیگر سیستم عامل های لینوکس قوانین و سیاست های خود را دارند. 
بعضی از برنامه ها به نسخه های مختلف یک نرم افزار متکی هستند تا اجرا شوند. مخازن پکیج ها همه ی تلاش خود را می کنند تا این مشکل حل شود، پس لازم نیست که نگران آن باشید. 

مزایای کامپایل پکیج های منبع 

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


آخرین نسخه نرم افزار

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

انتخاب کنید

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

FFmpeg


برای مثال، به FFmpeg، که یک مبدل صوتی و تصویری مبتنی بر خط فرمان است نگاه کنید. به صورت پیش فرض قابلیت های خیلی زیادی دارد که شاید حتی به بعضی از آن ها فکر هم نکرده باشید. برای مثال JACK audio روی FFmpeg موجود است در حالی که این نرم افزار معمولاٌ فقط در محیط های تولیدی یافته می شود. 
کامپایل FFmpeg به شما اجازه می دهد چیزهایی را که لازم ندارید از آن حذف کنید تا سبک تر شود و با نیازهای شما همسان شود. این کار برای برنامه های سنگین تر نیز انجام می شود. 
وقتی که منابع کم می شوند حذف قابلیت ها می تواند باعث سبک تر شدن آن ها بشوند. جای تعجب نیست که سیستم عامل کروم که روی کامپیوترهای مدل پایین موجود است مبتنی بر جنتو لینوکس است. جنتو که مبتنی بر منبع است نرم افزارها خیلی زیادی را کامپایل می کند و باعث می شود که سبک تر و سریع تر شوند. 

چرا نباید با هردو نصب کنیم؟

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

با کانال تلگرام فیسیت همراه باشید

مارال رضایی

مارال رضایی

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


0 نظر درباره‌ی این پست نوشته شده است.

ثبت نظر