<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>نوشته های محسن نصیرپور</title><link>https://virgool.ir/feed/@navidjangy</link><description></description><language>fa</language><pubDate>2026-11-11 21:52:14</pubDate><image><url>https://virgool.ir/images/default-avatar.jpg</url><title>محسن نصیرپور</title><link>https://virgool.ir/@navidjangy</link></image><item><title>مختصری پیرامون کامپایل پکیج‌های لینوکس از سورس کد</title><link>https://virgool.ir/@navidjangy/مختصری-پیرامون-کامپایل-پکیجهای-لینوکس-از-سورس-کد-zop4qik9lhap</link><description>پیش از آن که سراغ اصل مطلب برویم، لازم است اندکی پیرامون ضرورت آموختن و مهارت داشتن در این زمینه را توضیح دهیم. برخلاف محیط ویندوز که ابزار و نرم‌افزارها همگی در قالب exe به کاربر ارائه می‌شوند و نصب و راه‌اندازی نسبتاً ساده‌ای در انتظار کاربر است؛ کاربران لینوکس اکثر اوقات (مخصوصاً برای استفاده از پکیج‌های کمتر شناخته‌شده) باید خود پکیج‌های موردنظرشان را کامپایل و نصب کنند.مراحل لازم برای این کار عبارت اند از دانلود سورس کد پکیج مورد نظر (یا نوشتن سورس کد!)، اجرای دستور configure، نصب پکیج‌های وابستۀ موردنیاز و در انتها دستور make برای شروع کامپایل. در ادامه، هر یک از این گام‌‌ها به تفصیل توضیح داده ‌شده‌اند:اولین گام: سورس کدپیش از هر چیز، برای شروع نیاز به سورس کدی داریم که قرار است کامپایل کنیم. حال این کد ممکن است توسط خود برنامه‌نویس نوشته شده و حال قصد کامپایل آن را دارد و یا از مخازن کد دیگر (مثل گیت‌هاب) قصد کامپایل پکیجی را داریم که توسط دیگران به اشتراک گذاشته شده‌است. برای مقاصد آموزشی این راهنما، سورس کد مدیاپلیر vlc به صورت فشرده دانلود و اکسترکت شده‌است. پس از به دست‌آوردن سورس کد پکیج موردنظر، وارد فاز بعدی می‌شویم.سورس کد موردنظر دانلود و استخراج شدهدومین گام: نصب build-essentialابزار و نرم‌افزارهایی که در پکیج build-essential تعبیه شده‌اند برای هرگونه کامپایل نرم‌افزار در سیستم‌های لینوکسی لازم است. اگرچه که نام این پکیج در هر یک از توزیع‌های لینوکس ممکن است متفاوت باشد، امّا در ubuntu به همین نام شناخته می‌شود. برای نصب این پکیج روی ubuntu، در ترمینال دستور sudo apt install build-essential را وارد می‌کنیم.نصب پکیج build-essentialنصب این پکیج هم‌چنین پکیج‌های وابستۀ آن (هم‌چون g++) را نیز نصب خواهد کرد. پس از اتمام نصب این پکیج، می‌توان به مرحلۀ بعد قدم گذاشت.اتمام نصب پکیج build-essentialسومین گام: اجرای دستور configureتقریباً سورس کد همۀ پکیج‌ها اسکریپتی به نام configure در خود گنجانده‌اند که اجرای این اسکریپت، پکیج‌های موردنیاز برای کامپایل این سورس کد روی توزیع ما را مشخص می‌کند. برای اجرای این مرحله، وارد دایرکتوری سورس کد شده و دستور ./configure را وارد می‌کنیم.اجرای دستور configure/.اتمام دستور configureپس از اتمام اجرای این دستور، در انتها اگر پکیج موردنیازی روی سیستم یافت نشود، به کاربر اطلاع می‌دهد. اگرچه که در بعضی موارد حتی در صورت فقدان پکیجی (اگر داشتن آن پکیج ضروری نباشد) می‌توان با غیر فعال‌ کردن آن پکیج کامپایل را ادامه داد. برای مثال، اجرای اسکریپت vlc خطای یافت نشدن پکیج lua را می‌دهد که دو راه برای ادامۀ راه پیش‌رو قرار دارد؛ نصب پکیج‌های نصب نشده و لازم یا نادیده گرفتن این خطا در صورت امکان آن. در این مثال، می‌توان با دستور sudo apt install lua5.1 پکیج مورد نیاز را نصب کرد و یا به ادامۀ همان دستور ./configure پرچم -disable-lua را اضافه کرد.نصب یکی از پکیج‌های موردنیاز که روی سیستم نصب نیستپس از اتمام این مرحله و رفع خطاهای داده شده، فایلی به نام makefile برای پکیج موردنظر ما ساخته می‌شود که برای گام آخر کامپایل لازم است.فایل Makefile ایجاد شدههمان‌طور که می‌بینیم پس از نصب یا نادیده گرفتن پکیج‌هایی که نداریم و اجرای دوبارۀ اسکریپت configure، خطایی داده نشده و فایل Makefile در دایرکتوری سورس کد ساخته می‌شود.گام نهایی: کامپایل در لینوکساجرای دستور makeپکیج build-essential که پیشتر نصب شد حاوی دستوری به نام make است که پس از صدا زده شدن، از طریق همان فایل makefileای که در مرحلۀ قبل ایجاد شد، کامپایل را آغاز می‌کند. پس از گذشت زمانی و اتمام پروسۀ کامپایل، یک فایلی به نام install در دایرکتوری ایجاد می‌شود که با اجرای دستور sudo make install روند نصب آغاز می‌شود.اجرای دستور make installدر انتها می‌بینیم که نرم‌افزار موردنظر نصب شده‌است.</description><category>محسن نصیرپور</category><author>محسن نصیرپور</author><pubDate>Fri, 20 Nov 2020 23:55:46 +0330</pubDate></item><item><title>طراحی توزیع لینوکس مبتنی بر اوبونتو (پروژۀ درس سیستم عامل)</title><link>https://virgool.ir/@navidjangy/طراحی-توزیع-لینوکس-مبتنی-بر-اوبونتو-پروژۀ-درس-سیستم-عامل-hv7yeurjiuq1</link><description>در این نوشته سعی بر آن شده که تصمیمات پیرامون طراحی توزیع انتخابی برای درس سیستم‌ عامل ثبت شده و دلایلی برای این انتخاب‌ها ذکر شود.سیستم پایه انتخابی برای پیش‌برد کار لینوکس اوبونتو است. توزیع محبوب لینوکس که مطالب و اطلاعات پیرامون آن به‌سادگی یافت می‌شود و یکی از معتبرترین و همه‌کاره‌ترین توزیع‌های لینوکسی است. قصد بر آن است که توزیعی برای یک دانشجوی کامپیوتر توسعه داده شود که حداقل‌های یک سیستم بر پایه لینوکس را داشته و از اضافات خودداری شود و حجم فایل ISO نصبی توزیع در انتهای کار کم و به‌صرفه.بهترین مدیر بسته‌ای که در حال حاضر قابل‌انتخاب است، APT Suit است. اوّل به خاطر این‌که خودش وابستگی‌‌ها را حل می‌کند؛ دوم آن‌که قابلیت افزودن مخازن شخص ثالث را دارد. در واقع برای مقاصد دانشجویی، چیزی نیست که از یک مدیربسته انتظار داشته باشیم و APT نداشته باشد. اگر چه که در بین مدیربسته‌ها، هستند مدیربسته‌هایی که چنین خاصیتی دارند، APT دارای این خصوصیت است که با سیستم‌های دبیانی سازگار است و چون توزیع پایه اوبونتوست، پس همین APT بهترین گزینه است.از بین مدیرفایل‌هایی که در این لینک (https://en.wikipedia.org/wiki/Comparison_of_file_managers) به آن‌ها اشاره شده‌است، Dired، Dolphin، Double Commander، Gnome Commander، Krusader و WinSCP تنها مواردی هستند که مالکیت آنها خصوصی نیست و در دو سال اخیر هم به‌روزرسانی برای آن‌ها ارائه شده‌است.در این بین، WinSCP روی لینوکس اجرا نمی‌شود.حالا محدودیت‌های نمایشی این 6 مدیر را بررسی می‌کنیم:1. Dired: دید آیکونی، دید ستونی، گروه‌بندی و وابستگی محتوایی را نشان نمی‌دهد.2. Dolphin:فقط وابستگی محتوایی را نشان نمی‌دهد.3. Double Commander:هیچ محدودیتی ندارد!4. GNOME Commander:نمایش آیکونی، نمایش ستونی، نمایش شصتی، گروهبندی و وابستگی محتوایی را نشان نمی‌دهد.5. Krusader: فقط گروه‌بندی را ندارد.اما از آنجا که Double Commander، تعداد قابل‌توجهی از پروتکل‌های شبکه را پشتیبانی نمی‌کند، گزینۀ خوبی نیست. مثلا nfs را پشتیبانی نمی‌کند. بین این پروتکل‌ها، با در نظر گرفتن همۀ مقایسه‌ها، Dolphin در مجموع از وضعیت بهتری برخوردار است. پس به عنوان مدیر فایل از Dolphin استفاده می‌کنیم.نمایی از مدیرفایل Dolphinدسکتاپ GNOME 3 یک میزکار پیش‌فرض اوبونتو 18.04 است؛ بنابراین با نصب سیستم‌عامل شما همراه است. پروژه GNOME به ویژگی‌های مختلف این دسک‌تاپ اشاره دارد؛ به‌عنوان مثال، سادگی استفاده. با توجه به جزئیات طراحی شده، برای کاربرانی که اسناد را با استفاده از خدمات آنلاین ذخیره می‌کنند ، توصیه می‌شود.شباهت تجربۀ کاربری به ویندوز یا اندروید: به هردو شباهت دارد امّا شباهت نسبتاً بیشتری به ویندوز دارد. برای هر شخصی (شامل دانشجوی کامپیوتر) برتری میزکار به سادگی و کاربردی بودن آن است؛ مثلاً محیط ویندوز این سادگی را تا حدودی به ارمغان می‌آورد.افزونه یا دسک‌لت: تنوع زیاد افزونه یا دسک‌لت‌ها به یک دانشجوی کامپیوتر، کمک زیادی می‌کند.در Gnome‌ افزونه‌ها و دسک‌لت‌ها تا حدّ خوبی از تنوّع بالایی برخوردارند.کاربرپسندی: ‌این بستگی به این دارد که «کاربران» چه کسانی هستند. برای هدف ما که دانشجوی‌های کامپیوتر است، رابط کاربری اوبونتو بسیار تمیز و کاربرپسند است. شما به منابع کمتری و یک جامعه خوب نیاز دارید تا در صورت بروز هرگونه مشکل به شما کمک کند.حال ، اگر دانشجوی CS هستید یا کسی که مایل به یادگیری اوبونتو است، برای شما آسان است. شما عملیات کامندلاین را خواهید آموخت (CL مهم‌ترین چیز در هر لینوکس است. اگر هیچ دستور اساسی در این مورد نداشته باشید، عملیات مختلفی وجود خواهد داشت که قادر به انجام آن‌ها نخواهید بود.) اگر فردی عادی هستید و می‌خواهید آن را امتحان کنید، از آن به عنوان یک سیستم‌عامل ثانویه استفاده کنید. برنامه‌های مختلفی برای لینوکس موجود نیست. ابزارهای ویرایش تصویر هنوز هم در لینوکس یک مشکل است. هم‌چنین، بارها به دلیل مجوزها، قادر به اجرای برنامه‌های متداول نخواهید بود، مگر این‌که فایل پیکربندی آن‌ها را تغییر دهید. بنابراین اگر راه خود را نشناسید، این سیستم‌عامل می‌تواند بسیار مشکل‌ساز باشد.</description><category>محسن نصیرپور</category><author>محسن نصیرپور</author><pubDate>Mon, 02 Nov 2020 02:14:37 +0330</pubDate></item></channel></rss>