# سیستم عامل ها > سیستم عامل های آزاد > توسعه‌ی لینوکس و نرم افزارهای آزاد > سوال: نحوه کامپایل سورس برنامه ها

## ztx1111

دوستان من تو نصب برنامه های لینوکس از روی سورس مشکل دارم و تا حالا موفق نشدم یه برنامه رو از روی سورسش نصب کنم.
از دوستان در خواست دارم یه راهنمایی کامل به بنده بدن.
 پی دی اف و معرفی سایت را هم می پذیریم !!!!   :لبخند گشاده!: 
ممنون می شم.

----------


## ilius.gnu

> دوستان من تو نصب برنامه های لینوکس از روی سورس مشکل دارم و تا حالا موفق نشدم یه برنامه رو از روی سورسش نصب کنم.
> از دوستان در خواست دارم یه راهنمایی کامل به بنده بدن.
>  پی دی اف و معرفی سایت را هم می پذیریم !!!!  
> ممنون می شم.


معمولا به اون صورت هست که پکیج سورس رو extract میکنید(از حالت فشردگی خارج میکنید) تا تبدیل به یه پوشه بشه، بعد توی ترمینال به اون پوشه cd میکنید(تغییر مسی میدید) بعد مینویسید:
./configureتا اسکریپت(و نه دستور) configure رو اجرا کنه، و dependecy ها رو چک کنه و مقدمات کامپایل رو فراهم کنه. اگه ارور داد که مثلا فلان پکیج لازم هست و باید نصب بشه، شما باید نصبش کنید، هم خود اون پکیج(باینریش) هم سورس اون پکیج رو. مثلا اگه گفت gtk-2.0 نصب نیست شما اگه از اوبونتو استفاده میکنید باید gtk-2.0 و gtk2.0-dev رو  چک کنید که نصب باشن(مثلا از توی Synaptic) اگه نصب نبودن(احتمال داره خودش نصب باشه سورسش نصب نباشه) پکیج deb شون که مخصوص همون ورژن اوبونتو هست رو دانلود کنید(مثلا از *packages*.*ubuntu.com*) و نصب کنید.
بعد مرحله configure رو دوباره انجام بدید. وقتی این مرحله با موفقیت(بدون هیچ اروری) تموم شد، نوبت به کامپایل میرسه:
makeاگه این مرحله هم با موفقیت تموم بشه دیگه تقریبا تمومه. یعنی سورس کامپایل شده و فایلهای باینری(از جمله فایل اجرایی اصلی برنامه) در همون پوشه قرار گرفته و میتونید برنامه رو اجرا کنید. اما اگه میخواید نصب هم بشه که همه کابران بتونن استفاده کنن، با حساب root  بنویسید:
make installحالا دیگه نصب شده و میتونید اون پوشه ی سورس رو پاک کنید. اگه برنامه گرافیکی احتمالا آیکونش توی منوها اومده باشه(اگه نیومده توی گتوم بنویسید killall gnome-panel)
اما به هر حال میتونید با اجرای دستورش توی خط فرمان اجراش کنید. اسم دستور هر برنامه معمولا اسم همون برنامه هست(فقط ممکنه به ندرت خلاصه شده باشه اگه چند کلمه ای باشه بیشون - میاد). در ضمن اسم دستور هم اسم همون فایل اجرایی هست که بعد از کامپایل توی پوشه ی سورس قرار گرفت.
امیدوارم خوب متوجه شده باشید.

----------


## ztx1111

بسیار عالی بود ممنونم ازت.
خیلی خوب و ساده توضیح دادید متشکرم.
الان می رم تو لینکس امتحان می کنم اگه مشکلی بود دوباره میپورسم.
بازم ممنون

----------


## reza10203045

سلام دوستان 
استفاده می کنم ولی موقع استفاده از دستور  kubuntu 9.4 من از
./config or ./configue
این خطا رو میده میشه در این مورد راهنمایی کنید
reza@ubuntu:~/blender$ ./configue
bash: ./configue: No such file or directory

