کاربران لینوکس دو راه اصلی برای نصب نرم افزار دارند: استفاده از یک بسته از پیش ساخته شده یا کامپایل از منبع. در اینجا چیزی است که شما باید بدانید.
دو روش کلی برای نصب برنامه ها در لینوکس وجود دارد. شما یا از یک بسته از پیش ساخته شده استفاده می کنید یا خودتان برنامه را کامپایل می کنید. این روزها، اولی معمولاً به طور پیش فرض برنده می شود، اما مواقعی وجود دارد که ممکن است بخواهید از کد منبع کامپایل کنید.
بسته های باینری چیست؟
نصب برنامه ها در لینوکس معمولاً با روش سنتی نصب نرم افزار در ویندوز کاملاً متفاوت است. بهجای دانلود نصبکننده از وبسایت فروشنده، فایلها از مخزن برنامههایی میآیند که معمولاً برای توزیع لینوکس شما طراحی شدهاند. شما با استفاده از یک مدیر بسته لینوکس یا یک فروشگاه برنامه به این مخزن دسترسی دارید.
فایل هایی که برنامه های موجود در این مخازن را تشکیل می دهند در قالب آرشیو هستند. این همه چیز را در یک فایل واحد برای دسترسی و توزیع آسان جمع می کند. به عنوان مثال، دبیان از فرمت DEB برای ذخیره و توزیع برنامه ها استفاده می کند. این بسته ها بسته های باینری نامیده می شوند.
نحوه خواندن کد باینری
برای استخراج این فایلها و نصب آنها بر روی رایانه، معمولاً مدیر بسته یا فروشگاه برنامه، به یک برنامه خاص نیاز دارید. این ابزارها همچنین عملکردهای مفید دیگری مانند پیگیری فایلهایی که نصب کردهاید و مدیریت بهروزرسانیهای نرمافزار را انجام میدهند.
فرمتهای بسته جدیدتر مانند Flatpak و Snap در نسخههای مختلف لینوکس کار میکنند، اما همچنان از برنامههای باینری از پیش کامپایل شده تشکیل شدهاند. هر دو به یک فروشگاه برنامه گرافیکی یا مدیر بسته مبتنی بر خط فرمان برای نصب نیاز دارند.
کد منبع چیست؟
همه نرم افزارها شامل خطوط متنی هستند که به کد منبع معروف هستند و به زبان های برنامه نویسی خاصی مانند C یا C++ نوشته شده اند. معمولاً نمیتوانید این کد منبع را در یک آرشیو جمع کنید و آن را یک بسته بنامید. این خطوط باید به زبانی ترجمه شوند که رایانه شما بتواند آن را بفهمد و اجرا کند.
این فرآیند کامپایل نامیده می شود و نتیجه نهایی فایل های باینری ایجاد می کند که رایانه شما می تواند اجرا کند. تفاوت بسته ها و نرم افزارها در این است که باینری های نرم افزار به همراه موارد دیگری مانند فایل های پیکربندی در یک بسته ذخیره می شوند.
نصب “از منبع” چیست؟
نصب یک برنامه “از منبع” به معنای نصب یک برنامه بدون استفاده از مدیر بسته است. شما کد منبع را کامپایل کرده و به جای آن باینری ها را در رایانه خود کپی می کنید.
بیشتر اوقات، میتوانید کد منبع پروژه را از سرویسهای میزبانی مانند GitHub، GitLab یا Bitbucket دانلود کنید. برنامه های بزرگتر حتی ممکن است کد منبع را در یک وب سایت شخصی میزبانی کنند. کد معمولاً در قالب آرشیو (همچنین به عنوان بسته منبع شناخته می شود) فشرده می شود.
مجموعه ای ویژه از ابزارها به خودکارسازی فرآیند ساختمان کمک می کند. در دسکتاپ های لینوکس، این اغلب به شکل یک برنامه خط فرمان به نام make است. کد منبع نوشته شده به زبان های مختلف به کامپایلرها و دستورات خاصی نیاز دارد تا آنها را به باینری تبدیل کند. برنامه make این فرآیند را خودکار می کند.
برای اینکه این اتوماسیون کار کند، برنامه ها Makefile را به make ارائه می کنند که به آن می گوید چه کاری انجام دهد و کامپایل کند. این روزها Makefile معمولاً به طور خودکار توسط نرم افزارهای خاصی مانند CMake تولید می شود. اینجاست که وارد میشوید. از اینجا، میتوانید مشخص کنید که دقیقاً چه ویژگیهایی را میخواهید در نرمافزار خود کامپایل کنید.
ساختمان “از منبع” مثال
به عنوان مثال، دستور زیر با استفاده از CMake یک فایل پیکربندی برای مجموعه آفیس Calligra ایجاد می کند. فایل ایجاد شده به برنامه make می گوید که فقط جزء Writer Calligra را کامپایل کند.
cmake -DPRODUCTSET=WORDS -DCMAKE_INSTALL_PREFIX=$HOME/kde/inst5 $HOME/kde/src/calligra
پس از انجام این کار، تنها کاری که شخص باید انجام دهد این است که ابزار make را اجرا کند تا نتایج را در رایانه خود کامپایل و کپی کند. این کار به روش زیر انجام می شود:
make
make install
در حالی که این الگوی کلی برای کامپایل برنامه ها است، راه های زیادی برای نصب بسته های منبع وجود دارد. به عنوان مثال، جنتو لینوکس یک روش داخلی برای مدیریت این موضوع دارد که این فرآیند را بسیار سریعتر و آسانتر میکند. اما ساخت بسته های باینری چند مرحله بیشتر از دستورات بالا نیاز دارد.
مزایای استفاده از بسته های باینری
اگر از لینوکس استفاده میکنید، احتمالاً شخصی نرمافزاری را که نصب کردهاید از پیش کامپایل کرده است. این امر بسیار رایج تر از استفاده از بسته های منبع شده است. اما چرا؟
1. مدیریت نسخه های باینری آسان تر است
بسته های باینری شامل موارد بسیار بیشتری از فایل های نصب کامپایل شده هستند. آنها همچنین اطلاعاتی را ذخیره می کنند که مدیریت بسته شما را برای پیگیری همه برنامه های شما آسان می کند. برای مثال، فایلهای DEB (فرمت بسته برای دبیان و مشتقات دبیان) همچنین حاوی اطلاعات مهمی مانند نرمافزار دیگری است که برنامه برای اجرا نیاز دارد و نسخه فعلی آن.
این کار نصب بستهها را بسیار آسانتر میکند، زیرا نیازی نیست نگران فایلهای دیگری باشید که برای اجرای موفقیتآمیز یک برنامه نیاز دارید. مدیر بسته شما می تواند آن اطلاعات را از خود بسته بخواند و تمام وابستگی های لازم را به طور خودکار دانلود کند.
هنگام نصب برنامه ها از منبع، مگر اینکه کد را در یک بسته باینری خودش کامپایل کنید، مدیریت آن نرم افزار را بر عهده خواهید داشت. شما باید به خاطر داشته باشید که چه برنامه های دیگری برای کار کردن آن نیاز دارید و خودتان آنها را نصب کنید.
2. نسخه های باینری ثبات را بهبود بخشیده اند
افرادی که مخازن را برای مدیر بسته شما نگهداری می کنند تمایل دارند باینری ها را برای مشکلات آزمایش کنند و تمام تلاش خود را برای رفع مشکلات ظاهر شده انجام می دهند. این می تواند به بهبود پایداری منجر شود، زیرا نگهبانان بسته ممکن است چیزی را ببینند که شخصی که از منبع نصب کرده است ممکن است آن را از دست بدهد.
بستههای پلاس معمولاً باید از یک سری قوانین سختگیرانه پیروی کنند تا اطمینان حاصل شود که روی سیستم شما اجرا میشوند. برای مثال، دبیان و اوبونتو، مانند بسیاری از توزیعهای دیگر لینوکس، یک دفترچه راهنمای سیاست دارند.
برخی از برنامهها نیز برای اجرا به نسخههای مختلف وابستگی نرمافزاری مشابهی متکی هستند. مخازن بسته تمام تلاش خود را برای حل این تضادها انجام می دهند تا مجبور نباشید.
مزایای کامپایل بسته های منبع
نصب برنامه ها از منبع کاری نیست که همه باید انجام دهند، زیرا در صورت استفاده از بسته های باینری، به طور کلی نگهداری از رایانه شخصی آسان تر است. با این حال، هنوز مزایایی برای استفاده از این روش کمی پیچیده تر برای نصب برنامه ها وجود دارد.
1. کد منبع جدیدترین نرم افزار را ارائه می دهد
یکی از معایب قابل اطمینانتر کردن برنامهها این است که بهبود و اصلاح آن به زمان نیاز دارد. گاهی اوقات یک باینری در دسترس است، اما کد منبع دیرتر است. برای افرادی که جدیدترین و بهترین ها را می خواهند، حتی ممکن است در ازای نرم افزار جدیدتر، کمی بی ثباتی را ترجیح دهند.
در حالی که سیستم عامل های لینوکس وجود دارند که این نیاز را بدون کامپایل کردن برنامه برآورده می کنند، اما دارای چند اشکال هستند. برای مثال، نرمافزاری که اغلب نسخههای بسته را منتشر نمیکند، بهروز نگهداشتن آن در مخزن سختتر از نصب از منبع است.
این به این دلیل است که بسته های باینری معمولاً از نسخه های رسمی برنامه ها ساخته می شوند. به این ترتیب، تغییرات بین این نسخه ها معمولاً در نظر گرفته نمی شود. با کامپایل نرم افزار خود از منبع، می توانید بلافاصله از چنین تغییراتی بهره مند شوید.
همچنین این امکان وجود دارد که سیستم عامل لینوکس شما نرم افزاری را که می خواهید از قبل برای شما ساخته شده نداشته باشد. در گذشته، نصب آن از منبع تنها گزینه شما بود. قالب های بسته جهانی این را تغییر داده اند. بسته های Flatpak و Snap نیز عموماً به روز رسانی ها را بسیار سریعتر از مخازن سیستم دریافت می کنند. اما هنوز مواقعی وجود دارد که کامپایل تنها راه دریافت کالا است.
2. شما می توانید انتخاب و انتخاب کنید
یکی دیگر از مزایای استفاده از بسته های منبع این است که کنترل بیشتری بر برنامه هایی که نصب می کنید به دست می آورید. هنگام نصب از یک مخزن باینری، شما در راه هایی که می توانید بسته های خود را سفارشی کنید محدود شده اید.
به عنوان مثال، به FFmpeg، مبدل صوتی و تصویری مبتنی بر خط فرمان نگاه کنید. بهطور پیشفرض، دارای تعداد زیادی ویژگی است که ممکن است هرگز برخی از آنها را لمس نکنید. به عنوان مثال، پشتیبانی صوتی JACK در FFmpeg در دسترس است، حتی اگر این نرم افزار معمولاً فقط در محیط های تولید استفاده می شود.
کامپایل FFmpeg به شما این امکان را می دهد که چیزهایی را که نمی خواهید حذف کنید و سبک تر و متناسب با نیازهای خود قرار دهید. همین امر در مورد سایر برنامه های سنگین وزن نیز صدق می کند.
وقتی منابع کمیاب هستند، حذف ویژگیها میتواند راهی عالی برای کاهش بار باشد. جای تعجب نیست که ChromeOS، که در بسیاری از رایانه های ارزان قیمت یافت می شود، مبتنی بر لینوکس جنتو است. جنتو که مبتنی بر منبع است، بسیاری از نرم افزارهای خود را گردآوری می کند و به طور بالقوه باعث می شود این سیستم ها بسیار سبک تر اجرا شوند.
چرا از هر دو بسته باینری و منبع استفاده نمی کنید؟
در حالی که احتمالاً نمی خواهید بسته ها را به صورت روزانه کامپایل کنید، این نکته مفیدی است که باید در نظر داشته باشید. با این حال، با فرمتهای بسته جهانی جدید که از سایتهایی مانند Snap Store و Flathub در دسترس هستند، برای دریافت جدیدترین نرمافزار، کمتر نیاز به ساخت از منبع خواهید داشت.