لینوکس، عشق، برنامه نویسی

شنبه, ۱۹ تیر ۱۳۹۵، ۰۹:۰۵ ب.ظ

به نام خدا 

 

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

  

نرم افزار چیست؟

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

 

نرم افزار رو با چی ایجاد میکنند؟

با زبان های برنامه نویسی (مثل جاوا، سی، سی شارپ، پایتون و ....). یک نرم افزار شامل فایل های مختلفی هست، مثل فایل دیتابیس، فایل های اجرایی(که با همین زبان های برنامه نویسی ایجاد میشن)، فایل xml  برای ذخیره تنظیمات، فایل های لایبرری  (library) و فایل های عکس و فایل های اهنگ و خلاصه هر چیزی که در نرم افزار مورد استفاده قرار گرفته. مجموعه ی این فایل ها با هم یک نرم افزار رو تشکیل میدن. مثل نرافزار ارسال ایمیل، نرم افزار ماشین حساب، نرم افزار ویرایش اهنگ، نرم افزار ویرایش فیلم و کلی نرم افزار دیگه که باهاش کار کردید. دقت کنید که در همه ی نرم افزار ها ممکنه این فایل ها نباشن. مثلا یه نرم افزار ساده ی ماشین حساب شاید نیازی به استفاده از دیتابیس نداشته باشه.

 

منظور از لایبرری چیست؟

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

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

 

نحوه ی نصب نرم افزار در ویندوز چگونه است؟

خب حالا که شما با مفهوم نرم افزار و مفهوم لایبرری اشنا شدید بهتره ببینیم که یه نرم افزار چگونه در سیستم عامل ویندوز نصب میشه. شرکت ها و برنامه نویس ها، بعد از اینکه برنامشون رو نوشتن و کامل کردن، کل فایل های نرم افزار رو (شامل عکس هایی که در برنامه استفاده شده، ایکن برنامه ، فایل های اجرایی برنامه، لایبرری هایی که در برنامه استفاده شده و فایل های دیتابیس و خلاصه هر چیزی که در برنامه استفاده شده ) رو، در یک فایل اجرایی (معمولا با نام setup.exe) قرار میدن. بعدش این فایل اجرایی رو روی وبسایت شرکتشون قرار میدن و شما میرید این فایل setup.exe  رو  دانلود میکنید. بعد از دانلود، شما این فایل رو اجرا میکنید و یه پنجره باز میشه، بعد از دو سه تا next  زدن،  از شما سوال پرسیده میشه که یک مسیر رو مشخص کنید تا برنامه اونجا نصب بشه (شما هم معمولا یک پوشه دلخواه داخل پوشه ی program files  در درایو C  میسازید  و اونو به عنوان مسیر نصب مشخص میکنید.). بعد از مشخص کردن مسیر، دوباره next  میزنید و کل فایل هایی که داخل اون فایل setup.exe هست، در پوشه ای که مشخص کردید کپی میشن و بعد از کپی شدن احتمالا یه  shortcut از برنامه روی دسکتاپ ایجاد میشه. به این ترتیب شما یه نرم افزار رو با موفقیت در ویندوز نصب کردید.

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

 

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

خب، در لینوکس، نرم افزار ها به همان صورتی که در ویندوز توضیح دادم ساخته می شن، یعنی، یک نرم افزار در لینوکس دارای فایل های متعدد هست، از قبیل فایل اجرایی برنامه، فایل مربوط به ایکن برنامه، فایل های xml برای ذخیره ی تنظیمات، فایل های لایبرری، و خلاصه هر فایلی که در ساخت نرم افزار از اون استفاده شده. اما لینوکس یک تفاوت اصلی با ویندوز داره، و اون تفاوت مربوط میشه به فایل های لایبرری! در نرم افزار های لینوکسی، معمولا نرم افزار ها، همه ی لایبرری های مورد نیاز خودشون رو موقع نصب کردن به همراه خودشون ندارن، و در عوض، از لایبرری ها بصورت اشتراکی استفاده میکنن و اینجاست که مفهومی به نام dependency یا وابستگی بوجود میاد. به طور خیلی ساده بخوام توضیح بدم، فرض کنید نرم افزار A، برای اجرا شدن به لایبرری lib نیاز داره، و همچنین نرم افزار B هم به لایبری lib نیاز داره، در اینجا، وقتی برای اولین بار نرم افزار A رو روی سیستم لینوکستون نصب میکنید، سیستم نصاب (یا همون نصب کننده که بعدا دربارش مفصل توضیح میدم)، میاد اول چک میکنه که ایا فایل lib در سیستموتون موجود هست یا نه، اگر موجود نبود، به همراه نصب نرم افزار A، اون لایبرری lib هم رو سیستمون نصب میشه. پس تا اینجا شما نرم افزار A و لایبرری lib رو روی سیستم خودتون نصب کردید. حالا میخاید که نرم افزار B رو نصب کنید. نرم افرار B هم برای اجرا شدن به lib نیاز داره، اول سیستم میاد چک میکنه که فایل lib در سیستمون موجود هست یا خیر، بعد چک کردن می بینه که موجوده، پس موقع نصب نرم افزار B، دیگه اون فایل lib دانلود و نصب نمیشه. به همین خاطر، حجم نرم افزار B خیلی کم میشه (بخاطر اینکه اون فایل lib  رو دیگه دانلود نمیکنید). حالا فرض کنید که نرم افزار B، برای اجرا شدن به 20 تا فایل lib نیاز داره و همه ی اون 20 تا فایل از قبل در سیستم موجوده، حتما خودتون حدس میزنید که حجم نرم افزار B چقد پایین میاد! در واقع در این مثالی که برای شما زدم، فایل lib یک دیپندسی برای نرم افزار های A و B بود. 

 

نرم افزار های لینوکس رو از کجا دانلود کنم و بعدش چجوری نصب کنم؟

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

در سیستم عامل لینوکس اما اینطور نیست. هر توزیع از سیستم عامل لینوکس، برای خودش یک repository یا مخزن داره. مخزن چیه؟ مخزن، یه سرور هست که تمااااااااااااام نرم افزار های مورد نیازتون در اونجا  بصورت یکجا و اوپن سورس قرار داره. خب من چجوری باید از این مخزن برنامه مورد نیازم رو نصب کنم ؟ جواب یک کلمه هست: خیلی راحت! :) برای نصب نرم افزار مورد نظرتون، کافیه که ترمینال رو باز کنید و اینو بنویسید:  

 

 sudo apt-get install gimp

 

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

 

نظرات  (۰)

هیچ نظری هنوز ثبت نشده است

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی