در ابتدا لازم است کمی در مورد نرم افزار های کامپیوتری بدانیم.
نرم افزار چیست؟
نرم افزار مجموعه ای از کد است که سخت افزار را به کار میگیرد. به عبارتی سخت افزار بدون نرم افزار کار نمی کند و نرم افزر لازمهی کارکرد تمامی دستگاههای دیجیتالی است که قابل برنامه ریزی باشند که مهم ترینشان رایانه است.
نرم افزارها را می توان به دو دسته ی نرم افزارهای سیستمی و نرم افزارهای کاربردی تقسیم کرد. نرم افزار سیستمی همان سیستم عامل است. نرم افزار سیستمی یا سیستم عامل مهم ترین نرم افزار یک رایانه است که ارتباط کاربر را با سخت افزار و نرم افزار های کاربردی و ارتباط سخت افزار ها با هم را بر قرار می کند. به عبارتی وظیفه ی راه اندازی و بکار گیری سخت افزار ها بر عهده ی سیستم عامل است.
رابط کاربری (User Interface) چیست؟
رابط کاربری آن بخشی از نرم افزار است که با کاربر ارتباط بر قرار می کند. به عبارتی آنچه کاربر از نرم افزار میبیند را رابط کاربری می گویند.
رابط کاربری میتواند انواع مختلفی داشته باشد که امروزه مهم ترین انواع رابط کاربری، متنی و گرافیکی است.
در رابط کاربری متنی، کاربر برای ارتباط با نرم افزار دستورات را تایپ کند. این نوع رابط کاربری اولین نوع رابط کاربری است که برای رایانه عرضه شد و بعد از مدتی مقدار زیادی از جای خود را به رابط کاربری گرافیکی داد. به طوری که امروزه بیشتر متخصصین و افراد خاص از رابط کاربری متنی استفاده می کنند.
در رابط کاربری گرافیکی، کاربر دستورات را با کلیک بر روی اشکال و تصاویر به رایانه منتقل می کند.
فایل اجرایی چیست؟
فایل اجرایی فایلی است که عملی را در سیستمعامل انجام میدهد. و فایل غیر اجرایی فقط اطلاعاتی در خود دارد که یک نرم افزار (یا به عبارت بهتر یک فایل اجرایی دیگر ) آن اطلاعات را میخواند و به گونهای که ما متوجه شویم برایمان نمایش میدهد.
نرم افزار مسلما وابسته به فایل اجرایی است چون اگر فایل اجرایی نباشد در سیستم عامل کاری نمی تواند انجام دهد و دیگر به آن نرم افزار نمیتوان گفت. گفتیم نرم افزار را مجموعه ای از کدها تشکیل میدهند. و کد هم «نوشته» است که به آن منبع نرم افزار یا متن نرم افزار یا Source Code می گویند. برای این که متن نرم افزار به خود نرم افزار تبدیل بشود باید آن را تبدیل به فایل اجرایی کرد. به تبدیل متن نرم افزار به فایل اجرایی Compile می گویند که توسط نرم افزاری به نام Compiler انجام می شود. در فرایند کامپایل، کدهایی که ما به زبان آدمیزاد نوشته ایم (مثلا نوشته ایم اگر نمره بزرگتر از ۱۸ بود روی صفحه پیغام بده «آفرین!») به ۰ و ۱ تبدیل میشوند که زبان کامپیوتر است.
فایل های اجرایی در سیستمعامل های مختلف فرق میکنند. مثلا در سیستم عامل ویندوز فایل اجرایی حتما پسوند exe دارد در صورتی که در سیستم عامل لینوکس فایل اجرایی وابستگی به پسوند ندارد. در سیستم عامل لینوکس فایلی می تواند فایل اجرایی باشد که از صاحب سیستم اجازهی اجرا داشته باشد. (یکی از دلایلی که سیستم عامل لینوکس تقریبا محال است مثل ویندوز آلوده به ویروس شود، همین سیاست فایل های اجرایی است که هر فایلی نمی تواند اجرا شود.)
کتابخانهها
در یک نرم افزار اجباری وجود ندارد که تمامی بخش های آن در یک فایل باشند. توسط قابلیتی به نام کتابخانه (Library) کدها و منابع مختلف یک نرم افزار میتوانند جدا از فایل اصلی باشند. مثلا فرض کنید داریم نرم افزاری تولید میکنیم که قرار است یک سری محاسبات ریاضی را به صورت خودکار انجام دهد. با داشتن کتابخانهی مخصوص فرمولهای ریاضی دیگر مجبور نیستیم که هر وقت در متن نرم افزار به محاسبهی یک انتگرال رسیدیم، قضیه ی حد و مشتق را برایش تعریف کنیم و متن نرم افزارمان را مملو از کدهای تکراری بکنیم. بلکه میتوانیم برای هر محاسبهی ریاضی، رایانه را به کتابخانهی مربوطه ارجاع بدهیم. کتابخانه ها میتوانند در رایانه بین نرم افزارهای مختلف مشترک باشند. مثلا اگر کتابخانهای مخصوص ذخیره فایل داشته باشیم، هر نرم افزاری که میخواهد فایلی را ذخیره بکند میتواند از ساز و کار موجود در کتابخانهی مربوطه استفاده بکند و بدین صورت تولید نرم افزار برای برنامه نویس بسیار راحت تر میشود.
در سیستم عامل لینوکس استفاده از کتابخانههای مشترک بسیار متداول است. زیرا نرم افزارها غالبا متن باز هستند و چیزی را از هم پنهان نمی کنند. مشترک بودن کتابخانههای نرم افزارها در سیستم عامل لینوکس باعث میشود که اگر بهبودی در کد یک کتابخانه بوجود آمد، بقیهی نرم افزارها خود به خود از این بهبود بهره مند شوند. علاوه بر این با وجود کتابخانه های مشترک حجم نرم افزارها کاهش مییابد و سبک تر میشوند.
کم شدن حجم نرم افزارها برای کاربران لینوکس بسیار محسوس است مثلا فرض کنید میخواهیم ۵ نرم افزار نصب کنیم که هر کدام ۴۰ الی ۶۰ مگابایت حجمشان است که باید از اینترنت دانلود شوند ولی بعد از دانلود اولین نرم افزار، دومین نرم افزار دیگر نمیخواهد ۵۰ مگابایت دانلود کند بلکه با دانلود ۱۰ مگابایت، نصب آن انجام میشود.
نصب نرم افزار
در نصب نرم افزار باید فایل های اجرایی و فایل های غیر اجرایی نرم افزار به درستی در سیستم عامل جاگذاری شوند و تنظیمات مورد نیاز آن نرم افزار در سیستم عامل اعمال شوند تا نرم افزار به درستی کار کند. این کار ممکن است بعضا بسیار سخت و زمان بر باشد. برای همین، برنامه نویسان برای نرم افزارشان نصاب درست می کنند.
نصاب چیست؟
نصاب یا نصب کننده (همان فایل نصب خودمان) برنامه ایست که در نصب یک نرم افزار به ما کمک میکند. به عبارتی با وجود نصاب دیگر احتیاجی نیست که بگردیم تا ببینیم هر کدام از فایلهای یک نرم افزار کجا باید کپی شوند و چه تغییراتی در سیستمعامل احتیاج است که انجام شود و خودمان به صورت دستی آنها را انجام دهیم. بلکه ما فقط به چند سوال (مثل محل نصب، …) جواب میدهیم و نصاب بقیهی کارها را به صورت اتوماتیک انجام میدهد.
ایجاد نصاب برای ویندوز بسیار راحت تر از ایجاد آن برای لینوکس است. زیرا در سیستمعامل ویندوز، تنوع زیادی مشاهده نمیشود و نصاب باید بتواند کارهای نصب نرم افزار را برای سیستمعامل های ویندوز اکس پی، ویستا، ۷ و ۸ انجام دهد. در صورتی که در حوزهی لینوکس بیشتر از ۱۰۰۰ نوع سیستمعامل لینوکس داریم که هر کدام با دیگری میتوانند تفاوت زیادی داشته باشند. و علاوه بر این در لینوکس نرم افزارها از کتابخانه های مشترک استفاده میکنند و سازنده نمیداند که در هر کدام توزیع های لینوکس، چه کتابخانههایی به صورت پیشفرض نصب هستند و چه کتابخانههایی به صورت پیشفرض نصب نیستند و باید به طور جداگانه نصب شوند.
به همین دلیل، برنامه نویسان نصابهایی مخصوص سیستمعامل های معروف مثل اوبونتو و فدورا (که هر کدام میلیونها کاربر در سراسر جهان دارند) درست می کنند (که کار با این نصابها، بعضا از نصب نرم افزار در ویندوز هم بسیار راحت تر است) و یک نصاب عمومی هم برای تمامی نسخه های سیستمعاملهای مبتنی بر لینوکس ایجاد میکنند که مقداری از کار نصب را به طور اتوماتیک انجام میدهد مقداری را هم، خود کاربر باید به صورت دستی انجام دهد. نصب نرم افزار توسط یک نصاب عمومی، اگر تمامی عوامل و کتابخانههای مورد نیاز نرم افزار نصب باشند، بیشتر از چند دقیقه طول نمی کشد ولی وای به وقتی که کمبودی در سیستم مشاهده شود و مجبور باشید برای هر کدام از کتابخانهها و موارد مورد نیاز آن نرم افزار در اینترنت وقت بگذارید تا پیدایشان کنید و بعد هم نصب هر کدام ممکن است مشکلات مخصوص خود را داشته باشد. و فی المجموع نصب نرم افزار از این طریق در لینوکس ممکن است روزها طول بکشد.
در اوبونتو نصاب نرم افزارها فایلهایی با پسوند deb هستند. علاوه بر این در اوبونتو یک نظام جامع برای نصب، حذف و بروز رسانی نرم افزارها از طریق اینترنت وجود دارد که توسط آن میتوان نرم افزارها را بسیار آسان نصب، حذف و بروز رسانی کرد. این نظام جامع ابتدا لیست نرم افزارهای موجود را از منابع مخصوص دریافت میکند. بعد اگر نرمافزاری که میخواهیم نصب کنیم احتیاج به نرم افزارها و یا کتابخانه هایی داشت که ازقبل در سیستم ما نصب نبودند، خودش آنها را دریافت و نصب میکند. لذا کاربران اصلا درگیر مسائل پیچیده نمی شوند.
نصب نرم افزار در اوبونتو
در اوبونتو راحت ترین روش نصب نرم افزار استفاده از Software Center است. مرکز نرم افزارها یا Ubuntu Software Center از طریق منوی Applications قابل دسترسی است.
اگر اتصال به اینترنت داشته باشیم باید حداقل یک بار لیست نرم افزارها از اینترنت دانلود شوند که Software Center به صورت اتوماتیک این کار را می کند. در اینجا هر نرم افزاری به راحتی با یک کلیک قابل نصب هستند.
منبع نرم افزارهای اوبونتو به طور پیشفرض منبعی است که خود شرکت Canonical (شرکت سازنده اوبونتو) برای آن در نظر گرفته است. البته میتوان منابع دیگری به مجموعهی منابع نرم افزارهای اوبونتو اظافه کرد.
اظافه کردن منبعی به منابع اوبونتو به چه دردی میخورد؟
بعضی از افراد نرم افزارهایی مینویسند که هنوز آنقدر کامل نیستند که مناسب قرار دادن در منابع پیشفرض اوبونتو باشند. لذا میتوانند منبعی به صورت اینترنتی ایجاد کنند و آدرس آن منبع را شما در لیست منابعتان وارد کنید تا بتوانید از آن نرم افزارها استفاده کنید. برای اظافه کردن آدرس یک منبع نرم افزاری (PPA) به اوبونتو در Software Center در منوی Edit گزینهی Software Sources را انتخاب نمایید. در برگ Other Software گزینه ی Add را کلیک کنید و آدرس PPA که از وبسایت مربوطه دریافت کرده اید را در آن وارد کنید. با بستن Software Sources لیست نرم افزارها بروز رسانی میشود تا نرم افزارهای منبع اظافه شده فراخوانی شوند.
برای بروز رسانی لیست نرم افزارها به طور دستی میتوانید در ترمینال کد sudo apt-get update را اجرا نمایید.
نصب نرم افزار از طریق Synaptic
Synaptic مثل Software Center یک نرم افزار برای مدیریت و نصب نرم افزارهای دیگر است. این نرم افزار کمی حرفه ای تر و پیشرفته تر از Software Center است و امکاناتی بیشتر از آن دارد ولی کار کردن با آن سخت تر از Software Center است و اکثر کاربران از امکانات اظافه آن استفاده نمی کنند. >
Synaptic از آدرس System -> Administrator -> Synaptic Package Manager قابل دسترسی است.
برای نصب یک یا چند نرم افزار از طریق Synaptic باید نرم افزارهایی را که میخواهید نصب کنید، بر روی هر کدام راست کلیک کنید و گزینهی Mark for installation را بزنید. بعد از انتخاب تمام نرم افزارهای مورد نظر گزینهی Apply را بزنید تا نصب نرم افزارهایتان آغاز شود.
از امکانات Synaptic که در Software Center وجود ندارد این است که اگر به اینترنت دسترسی ندارید بعد از Mark کردن نرم افزارهای مورد نظر می توانید در منوی File گزینهی Generate Download Script را بزنید تا یک فایل از لیست نرم افزارهایی که باید دانلود شوند برایتان ایجاد کند. این فایل را میتوانید در یک رایانهی دیگر که سیستم عامل لینوکس بر روی آن نصب است و به اینترنت دسترسی دارد اجرا کنید تا نرم افزارهایتان دانلود شوند. بعد میبایست این نرم افزارها را به رایانهای که به اینترنت دسترسی ندارد ببرید و توسط ترمینال در محل این نرم افزارها دستور sudo dpkg -i *.deb را اجرا کنید تا این نرم افزارها بدون نیاز به دسترسی به اینترنت نصب شوند.
نصب نرم افزار از طریق فایل deb
اگر نرم افزاری که میخواهید نصب کنید فایل deb مخصوص داشته باشد که مثلا از وبسایت آن دانلود کرده اید، کافی است با دوبار کلیک کردن بر روی آن، آن را نصب کنید.
نصب فایل از طریق متن نرم افزار
اگر نرم افزاری که دانلود کرده اید نصاب deb نداشته باشد و وبسایت ارائه دهنده آن فقط متن نرم افزار (Source) را به شما داده باشد، ابتدا باید فایل فشرده ای را که دانلود کرده اید از حالت فشرده خارج کنید. سپس ببینید در محتویات آن و در فایل Readme یا فایل INSTALL برای نصب نرم افزار از متن چه توضیحی داده شده است. برای مثال ما نرم افزار FFMPEG را انتخاب کرده ایم که از وبسایت آن دریافت کرده ایم. برای نصب این نرم افزار از یک پروسهی استاندارد برای نصب نرم افزار ها به صورت عمومی در لینوکس استفاده میشود.
برای این کار در ترمینال و با استفاده از دستور cd به محل آن میرویم.
cd Downloads/ffmpeg-1.0
سپس دستور configure را اجرا میکنیم. این دستور سیستم را چک میکند که آیا تمام نرم افزارها و پکیج ها و کتابخانه های مورد نیاز FFMPEG از قبل نصب شده اند یا خیر.
./configure
در اینجا به ما پیغام میدهد که yasm نصب نشده است. برای انجام نصب بدون yasm آرگمان غیر فعال سازی yasm را به همراه configure وارد کنید.
./configure –disable-yasm
اگر از این مرحله بدون error گذشتید میتوانید به ترتیب دستور make و سپس sudo make install را بزنید تا نصب پایان بپذیرد. البته در خیلی یا شاید هم اکثر نرم افزارها این مرحله به درستی انجام نمیشود و از شما خواهد خواست تا پکیج های زیادی را نصب کنید. و مشکل بزرگتر اینجاست که به یکباره نمیگوید که چه پکیج هایی را نصب کنید و یکی یکی میگوید و خود آن پکیج ها هم ممکن است ایراداتی به جاهای دیگر بگیرند. خلاصه
انقدر ایراد میگیرد که احتمالا از نصب آن نرم افزار پشیمان خواهید شد.