نحوه کامپایل بسته های نرم افزاری در لینوکس

یکی از سخت‌ترین تنظیمات برای کاربرانی که از ویندوز(Windows) به لینوکس(Linux) تغییر می‌کنند ، این ایده است که هر بیت نرم‌افزاری که می‌خواهید نصب کنید برای شما آماده نیست. بر خلاف کاربران ویندوز(Windows) ، که (در بیشتر موارد) نرم افزار را در یک نصب کننده EXE یا فایل ZIP از پیش بسته بندی می کنند، کاربران (ZIP)لینوکس(Linux) اغلب مجبورند بسته های نرم افزاری خود را کامپایل کنند.

اگر می خواهید بدانید که چگونه بسته های نرم افزاری را در لینوکس(Linux) کامپایل کنید، باید چند مرحله را دنبال کنید. شما باید کد منبع را دانلود کنید، دستور پیکربندی را اجرا کنید، بسته های وابستگی مورد نیاز را نصب کنید، سپس دستور make را اجرا کنید تا کامپایل بسته خود را شروع کنید. در اینجا نحوه انجام همه این کارها در یک سیستم عامل مبتنی بر لینوکس آورده شده است.(Linux)

دانلود فایل های منبع(Downloading Source Files)

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

با این حال، به احتمال زیاد شما در حال تلاش برای کامپایل یک بسته نرم افزاری روی لینوکس(Linux) از یک توسعه دهنده دیگر هستید. سایت‌های اشتراک‌گذاری کد محبوب مانند Github به شما امکان می‌دهند کد منبع(view and download the source code) بسته‌ها را مشاهده و دانلود کنید، سپس می‌توانید آن‌ها را کامپایل کنید. می‌توانید از GIT ، سیستم کنترل نسخه محبوب، برای دانلود فایل‌های منبع در رایانه شخصی خود استفاده کنید.

همچنین می توانید کد منبع را از پروژه های منبع باز مانند VLC به طور مستقیم دانلود کنید. اینها معمولاً در یک فرمت فایل فشرده(compressed file format) مانند TAR.GZ هستند که می توانید با استفاده از دستور (TAR.GZ)tar آن را در ترمینال استخراج کنید . برای مثال، اجرای دستور tar -xzvf source.tar.gz یک فایل tarball به نام source.tar.gz را استخراج می کند.

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

نصب Build-Essential در لینوکس(Installing Build-Essential On Linux)

ابزارها و نرم افزارهای موجود در بسته build-essential برای هر نوع نرم افزاری که در سیستم عامل های لینوکس(Linux) کامپایل می شود، صرف نظر از زبان برنامه نویسی کد منبع شما، مورد نیاز است. 

به عنوان یک بسته ضروری، build-essential (یا بسته هایی با نام مشابه) باید در مخزن نرم افزار برای توزیع لینوکس شما موجود باشد. (Linux)معادل build-essential در توزیع های مبتنی بر لینوکس (Linux)Arch Base-devel نامیده می شود که شامل بسیاری از ابزارهای مشابه است.

بسته به توزیع لینوکس(Linux) شما، دستورالعمل‌های نصب build-essential نیز متفاوت خواهد بود. برای مثال، در سیستم‌عامل‌های مبتنی بر اوبونتو(Ubuntu) و دبیان، می‌توانید build-essential را با باز کردن یک پنجره ترمینال و تایپ sudo apt install build-essential نصب کنید(sudo apt install build-essential) .

نصب build-essential وابستگی های آن را نیز مانند بسته g++ نصب می کند. هنگامی که این فرآیند کامل شد، می توانید قبل از کامپایل بسته منبع لینوکس خود را پیکربندی کنید.(Linux)

دستور Configure را اجرا کنید(Run The Configure Command)

کد منبع برای بسته های اصلی معمولاً حاوی یک اسکریپت پیکربندی است. (configure)اجرای این اسکریپت توزیع لینوکس(Linux) شما را برای بسته های ضروری که کد منبع شما برای اینکه بتواند به درستی کامپایل کند به آنها نیاز دارد بررسی می کند.

برای اجرای اسکریپت پیکربندی، پوشه کد منبع استخراج شده خود را با استفاده از دستور cd وارد کنید. از آنجا، ./configure را در ترمینال تایپ کنید و enter را فشار دهید تا اجرا شود.