----------


## Mehdi Asgari

لینوکس به کوچکی و بزرگی حروف حساسه

----------


## reza10203045

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

----------


## حامد مصافی

ممکن است یک بسته نصب اسکریپت configure نداشته باشد. در این صورت باید اطمینان حاصل کنید بسته مزبور دقیقاً برای توزیع شما تولید شده است. اگر چنین بود مستقیماً به مرحله make سپس make install بروید.

----------


## ilius.gnu

> سلام دوستان 
> استفاده می کنم ولی موقع استفاده از دستور  kubuntu 9.4 من از
> ./config or ./configue
> این خطا رو میده میشه در این مورد راهنمایی کنید
> reza@ubuntu:~/blender$ ./configue
> bash: ./configue: No such file or directory


ای وای ببخشید بجای configure نوشتم configue (حرف r جا افتاد) !!!
ولی شما هم باید اشتباهم رو متوجه می‌شدید. چون اون configure اسم یه فایل هست. اگه به محتویات اون پوشه نگاه می‌کردید اسم فایل رو می‌دید. حتی نیازی به نگاه کردن به محتویات دایرکتوری نبود. با تایپ چند حرف اولش(مثلاً confi) و دوبار زدن کلید Tab خودش براتون کامل می‌کرد(یا اگه چند تا باشه همش رو می‌نویسه) چون شل bash قابلیت auto complete رو داره(با کلید تب).
به هر حال معذرت می‌خوام. پست رو اصلاح کردم.

----------


## Sundown

البته این مطلب را هم فراموش نکنید که ابتدا باید با دستور cd وارد پوشه مورد نظر بشید و بعد دستورات را اجرا کنید.
بهتر است برای نصب برنامه از سورس حتما فایل install.txt و readme.txt هر بسته را مطالعه کنید. چون ممکن هست لازم باشد یک سری پارامتر در هنگام نصب اضافه کنید.

موفق باشید

----------


## reza10203045

ممنون از راهنمایی های شما دوستان عزیز مشکلی که الان من دارم اونم اینکه دستور makeکار نمیکنه میشه دلیل کار نرکدن اینو بیان کنید

----------


## حامد مصافی

چه خطایی دریافت می کنید؟

----------


## reza10203045

دوست عزیز من وقتی دستور make را اجرا می کنم هیچ کاری را انجام نمیده

----------


## حامد مصافی

وقتی خطایی دریافت نمی کنید یعنی اینکه بسته autoconf در سیستم شما نصب است. اما مسئله نداشتن خروجی ممکن است به دستورات MakeFile بسته شما ربط داشته باشد، با سورس دیگری آزمایش کنید.

----------


## Sundown

قرار نیست تغییر چندانی داده بشه ( تغییری که بشه دید ) بعد از اجرای این دستور make install رو اجرا و برنامه نصب میشه

----------


## ilius.gnu

> دوست عزیز من وقتی دستور make را اجرا می کنم هیچ کاری را انجام نمیده


  تا نگید چه اروری میده که نمی‌تونیم کمک کنیم. همون اروری که چاپ میکنه، بالاخره یه چیزی چاپ میکنه دیگه!
اول مطمئن بشید که دایرکتوری جاری همون دایرکتوری سورس هست. بعدش اگه مشکل پیش‌نیازها هست(مثلاً میگه فلان پکیج پیدا نشد) شما باید دانلود کنید(یا از مخازن محلی) نصب کنید، کار دیگه‌ای نمیشه کرد. بازم تاکید می‌کنم به متن ارورش دقت کنید(آخرای اون متن طولانی که چاپ میکنه). مثلاً اگه گفت پکیج folan نصب نیست، شما باید پکیجی به اسم folan-dev یا libfolan-dev رو نصب کنید(توی سیناپتیک یا package.ubuntu.com یا گوگل سرچ کنید)

