رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
کامپایل و نصب نرم افزار از سورس
#1
Wink 
شما یک بسته نرم‌افزاری با پسوند ‎.tar. gz یا ‎.tar. bz2 دریافت کرده‌اید و نمی‌دانید که باید با آن چه کار کنید‌. و یا شاید می‌دانید که این بسته سورس کد نرم‌افزار است و شما باید کامپایلش کنید‌، ولی نمی‌دانید چطور‌. نگران نباشید‌، کامپایل کردن نرم‌افزار در گنو‌/‌لینوکس به سختی چیزی که به نظر می‌رسد نیست‌!
روند انجام کار‌:

روند نصب نرم‌افزار‌هایی که در بسته‌های ‎.tar. gz و ‎.tar. bz2 می‌آیند‌، همیشه یک شکل نیست‌، ولی معمولا به صورت زیر است‌:

کد:
[bash]
tar xvzf package. tar. gz (or tar xvjf package. tar. bz۲)
cd package
. /configure
make
make install
[/bash]

اگر خوش شانس باشید‌، با اجرای این دستورات ساده شما عملیات بازکردن‌، پیکربندی، کامپایل و نصب بسته نرم‌افزاری را انجام داده‌اید و حتی نیاز ندارید که بدانید چه کار می‌کنید. به هر حال بهتر است که یک نگاه نزدیک‌تر به این مراحل بیاندازیم و ببینیم معنایشان چیست‌.
یک مثقال عمل بهتر است از یک خروار حرف.
پاسخ
سپاس شده توسط مهرداد عباسی ، MotoMan
#2
Thumbs Up 
مرحله اول. بازگشایی

شاید شما متوجه این نکته شده‌اید که بستهٔ شامل سورس کدِ نرم‌افزارتان با پسوندی مانند ‎.tar. gz یا tar. bz2‎. همراه است‌. و معنایش این است که این بسته یک بسته tar فشرده شده است‌، که با اسم tarball هم شناخته می‌شود‌. در هنگام ساختن بسته‌، سورس کد و تمام فایل‌های مورد نیاز در یک فایل آرشیو tar در کنار هم جمع می‌شوند که این یک پسوند tar را برایشان به همراه می‌آورد‌. بعد از انباشتنشان در کنار هم در یک فایل آرشیو tar‌، آرشیو با gzip فشرده می‌شود که پسوند gz را برایش به ارمغان می‌آورد‌.
بعضی دوست دارند که آرشیو tar را با استفاده از bzip2 به جای gzip فشرده کنند‌. در اینصورت بسته پسوند tar. bz2‎. به خود می‌گیرد‌. شما این بسته‌ها را دقیقا به‌‌ همان صورت بسته‌های tar. gz‎. نصب می‌کنید‌، اما با دستور متفاوتی (‌کمی متفاوت‌) از آن بازگشاییشان می‌کنید‌.
این مهم نیست که tarball‌های دانلود شده از اینترنت را کجا ذخیره می‌کنید‌، اما من پیشنهاد می‌کنم یک یک دایرکتوری مخصوص برای این منظور ایجاد کنید‌. در این آموزش من فرض بر این می‌گیرم که شما tarball‌ها را در پوشه‌ای به اسم dls که در شاخهٔ خانگیتان قرار دارد ذخیره می‌کنید‌. همچنین در این آموزش فرض می‌کنیم که نام کاربریتان me است و شما بسته‌ای به اسم pkg. tar. gz در دایرکتوری خانگیتان دانلود کرده‌اید (/home/me/dls).
خوب‌، سرانجام به مرحله بازگشایی tarball رسیدیم‌. پس از دانلود بسته‌، با دستور زیر آن را از حالت فشرده خارج می‌کنید‌:

کد:
[bash]
me@puter: ~/dls$ tar xvzf pkg. tar. gz
[/bash]

همانطور که می‌بینید دستور tar با گزینه‌ها (options) ی xvzf برای بازگشایی tarball همراه است‌. اگر شما بسته‌ای با پسوند tar. bz2 دارید‌، باید به دستور tar بفهمانید که این بسته gzip شده نیست‌. پس این کار را با استفاده از گزینهٔ j به جای استفاده از z انجام می‌دهید‌، به صورت زیر‌:
کد:
[bash]
me@puter: ~/dls$ tar xvjf pkg. tar. bz2
[/bash]