اگر اسکریپت پیکربندی یک بسته گم شده را شناسایی کند، در پایان اسکریپت به شما اطلاع می دهد که چه کاری انجام دهید. به عنوان مثال، قبل از کامپایل کردن پخش کننده رسانه VLC ، اسکریپت پیکربندی نشان داده شده در بالا نشان داده است که زبان برنامه نویسی Lua نصب نشده است.(Lua)

در برخی موارد، شما همچنان می توانید بسته های نرم افزاری را کامپایل و پیکربندی کنید، حتی اگر اسکریپت پیکربندی بسته یا ویژگی گم شده ای را شناسایی کرده باشد. اسکریپت پیکربندی برای VLC (نشان داده شده در بالا) راه حلی را برای بسته های زبان برنامه نویسی Lua از دست رفته ارائه کرده است و به شما پیشنهاد می کند دوباره آن را با پرچم (Lua)–disable-lua اجرا کنید تا آن را دور بزنید.

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

اگر اسکریپت پیکربندی بدون خطا (یا فقط جزئی) کامل شده باشد، فایل تنظیمات پیکربندی شده برای(makefile) بسته شما ایجاد خواهد شد. این دستورات را برای کامپایل بسته شما ایجاد می کند و به شما امکان می دهد تا به مرحله نهایی کامپایل نرم افزار بروید. 

بسته‌های وابستگی گمشده را نصب کنید(Install Missing Dependency Packages)

اسکریپت پیکربندی به کمک بسته هایی که توزیع لینوکس(Linux) شما نیاز دارد تا بتواند بسته نرم افزاری جدید خود را به درستی کامپایل و نصب کند، شناسایی می کند.

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

هنگامی که می دانید بسته گم شده چیست، از نصب کننده بسته برای توزیع لینوکس خود برای نصب آن استفاده کنید. (Linux)به عنوان مثال، در سیستم عامل های مبتنی بر اوبونتو و دبیان، اجرای (Ubuntu)sudo apt install package-name یک بسته را نصب می کند.

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

نحوه کامپایل در لینوکس(How to Compile on Linux)

بسته build-essential حاوی make است، ابزاری خودکار که برای شروع کامپایل کد منبع شما در نرم افزاری که می توانید روی رایانه شخصی خود اجرا کنید، استفاده می شود. از فایل makefile استفاده می کند که توسط دستور (makefile )configure قبلی پیکربندی و ایجاد شده است ، که حاوی دستورالعمل های خاص مورد نیاز برای کامپایل بسته شما است.

برای شروع کامپایل کد منبع خود، یک ترمینال را باز کنید و از دستور cd برای وارد کردن پوشه صحیح استفاده کنید. وقتی آماده شدید، make را(make) تایپ کنید تا کامپایل بسته شما شروع شود.

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

برای این کار sudo make install را(sudo make install) در ترمینال تایپ کنید. بسته بر روی کامپیوتر لینوکس(Linux) شما نصب می شود و آماده باز کردن و استفاده از آن مانند هر نرم افزار دیگری است.

نصب نرم افزار جدید در لینوکس(Installing New Software On Linux)

دانستن نحوه کامپایل بسته های نرم افزاری در لینوکس(Linux) می تواند به شما در نصب نرم افزارهای کمتر شناخته شده کمک کند. سیستم عامل های بزرگی مانند اوبونتو(Ubuntu) و دیویان(Devian) دارای مخازن نرم افزاری بزرگی هستند که در دسترس کاربران است، بنابراین اگر نمی خواهید نرم افزار خود را کامپایل کنید، سعی کنید به جای آن نرم افزار جدید را با استفاده از مدیر بسته پیدا کنید و نصب کنید.

اگر از Windows نقل مکان می‌کنید، می‌توانید (Windows)نرم‌افزار Windows را روی لینوکس(install Windows software on Linux) نیز نصب کنید تا به استفاده از برنامه‌های فقط ویندوز مورد علاقه خود ادامه دهید.



About the author

من یک کارشناس باتجربه ویندوز 10 و 11/10 هستم که هم در مرورگرها و هم در برنامه های گوشی های هوشمند تجربه دارم. من بیش از 15 سال مهندس نرم افزار هستم و با تعدادی از شرکت های بزرگ از جمله مایکروسافت، گوگل، اپل، یوبی سافت و غیره کار کرده ام. من همچنین توسعه ویندوز 10/11 را در سطح کالج تدریس کرده ام.



Related posts