در کل به نظر من طرف نصب نرم‌افزار از روی سورس نرید، یعنی هنوز خیلی زوده. نصب نرم‌افزار از روی سورس روش خوبی برای کاربران تازه‌وارد نیست. مشکلات زیادی ممکنه پیدا کنن. بزرگترین مشکلش هم همین پیشن‌نیازها هست. وقتی می‌خواید یه پیکج رو از روی سورس نصب کنید، باید تمام پیش‌نیازهاش به علاوهٔ سورس‌شون نصب بشه، وگرنه کامپایل نمیشه. این گاهی‌وقت‌ها کار نصب رو خیلی سخت میکنه. اکیداً توصیه می‌کنم از پکیج‌های باینری مخصوصاً پکیج‌های deb (یا rpm) استفاده کنید و ترجیهاً از پکیج‌های مخازن رسمی توزیع خودتون(مثلاً اوبونتو). اگه اینترنت پرسرعت دارید که بدید به سیناپتیک خودش دانلود و نصب کنه. اگه هم اینترنت پرسرعت ندارید از مخازن محلی(مثل dvd هما، یا اون تا dvd مخازن ابونونتو) استفاده کنید برای نصب نرم‌افزارهای مورد نیازتون. البته تو ایران «اینترنت پرسرعت» معنای چندانی نداره(به 256 کیلوبیت بر ثانیه که نمیشه گفت پرسرعت!! اگه دو سه مگ باشه یه چیزی) پس بازم اون 6 تا dvd به نظر من بهترین راه هست.

----------


## reza10203045

دوستان عزیز از پاسخ های شما ممنون هستم.
من وقتی دستور makeرو اجرا میکنم این پیغام رو میده
reza@ubuntu:~/codeblocks-8.02$ make
make: *** No targets specified and no makefile found.  Stop.

و وقتی که دستورmake install رو میزنم این پیغام رو میده