چیزی که بعد از بازگشایی رخ می‌دهد‌، به بسته ربط دارد‌. اما در بیشتر مواقع شاخه‌ای با اسم بسته ساخته می‌شود‌. شاخهٔ تازه ساخته شده در‌‌ همان شاخه‌ای ایجاد می‌شود که الان در آن قرار دارید‌، برای اطمینان می‌توانید از دستور ls استفاده کنید‌:

کد:
[bash]
me@puter: ~/dls$ ls
pkg pkg. tar. gz
me@puter: ~/dls$
[/bash]

در مثال ما بازگشایی بسته pkg. tar. gz همان‌چیزی را که انتظارش می‌رفت را انجام داد و شاخه‌ای با اسم بسته ایجاد کرد‌، حالا باید به شاخهٔ جدید وارد شوید‌:

کد:
[bash]
me@puter: ~/dls$ cd pkg
me@puter: ~/dls/pkg$
[/bash]

هر سندی که در این شاخه یافتید‌، نظیر README یا INSTALL را مطالعه کنید‌. در اغلب مواقع نکات بسیار مهمی در این اسناد ذکر شده است‌. از جملهٔ این نکات می‌توان به وابستگی‌های نرم‌افزار (‌نرم‌افزار‌های دیگری که برای کامپایل درست نرم‌افزار حاضر باید روی سیستمتان نصب باشد‌) و دستورات خاصی که برای کامپایل نرم‌افزار به آن‌ها نیاز دارید اشاره کرد‌. پس لازم است قبل از ادامهٔ این مراحل یک نگاهی به این نکات بیاندازید.
یک مثقال عمل بهتر است از یک خروار حرف.
پاسخ
سپاس شده توسط مهرداد عباسی ، MotoMan
#3
Thumbs Up 
مرحله دوم. پیکربندی

حالا پس از نقل مکان به شاخهٔ بستهٔ نرم‌افزاری‌، نوبت به پیکربندی بسته می‌رسد‌. معمولا‌، و نه همیشه (‌این‌‌ همان دلیلی است که مجبورتان می‌کند که فایل‌های README و INSTALL را بخوانید‌) این عمل با اجرای اسکریپت configure انجام می‌گیرد‌.
این اسکریپت را با دستور زیر اجرا می‌کنید‌:
کد:
[bash]
me@puter: ~/dls/pkg$ ./configure
[/bash]

پس از اجرای اسکریپت پیکربندی‌، شما هنوز هیچ‌چیزی را کامپایل نکرده‌اید‌. Configure فقط سیستم را چک کرده و مقادیر را به متغیر‌های وابستگی سیستم اختصاص می‌دهد‌. این مقادیر برای تولید Makefile استفاده می‌شود‌. Makefile نیز به نوبه خود binary اصلی را تولید می‌کند‌.
وقتی شما اسکریپت پیکربندی را اجرا می‌کنید‌، شاهد گروهی از پیغام‌های عجیب و غریب خواهید بود که روی صفحهٔ نمایشات بالا می‌روند‌. این طبیعی است و نباید نگرانش باشید‌. اگر configure اخطاری پیدا کند‌، در موردش توضیح داده و خارج می‌شود‌. به هر حال اگر همه‌چیز آن‌طور که باید انجام شد configure از چیزی شکایتی نمی‌کند و خارج می‌شود‌.
اگر configure بدون اخطار خارج شد‌، نوبت آن رسیده که به مرحله بعد برویم‌.
یک مثقال عمل بهتر است از یک خروار حرف.
پاسخ
سپاس شده توسط مهرداد عباسی ، MotoMan
#4
Thumbs Up 
مرحله سوم‌. ساختن

سرانجام نوبت به ساختن فایل باینری (binary) رسیده است‌، برنامه‌ای که قابلیت اجرا داشته باشد و با استفاده از کد منبع تولید می‌شود‌. این‌کار با استفاده از فرمان make صورت می‌گیرد‌:

