آشنایی با فرمت های رایج فایل های اجرایی و نرم افزار های نصبی در لینوکس
سلام به همه کالی یوزری های عزیز! بنده نویسنده جدید این وبلاگ هستم و در اولین پستی که تو کالی یوزر انتشار میدم قصد دارم شما رو با یکی از مباحث اساسی دنیای لینوکس آشنا کنم.
نرم افزار ها یا فایل های اجرایی که در اغلب توزیع های لینوکس باهاشون مواجه میشیم، فرمت های مختلفی دارن که من در این مطلب شما رو با "چند تا" از رایج ترین ها آشنا میکنم :)
آره ...
یادتونه تو ویندوز فایل های اجرایی یا نرم افزار های نصبی معمولا فرمت شون exe یا msi بود؟
تو لینوکس هم چند تا فرمت فایل خیلی رایج داریم که مثلا deb برای خوانواده دبیان و rpm برای فدورا و ردهت و سنت او اس رو برای نمونه میشه مثال زد.
از طرفی اگه تو ویندوز اهل انگولک کردن فایل های داخل درایو ویندوز یا ویروس نویسی بودید، حتما با فایل های اجرایی تحت خط فرمان bat آشنایی دارید.(اگه ندارید برید ویروس نویسی در خط فرمان ویندوز رو سرچ کنید و یاد بگیرید. چون کاربرد های دیگه هم داره)
تو لینوکس هم فایل های sh یا "بش اسکریپت" ها رو داریم.
اینم بگم که یه قسمت این آموزش (که در مورد فرمت فایل deb هست) برای توزیع دبیان(Debian) و فرزند هاش(مثلا اوبونتو، کالی و مینت) هست :) اما باقی مفاهیم برای همه توزیع ها صدق میکنه.
فرمت sh :
این فرمت تقریبا تو همه توزیع های محبوب لینوکس کاربرد داره و به این فایل ها "بش اسکریپت" (Bash Script) گفته میشه.
که البته بش اسکریپت (اسکریپتی که برای اجرا توسط خط فرمان لینوکس نوشته شده و مثلا فرمتش sh هست ) بسیار قدرتمندتر از اسکریپت های خط فرمان ویندوز هستن و تو لینوکس همه کار میشه باهاشون کرد خیلی ازشون استفاده میشه.
این فرمت فایل رو "بیشتر" مواقعی میبینیم که فایل اجرایی مون (که مثلا از اینترنت دانلودش کردیم و قصد اجرای اون رو داریم)، برای توزیع خاصی بسته بندی (Package) نشده باشه. یعنی شما موقع دانلود میبینی که این نرم افزار کلا برای لینوکس هست، و معمولا میبینید اشاره ای به توزیع خاصی نشده.
قدم اول:
وارد پوشه ای که فایل اجرایی مون اونجا قرار داره میشیم (دستور cd برای تغییر دادن مسیر جاری دستورات خط فرمان هست) :
cd Download
قدم دوم:
حالا این امکان رو به فایلمون میدیم که اجرا بشه . ( اسم فایل من اینجا مثلا xdm.sh هستش ) پس :
sudo chmod +x xdm.sh
قدم سوم:
و بعد فایل اجرایی مون رو با دستور مشهور "نقطه اسلش" اجرا میکنیم ( اسم فایل من اینجا مثلا xdm.sh هستش ) :
sudo ./xdm.sh
هشدار ! هیچ کدام از فایل هایی که در بسته موجود بودند نباید پاک بشوند .
فرمت deb :
همون طور که از ظاهرش پیداست، این فرمت مختص خوانواده دبیان (مثلا اوبونتو، کالی و مینت و اِم ایکس) است، و این ها پکیج های نرم افزاری مخصوص پک شده برای دبیان ای ها هستن و برای نصب نرم افزار ها استفاده میشن.
این فرمت رو میشه هم به صورت گرافیکی نصب کرد(یعنی مثل ویندوز، همینجوری روش دابل کلیک کنیم تا اجرا شه) هم با خط فرمان.
من اینجا روش خط فرمان ایش رو میگم {روش قبلی را به عنوان تمرین در خانه انجام دهید :))) }
اینو یادتون بمونه که نصاب (نصب کننده) پکیج های با فرمت deb ابزار مشهوری به نام dpkg هستش (در همه دبیانی ها موجود است) همونطور که تو ویندوز وقتی روی یه فایل اجرایی exe دابل کلیک میکنید، در حقیقت ابزاری به نام Windows Installer هست که داره بسته نرم افزاری تون رو نصب میکنه.
به عنوان مثال پیام رسان "بله" که یک پیام رسان داخلی و خوب هست رو دانلود کردید و در پوشه دانلود قرار دادید و میخواید از طریق خط فرمان نصبش کنید.
پس :
اول وارد پوشه دانلود میشیم :
cd Download
و بعد نصب میکنیم (اسم رو تغییر بدید !! در اینجا اسم فایل من bale.deb هست، فایل شما شاید چیزه دیگه ای باشه ) :
sudo dpkg -i bale.deb
* نکته سامورایی : عزیزان دقت بنمایند به اون "i-" که بعد از اسم dpkg اومده... نمودید؟... خب؛ خدمتتون عارضم که : به اون میگن سویچ(switch). یعنی من اینجا دارم ابزار dpkg رو با سویچ i که اشاره به install دارد، فراخوانی میکنم که یعنی جناب dpkg مشهور، لطف کنند و پکیج deb من رو نصب کنند. کلی سویچ های دیگه هم داریم. باشد که روزی استاد خط فرمان لینوکس شوید :)
فرمت run :
این فرمت رو میشه هم به صورت گرافیکی نصب کرد هم با خط فرمان . مثلا نرم افزاری رو دانلود کردید و در پوشه دانلود قرار دادید پس :
اول وارد پوشه دانلود میشیم :
cd Download
sudo chmod +x name.run
و در انتها اجرا میکنیم :
./name.run
امیدوارم از این پست کالی یوزر خوشتون اومده باشه.
_________________________________________________________________________________________________
ضمیمه شماره یک:
در حقیقت در یونیکس و به تبع اون لینوکس، فرمتی برای فایل اجرایی در نظر گرفته نمیشد اما در طی سالها و بعد از محبوبیت ابزارهای تحت ویندوز، فرمتها به فایلها برای خوانایی در ابزارها و سیستمها و زبانهای مختلف لحاظ شد و هر فایلی میتونه قابلیت اجرایی در لینوکس داشته باشه و حتی بدون فرمت. [با تشکر از آقای محمدرضا]
ضمیمه شماره دو:
فایلهای با فرمت sh،به فایلهای شل اسکریپت نسبت داده میشه که bash (بَش) یکی از شلهای موجود بورن شل و زی شل (zsh) و ... هست. [با تشکر از آقای محمدرضا]
+ ممنونم از جناب "Delete It" و "محمدرضا" که اشکال مطلب را گوشزد کردند :)
++ کالی یوزر یه مخاطبایی داره که همتا ندارن، عااالی، یکی از یکی خوب تر، مخصوصا اونایی که اشکالات رو گوشزد میکنن؛ از پشت همین تریبون اعلام میکنم که "آی لاو یو وری ماچ" همگی.