اطلاعیه

بستن
No announcement yet.

کامپایل و نصب نرم افزار از سورس در گنو/لینوکس

بستن
X
 
  • فیلتر کردن
  • زمان
  • نمایش
Clear All
پست های جدید

    کامپایل و نصب نرم افزار از سورس در گنو/لینوکس

    شما یک بسته نرم افزاری با پسوند ‎.tar. gz یا ‎.tar. bz2 دریافت کرده اید و نمی دانید که باید با آن چه کار کنید و یا شاید می دانید که این بسته سورس کد نرم افزار است و شما باید کامپایلش کنید، ولی نمی دانید چطور. نگران نباشید کامپایل کردن نرم افزار در گنو/لینوکس به سختی چیزی که به نظر می رسد نیست!

    روند انجام کار:
    روند نصب نرم افزارهایی که در بسته های ‎.tar. gz و ‎.tar. bz2 می آیند، همیشه یک شکل نیست، ولی معمولا به صورت زیر است :
    کد PHP:
    tar xvzf packagetargz (or tar xvjf packagetarbz2)
    cd package
    . /configure
    make
    make install 
    اگر خوش شانس باشید، با اجرای این دستورات ساده شما عملیات بازکردن، پیکربندی، کامپایل و نصب بسته نرم افزاری را انجام داده اید و حتی نیاز ندارید که بدانید چه کار می کنید. به هر حال بهتر است که یک نگاه نزدیک تر به این مراحل بیاندازیم و ببینیم معنایشان چیست.

    مرحله اول : بازگشایی
    شاید شما متوجه این نکته شده اید که بستهٔ شامل سورس کدِ نرم افزارتان با پسوندی مانند ‎.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 رسیدیم. پس از دانلود بسته، با دستور زیر آن را از حالت فشرده خارج می کنید :

    کد PHP:
    me@puter: ~/dlstar xvzf pkgtargz 
    همانطور که می بینید دستور tar با گزینه ها (options) ی xvzf برای بازگشایی tarball همراه است. اگر شما بسته ای با پسوند tar. bz2 دارید، باید به دستور tar بفهمانید که این بسته gzip شده نیست. پس این کار را با استفاده از گزینهٔ j به جای استفاده از z انجام می دهید، به صورت زیر :

    کد PHP:
    me@puter: ~/dlstar xvjf pkgtarbz2 
    چیزی که بعد از بازگشایی رخ میدهد، به بسته ربط دارد. اما در بیشتر مواقع شاخه ای با اسم بسته ساخته می شود. شاخهٔ تازه ساخته شده در همان شاخه ای ایجاد می شود که الان در آن قرار دارید، برای اطمینان می توانید از دستور ls استفاده کنید :
    کد PHP:
    me@puter: ~/dlsls
    pkg pkg
    targz
    me
    @puter: ~/dls
    در مثال ما بازگشایی بسته pkg. tar. gz همان چیزی را که انتظارش میرفت را انجام داد و شاخه ای با اسم بسته ایجاد کرد، حالا باید به شاخهٔ جدید وارد شوید :
    کد PHP:
    me@puter: ~/dlscd pkg
    me
    @puter: ~/dls/pkg
    هر سندی که در این شاخه یافتید، نظیر README یا INSTALL را مطالعه کنید. در اغلب مواقع نکات بسیار مهمی در این اسناد ذکر شده است. از جملهٔ این نکات می توان به وابستگی های نرم افزار (نرم افزارهای دیگری که برای کامپایل درست نرم افزار حاضر باید روی سیستمتان نصب باشد) و دستورات خاصی که برای کامپایل نرم افزار به آنها نیاز دارید اشاره کرد. پس لازم است قبل از ادامهٔ این مراحل یک نگاهی به این نکات بیاندازید.

    مرحله دوم : پیکربندی
    حالا پس از نقل مکان به شاخهٔ بستهٔ نرم افزاری، نوبت به پیکربندی بسته میرسد. معمولا، و نه همیشه (این همان دلیلی است که مجبورتان می کند که فایلهای README و INSTALL را بخوانید) این عمل با اجرای اسکریپت configure انجام میگیرد.

    این اسکریپت را با دستور زیر اجرا میکنید :

    کد PHP:
    me@puter: ~/dls/pkg$ ./configure 
    پس از اجرای اسکریپت پیکربندی، شما هنوز هیچ چیزی را کامپایل نکرده اید. Configure فقط سیستم را چک کرده و مقادیر را به متغیرهای وابستگی سیستم اختصاص میدهد. این مقادیر برای تولید Makefile استفاده میشود. Makefile نیز به نوبه خود binary اصلی را تولید میکند.
    وقتی شما اسکریپت پیکربندی را اجرا میکنید، شاهد گروهی از پیغام های عجیب و غریب خواهید بود که روی صفحهٔ نمایشات بالا می روند. این طبیعی است و نباید نگرانش باشید. اگر configure اخطاری پیدا کند، در موردش توضیح داده و خارج می شود. به هر حال اگر همه چیز آن طور که باید انجام شد configure از چیزی شکایتی نمی کند و خارج می شود.
    اگر configure بدون اخطار خارج شد، نوبت آن رسیده که به مرحله بعد برویم.

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

    کد PHP:
    me@puter: ~/dls/pkgmake 
    توجه داشته باشید که فرمان make به فایل Makefile برای ساختن برنامه نیازمند است. در غیر این صورت نمی داند که چه کار باید بکند. این همان دلیل مهمی است که باید به خاطرش فرمان اسکریپت configure به درستی تا پایان تمام شود، و یا فایل Makefile به روش دیگری تولید شود.
    وقتی که شما make را اجرا می کنید، دوباره با مقداری از پیغام های نا آشنا بر روی صفحهٔ نمایشتان روبرو می شوید. این کاملا طبیعی است و چیزی برای نگران شدن وجود ندارد. این مرحله ممکن است مقداری طول بکشد، که به اندازهٔ برنامه و سرعت کامپیو تر شما بستگی دارد. اگر این کار را دارید با یک کامپیو تر قدیمی انجام می دهید، آن هم با یک پردازنده ضعیف، بروید و یک فنجان قهوه برای خود آماده کنید. در این زمان من معمولا صبرم را کاملا از دست می دهم.
    اگر همه چیز همانطور که باید پیش برود، فایل اجراییتان آمادهٔ اجرا و انجام کارش است. حالا نوبت به قدم آخر یعنی نصب نرم افزار می رسد.

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

    کد PHP:
    me@puter: ~/dls/pkgmake clean 
    به هر حال، مطمئن شوید که فایل Makefile تان را نگه می دارید. این فایل بعد ها که می خواهید برنامه را از سیستمتان پاک کنید مورد نیازتان می شود!

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

    کد PHP:
    root@puter: /home/me/dls/pkg# make uninstall 
    اگر می بینید که متن های عجیب و غریب روی صفحه تان بالا و پایین می رود (اما دیگر این جا احتمالا منظور این نوشته ها را باید فهمیده باشید) نشانهٔ خوبی است. اگر شروع به شکایت کرد، نشانهٔ بدی است. پس شما باید فایل ها را به صورت دستی پاک کنید.
    اگر می دانید که برنامه کجا نصب شده، شما خواهید توانست که فایل ها را به صورت دستی پاک کنید و یا کلا شاخهٔ نصب نرم افزار را از بین ببرید. اگر هیچ نظری ندارید که تمام فایل ها کجا قرار دارند، باید فایل Makefile را مطالعه کنید و بفهمید که تمام فایل ها در کجا نصب شده اند، و سپس آن ها را پاک کنید.
    آخرین ویرایش توسط Habili; در تاریخ/ساعت 01-12-2020, 12:36 AM.

    #2
    با سلام من مراحل بالا رو میرم فایل makefile رو هم دارم اما با ارور زیر مواجه میشم:
    کد:
    [root@localhost nezha]# make
    Makefile:22: /Rules.make: No such file or directory
    make: *** No rule to make target `/Rules.make'.  Stop.
    [root@localhost nezha]#
    آخرین ویرایش توسط Habili; در تاریخ/ساعت 01-05-2016, 09:03 AM.

    کامنت


      #3
      فایل README باید داشته باشه که طریقه نصب رو کامل گفته قبلش اونو با vi باز کنید و بخونیدش
      چه پکیجیه؟
      احتمال مشکل در پکیج هم هست البته.
      Telegram : https://telegram.me/linuxzone

      voip trainer - Asterisk - Elastix - Agi Programming- NewRock

      Voip Expert :ASTERISK-ELASTIX-NewRock Certified-With Experience of Working With
      Sangoma-Digium-Openvox-Synway-Atcom-Quintum Tenor-Polycom-Yealink-Rtx-Snom
      Cisco Collaboration - CME-CUCM-CUPs-CUC-WEBEX
      LPI ( Fundamental - LPI1 and LPI2 ) - Monitoring: ZABBIX-VOIPMONITOR-NAGIOS - CCNA

      Linkedin Profile : https://www.linkedin.com/in/masuma-vahid-26b17b66/

      کامنت


        #4
        یه عکس از فولدر میفرستم فقط makefile رو داخلش داشت
        برای بزرگتر شدن عکس روی آن کلیک کنید

نام:	Screenshot-1.png
نمایش ها:	2
اندازه:	257.5 KB
شناسه:	17258
        آخرین ویرایش توسط vahid8527; در تاریخ/ساعت 09-14-2015, 08:51 PM.

        کامنت


          #5
          من برای پرگرام کردن یک ای سی از خوانواده ARM این لینوکس رو نصب کردم حتمی باید این لینوکس رو نصب میکردم
          کد PHP:
          (Butthey suggest to download the vmware image which we already setup linux
          environment 
          and toolchain.
          http://pan.baidu.com/s/1i3BQ7T7) 
          که از لینک بالا دانلود کردم. این لینوکس رو با برنامه VMware روی ویندوز نصب کردم حالا یه سری فایل تو دسکتاپ این ویندوز هست که مربوط به برنامه های کامپایل ایسی و پرگرامش هست که نمیدونم چطور نصبش کنم البته نصب هم کردم اما با خطای زیر مواجه میشدم :
          کد:
          root@localhost nezha]# make
          Makefile:22: /Rules.make: No such file or directory
          make: *** No rule to make target `/Rules.make'.  Stop.
          [root@localhost nezha]#
          در ضمن کتابخونه رو هم باید نصب کنم که مربوط به ایسی هست اما اونم موفق نشدم نصب کنم

          عکس محتویات پوشه رو هم میذارم:

          برای بزرگتر شدن عکس روی آن کلیک کنید  نام:	Screenshot-1.png نمایش ها:	2 اندازه:	257.5 KB شناسه:	17260

          صممنا یه برنامه هم به اسم geany برای ویرایش متن روی این نسخه فدورا نصب بود .
          حالا من این برنامه ها و کتابخونشون رو چطور نصب کنم؟ یا اصلا اینا فایل نصبی هستن یا نه چیز دیگه هستن؟
          آخرین ویرایش توسط Habili; در تاریخ/ساعت 01-12-2020, 12:37 AM.

          کامنت


            #6
            ببینید دستور make رو لینوکستون نصب هست؟
            البته gcc هم باید نصب باشه.
            آخرین ویرایش توسط masome vahid; در تاریخ/ساعت 01-05-2016, 01:44 AM.
            Telegram : https://telegram.me/linuxzone

            voip trainer - Asterisk - Elastix - Agi Programming- NewRock

            Voip Expert :ASTERISK-ELASTIX-NewRock Certified-With Experience of Working With
            Sangoma-Digium-Openvox-Synway-Atcom-Quintum Tenor-Polycom-Yealink-Rtx-Snom
            Cisco Collaboration - CME-CUCM-CUPs-CUC-WEBEX
            LPI ( Fundamental - LPI1 and LPI2 ) - Monitoring: ZABBIX-VOIPMONITOR-NAGIOS - CCNA

            Linkedin Profile : https://www.linkedin.com/in/masuma-vahid-26b17b66/

            کامنت


              #7
              نوع کیت و معماری ARM رو بگید تا بهتر بشه کمک کرد

              مثلا کیت Raspberry pi 2 دارای cortex a7 هست و این ابزار geany که گفتید یه IDE سبک هست
              قبل از کامپل کردن کدها باید پکیج های پیش نیاز رو نصب کنید که باتوجه به کارتون متفاوته

              کتابخونه های مخصوص توسعه این کیت ها هم براحتی نصب میشه و قابل استفاده هست که معمولا C هستند

              کامنت

              درباره انجمن منطقه لینوکسی ها

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

              شبکه های اجتماعی

              ایمیل مدیریت

              Habili@linux-zone.org

              در حال انجام ...
              X