کد:
[bash]
me@puter: ~/dls/pkg$ make
[/bash]
توجه داشته باشید که فرمان make به فایل Makefile برای ساختن برنامه نیازمند است‌. در غیر این‌صورت نمی‌داند که چه کار باید بکند‌. این‌‌ همان دلیل مهمی است که باید به خاطرش فرمان اسکریپت configure به درستی تا پایان تمام شود‌، و یا فایل Makefile به روش دیگری تولید شود‌.
وقتی که شما make را اجرا می‌کنید‌، دوباره با مقداری از پیغام‌های نا‌آشنا بر روی صفحهٔ نمایشتان روبرو می‌شوید‌. این کاملا طبیعی است و چیزی برای نگران شدن وجود ندارد‌. این مرحله ممکن است مقداری طول بکشد‌، که به اندازهٔ برنامه و سرعت کامپیو‌تر شما بستگی دارد‌. اگر این کار را دارید با یک کامپیو‌تر قدیمی انجام می‌دهید‌، آن هم با یک پردازنده ضعیف‌، بروید و یک فنجان قهوه برای خود آماده کنید‌. در این زمان من معمولا صبرم را کاملا از دست می‌دهم‌.
اگر همه چیز همانطور که باید پیش برود‌، فایل اجراییتان آمادهٔ اجرا و انجام کارش است‌. حالا نوبت به قدم آخر یعنی نصب نرم‌افزار می‌رسد‌.
یک مثقال عمل بهتر است از یک خروار حرف.
پاسخ
سپاس شده توسط مهرداد عباسی ، MotoMan
#5
Thumbs Up 
مرحلهٔ چهارم‌. نصب

سرانجام به مرحلهٔ آخر رسیدیم‌. وقتی که می‌خواهید این کار را انجام دهید‌، باید مجوز root داشته باشید‌. اگر کار‌ها را با کاربر عادی انجام داده‌اید‌، می‌توانید با فرمان su تبدیل به کاربر root شوید‌. این فرمان از شما پسوورد root را خواهد پرسید و سپس شما برای مرحلهٔ آخر آماده‌اید‌!
کد:
[bash]
me@puter: ~/dls/pkg$ su
password:
root@puter: /home/me/dls/pkg# make install
[/bash]
دوباره پیغام‌های عجیب و غریبی را می‌بینید که بر روی صفحه نمایشتان بالا می‌روند‌. بعد از پایانش‌، تبریک می‌گویم‌: شما نرم‌افزار را نصب کرده و آماده‌اید تا اجرایش کنید‌!
به این دلیل که در این مرحله ما تغییری در اسکریپت configure اجرا نکردیم‌، برنامه در محل عادی سیستم نصب شد‌. در بسیاری از موارد این محل ‎/usr/local/bin می‌باشد (‌یا هر جای دیگری که برنامه‌هایتان در آنجا نصب شده‌) و طبیعتا در PATH سیستمتان قرار دارد‌. شما می‌توانید این برنامه را با تایپ اسمش اجرا کنید‌.
و یک نکتهٔ دیگر‌: اگر با su وارد کاربر ریشه شده‌اید‌، بهتر است که دوباره به کاربر عادی برگردید‌، که این کار را می‌توانید با استفاده از کلید‌های ترکیبی CTRL+D و یا تایپ فرمان exit انجام دهید‌.

کد:
[bash]
root@puter: /home/me/dls/pkg# exit
exit
me@puter: ~/dls/pkg$
[/bash]
یک مثقال عمل بهتر است از یک خروار حرف.
پاسخ
سپاس شده توسط مهرداد عباسی ، MotoMan
#6
تمیز کاری

حدس می‌زنم که به فضای خالی دیسکتان نیازمندید‌. اگر موردتان این است‌، می‌توانید بی‌خیال تعدادی از فایل‌ها که نیازی بهشان ندارید بشوید‌. وقتی که فرمان make را اجرا می‌کنید‌، مقدار زیادی از فایل‌ها که برای تولید فایل باینری نیازمندشان هستیم تولید می‌شوند‌، ولی بعد از نصب دیگر بی‌استفاده می‌شوند و فقط فضای دیسکتان را اشغال می‌کنند‌. این‌‌ همان دلیلی است که باید سیستمتان را تمیز کنید‌:
کد:
[bash]
me@puter: ~/dls/pkg$ make clean
[/bash]
به هر حال‌، مطمئن شوید که فایل Makefileتان را نگه می‌دارید‌. این فایل بعد‌ها که می‌خواهید برنامه را از سیستمتان پاک کنید مورد نیازتان می‌شود‌!