reza@ubuntu:~/codeblocks-8.02$ make install
make: *** No rule to make target `install'.  Stop.


البته در اجرای دستور ./configure مشکلی نداره

----------


## حامد مصافی

دوست عزیز بهتر بود این پیغام رو قبلاً ذکر می کردید!!!

بسته سورس شما اصلاً از automake استفاده نمی کند.
فایل readme یا install را مطالعه کنید.

----------


## reza10203045

این بسته فایل installنداره ولی در فایل readme این مطالب هستش که چیزی متوجه نشدم
This is the Code::Blocks IDE version 8.02
For license info, see the file "COPYING"
For compilers info, see the file "COMPILERS"
For support/feedback visit http://www.codeblocks.org

----------


## reza10203045

البته گفته برای کامپایل این فایل رو ببینید. مطالبی که در فایلCOMPILERSهستش رو ایجا میزارم 
What follows is a description of the steps required to install a compiler for use in Code::Blocks.

Unix platforms
----------------
Code::Blocks comes with pre-configured settings for the GNU GCC compiler & GDB debugger. Just make sure they are installed. This depends on your distribution, but virtually all wide-spread distributions today include them by default.

Windows platform
----------------
Code::Blocks does not come with a compiler nor a debugger. It is left up to you to decide which compiler you want to use.
At this moment, Code::Blocks natively supports the following compilers:

	* GNU GCC compiler & GDB debugger
	* Microsoft Visual C++‎ Free Toolkit 2003
	* Borland C++‎ Compiler 5.5

When you launch Code::Blocks for the first time, it will scan the system for the above compilers (it takes virtually no time). After this scan completes, Code::Blocks will have been configured for the found compiler(s). Code::Blocks will also be configured even for compilers that were not found (default installation settings will be used for each of those compilers).

For more info on how to download and install each of the above compilers, please read on.


Downloading the GNU GCC compiler & GDB debugger
-----------------------------------------------
Go to "http://www.mingw.org/download.shtml" and download the file named MinGW-x.y.z.exe, where x, y and z are version numbers. At the time of this writing, this file is MinGW-3.1.0-1.exe.
This setup file contains everything needed to compile and debug windows programs.


Downloading the Microsoft Visual C++‎ Free Toolkit 2003
------------------------------------------------------
Go to "http://msdn.microsoft.com/visualc/vctoolkit2003" and click on the link labeled "Download the Visual C++‎ Toolkit 2003". This will download the setup file.


Downloading the Borland C++‎ Compiler 5.5
----------------------------------------
NOTE: At some point, by following the steps described below, you will be asked to register with Borland and fill out a survey. Registration is free.

Go to "http://www.borland.com/products/downloads/download_cbuilder.html#" and click on the link labeled "Compiler". After you accept the license agreement, you will be provided with download links to the setup file.


Compiler-neutral setup steps
----------------------------
Now that you have downloaded the setup file, launch the installation by double-clicking on the setup file. The actual installation process is really simple. Just press "Next" all the way and you 're done.

If you installed the compiler on a directory other than its default, launch Code::Blocks. If it is the first time you launch it, the compiler will be auto-detected. If not, go to "Settings/Configure plugins/Compiler", select the compiler you installed, switch to the "Programs" tab and press "Auto-detect". If you get a message saying that the compiler was auto-detected, congratulations! If not, then press the button with the three dots next to the "Auto-detect" button and select the installation directory of your compiler manually.

----------


## Sundown

فکر میکنم برای نصب بسته شما نیاز هست که شما کامپایلر Gcc را نصب کنید. چون سورس ها باید توسط این کامپایلر کامپایل بشن.
برای اینکه ببینید gcc روی سیستم شما نصب هست یا نه توی ترمینال تایپ کنید gcc اگر اطلاعات مربوط به این کامپایلر اومد که یعنی نصبه و اگر پیغام داد که چنین دستوری وجود نداره یعنی نصب نیست و باید آن را دانلود و نصب کنید و سپس برنامه رو کامپایل کنید.
عجیبه که این کامپایلر پیش فرض روی سیستم شما نصب نیست. تا حالا ندیده بودم روی لینوکسی به صورت پیش فرض وجود نداشته باشه !

----------


## reza10203045

در مورد کامپایلر نصب هستش و این پیغام رو میده
gcc: no input files

----------


## reza10203045

آخر کسی پیدا نشد تا به این سوال ما جواب بده

----------


## حامد مصافی

بسته code::blocks در حالت های binary و source قابل دانلود است. مطمئنید نوع سورس را دانلود کرده اید ؟
من همین الان نسخه سورس را دانلود کردم. 
- MakeFile دارد
- یک فایل با نام install-sh دارد که مراحل نصب را انجام میدهد.

----------


## Sundown

من فکر کنم بسته رو آپلود کن تا ما نصب کنیم ببینیم مشکل داره یا نه ؟ شاید اصلا بسته خراب باشه

----------


## reza10203045

سلام
آقای BlackDal این گزینه هایی که گفتید در وجود دارد 
آیا شما هم به شیوه ای که گفتید نصب می کنید یا نه.

----------


## reza10203045

من همین الان دوباره دانلود کردم ولی وقتی باز هم دستور make رو میزنم همون پیغام رو میده
آقای BlackDal میشه شما نحوه نصب این بسته رو کامل بیان کنید اگر به صورت تصویری باشد واقعا ممنون میشم

----------


## حامد مصافی

بله

./configure
make
make install

----------


## reza10203045

باز هم همون پیغام رو میده دیگه نمیدونم که چیکار باید بکنم

----------


## حامد مصافی

من code::block را نصب کردم، مشکلی نداشت. اگر مجددا نتوانستید نصب کنید نتسجه فرمان ./configure را اینجا بگذارید.

----------


## ilius.gnu

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

----------


## reza10203045

سلام دوست عزیز اینطوری که شما میگید نیست , من تازه با لینوکس آشنا شدم و قصد خسته شدن ازش رو ندارم. شما درست میگید ولی من هم همین کارو می کردم یعنی بسته هایی رو که نمی تونم نصب کنم از مخازن اون نصب می کنم.

----------