پاک کردن

خوب‌، فکر می‌کنید که بعد از گذشتن از همهٔ این مراحل دیگر به این نرم‌افزار نیازی ندارید‌؟ پاک کردن نرم‌افزار‌هایی که کامپایل کرده‌اید به آسانی پاک کردن نرم‌افزار‌های نصب شده توسط مدیر بسته‌هایتان نیست‌.
اگر تصمیم دارید که نرم‌افزاری را که خودتان کامپایل کرده‌اید را پاک کنید‌، بدیهی است که باید مثل گذشته یک کاری انجام دهید‌. خواندن اسنادی که همراه با بستهٔ نرم‌افزار دانلود کرده‌اید و ببینید که چیزی در مورد پاک کردن نرم‌افزار می‌گوید یا خیر‌. اگر نه‌، می‌توانید شروع به کشیدن مو‌هایتان کنید‌!
اگر فایل Makefileتان را پاک نکرده‌اید‌، ممکن است که بتوانید برنامه را با اجرای دستور uninstall پاک کنید‌:

کد:
[bash]
root@puter: /home/me/dls/pkg# make uninstall
[/bash]

اگر می‌بینید که متن‌های عجیب و غریب روی صفحه‌تان بالا و پایین می‌رود (‌اما دیگر این‌جا احتمالا منظور این نوشته‌ها را باید فهمیده باشید‌) نشانهٔ خوبی است‌. اگر شروع به شکایت کرد‌، نشانهٔ بدی است‌. پس شما باید فایل‌ها را به صورت دستی پاک کنید‌.
اگر می‌دانید که برنامه کجا نصب شده‌، شما خواهید توانست که فایل‌ها را به صورت دستی پاک کنید و یا کلا شاخهٔ نصب نرم‌افزار را از بین ببرید‌. اگر هیچ نظری ندارید که تمام فایل‌ها کجا قرار دارند‌، باید فایل Makefile را مطالعه کنید و بفهمید که تمام فایل‌ها در کجا نصب شده اند‌، و سپس آن‌ها را پاک کنید‌.

منبع : tuxfiles.org
یک مثقال عمل بهتر است از یک خروار حرف.
پاسخ
سپاس شده توسط علی عرفانی ، مهرداد عباسی ، MotoMan


موضوعات مشابه ...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  نرم افزار فشرده سازی free archiver علیرضا حر 0 2,421 07-30-2012, 02:46 PM
آخرین ارسال: علیرضا حر
  Cscoop نرم افزاری برای انالیز سورس کد های C مهرداد عباسی 0 2,462 11-28-2011, 05:12 PM
آخرین ارسال: مهرداد عباسی
  جدول معادل نرم افزار های ویندوزی در لینوکس مهدی ابراهیمی 0 3,467 08-21-2011, 05:10 AM
آخرین ارسال: مهدی ابراهیمی
  FaceBook به زودی اوپن‌سورس می‌شود محمد حسینی 0 1,897 05-25-2011, 09:38 PM
آخرین ارسال: محمد حسینی
  ساغر، نرم‌افزار شعر فارسی کلاه سفید 0 2,172 05-25-2011, 03:16 PM
آخرین ارسال: کلاه سفید
  سخت افزار ها هم متن باز شدند کلاه سفید 0 2,003 05-25-2011, 03:16 PM
آخرین ارسال: کلاه سفید
  انتشار اولین نسخه‌ی آزمایشی نرم‌افزار StarCalendar 2 کلاه سفید 0 1,969 05-25-2011, 03:16 PM
آخرین ارسال: کلاه سفید
  نرم‌افزار آزاد مهرداد عباسی 6 7,667 04-25-2010, 10:05 PM
آخرین ارسال: مهرداد عباسی
  نصب نرم افزار در لینوکس مهرداد عباسی 1 3,841 04-16-2010, 10:45 AM
آخرین ارسال: مهرداد عباسی

پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان