انگلیسیفرانسویاسپانیایی

Ad


فاویکون OnWorks

distcc - آنلاین در ابر

distcc را در ارائه دهنده هاست رایگان OnWorks از طریق Ubuntu Online، Fedora Online، شبیه ساز آنلاین ویندوز یا شبیه ساز آنلاین MAC OS اجرا کنید.

این فرمان distcc است که می تواند در ارائه دهنده میزبانی رایگان OnWorks با استفاده از یکی از چندین ایستگاه کاری آنلاین رایگان مانند Ubuntu Online، Fedora Online، شبیه ساز آنلاین ویندوز یا شبیه ساز آنلاین MAC OS اجرا شود.

برنامه:

نام


distcc - کامپایلر C/C++/ObjC توزیع شده با پسوندهای distcc-pump

خلاصه


distcc [کامپایلر گزینه ها]

distcc [کامپایلر گزینه ها]

[کامپایلر گزینه ها]

distcc [DISTCC گزینه ها]

شرح


distcc کامپایل کد C را در چندین ماشین در یک شبکه توزیع می کند. distcc
همیشه باید نتایجی مشابه یک کامپایل محلی ایجاد کند، نصب آن ساده است و
استفاده کنید، و اغلب بسیار سریعتر از یک کامپایل محلی است.

این نسخه دارای distcc ساده و همچنین بهبودی به نام حالت پمپ یا
distcc-pump.

برای هر کار، distcc در حالت ساده کد منبع کامل از پیش پردازش شده را ارسال می کند و
آرگومان های کامپایلر در سراسر شبکه از کلاینت تا سرور کامپایل. در پمپ
حالت، distcc کد منبع و فایل‌های هدر را به صورت بازگشتی ارسال می‌کند (به استثنای آن‌ها
از دایرکتوری های هدر سیستم پیش فرض)، به طوری که هم پیش پردازش و هم کامپایل
می تواند در سرورهای کامپایل انجام شود. این امر تحویل مجموعه ها را تسریع می کند
تا یک مرتبه بزرگی بیش از distcc ساده.

کامپایل توسط یک ماشین مشتری هدایت می شود که معمولاً ایستگاه کاری توسعه دهنده است
یا لپ تاپ مشتری distcc روی این ماشین اجرا می شود، همانطور که make، پیش پردازنده (اگر
حالت پمپ distcc استفاده نمی شود)، پیوند دهنده، و سایر مراحل فرآیند ساخت. هر
تعدادی از ماشین های داوطلب به عنوان سرورهای کامپایل عمل می کنند و به مشتری در ساختن آن کمک می کنند
برنامه، با اجرای distccd(1) daemon، کامپایلر C و اسمبلر در صورت نیاز.

distcc می تواند در هر دو سوکت TCP (به طور پیش فرض در پورت 3632) یا از طریق یک تونل اجرا شود.
دستوری مانند SSH(1). برای اتصالات TCP، داوطلبان باید آن را اجرا کنند distccd(1) دیمون
به طور مستقیم یا از inetd. برای اتصالات SSH باید distccd نصب شود اما باید نصب شود
نه برای اتصالات گوش کنید

اتصالات TCP فقط باید در شبکه های امن استفاده شود زیرا کاربر وجود ندارد
احراز هویت یا حفاظت از کد منبع یا شی. اتصالات SSH معمولاً 25٪ هستند
کندتر به دلیل سربار پردازنده برای رمزگذاری، اگرچه این می تواند بسیار متفاوت باشد
بسته به CPU، شبکه و برنامه در حال ساخت.

distcc برای استفاده با GNU Make در نظر گرفته شده است -j گزینه ای که چندین کامپایلر را اجرا می کند
به طور همزمان پردازش می کند. distcc کارها را در هر دو CPU محلی و از راه دور پخش می کند.
از آنجا که distcc قادر است بیشتر کارها را در سراسر شبکه توزیع کند
سطح همزمانی را می توان نسبت به ساخت های محلی استفاده کرد. به عنوان یک قانون سرانگشتی، -j ارزش
باید روی دو برابر تعداد کل CPUهای سرور موجود تنظیم شود اما مشروط به
محدودیت های مشتری این تنظیم اجازه می دهد تا حداکثر تداخل وظایف مسدود شده را داشته باشید
در انتظار دیسک یا IO شبکه توجه داشته باشید که distcc می تواند با سایر کنترل های ساخت نیز کار کند
ابزارهایی مانند SCons که در آن تنظیمات همزمانی مشابه باید تنظیم شوند.

La -j تنظیم، به خصوص برای مقادیر بزرگ از -j، باید بار CPU را در نظر بگیرد
مشتری. اقدامات اضافی ممکن است برای کاهش بار مشتری مورد نیاز باشد. مثلا،
اتصال همزمان باید با استفاده از قفل های کمکی به شدت محدود شود. اثر از
سایر فعالیت های ساخت، مانند کامپایل جاوا هنگام ساخت کدهای ترکیبی، باید باشد
در نظر گرفته شده. در --localslots_cpp پارامتر به طور پیش فرض روی 16 تنظیم شده است. این پارامتر را محدود می کند
تعداد فرآیندهای همزمان که پیش پردازش را در حالت distcc ساده (غیر پمپی) انجام می دهند.
بنابراین، بزرگتر -j مقادیر بیش از 16 ممکن است بدون بارگذاری بیش از حد یک کلاینت تک CPU استفاده شوند
به دلیل پیش پردازش چنین مقادیر بزرگی ممکن است به بخش هایی از ساخت که این کار را نمی کنند سرعت بخشد
شامل کامپایل های C می شود، اما ممکن است برای distcc راندمان در حالت ساده مفید نباشند.

در مقابل، با استفاده از حالت پمپ و می گویند 40 سرور، یک تنظیم از -j80 یا بزرگتر ممکن است باشد
حتی برای مشتریان تک CPU مناسب است.

اکیداً توصیه می شود که نسخه کامپایلر یکسانی را روی همه ماشین ها نصب کنید
شرکت در ساخت کامپایلرهای ناسازگار ممکن است باعث کامپایل یا پیوند مرموز شوند
شکست ها

شروع سریع


1 برای هر دستگاه، distcc را دانلود کنید، بسته بندی کنید و نصب کنید.

2 روی هر یک از سرورها اجرا کنید distccd --اهریمن، دیو با --اجازه گزینه هایی برای محدود کردن
دسترسی به

3 نام سرورها را در محیط خود قرار دهید:
$ export DISTCC_HOSTS='localhost قرمز سبز آبی'

4 ساخت!
$ make -j8 CC=distcc

شروع سریع برای DISTCC-PUMP MODE


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

$ export DISTCC_HOSTS='--تصادفی کردن localhost قرمز، cpp، lzo سبز، cpp، lzo
آبی، cpp، lzo'

La --تصادفی کردن گزینه استفاده یکنواخت از سرورهای کامپایل را اعمال می کند. در حالی که خواهید گرفت
برخی از حالت پمپ distcc با تنها چند سرور سود می برند، شما سود روزافزونی خواهید داشت
با CPU های سرور بیشتر (تا صدها!). ساخت خود را داخل فرمان پمپ بپیچید،
در اینجا با فرض 10 سرور:

$ distcc-pump make -j20 CC=distcc

چگونه دشت (غیر پمپی) DISTCC این نسخهها کار میکند


distcc فقط کامپایلر و اسمبلر را از راه دور اجرا می کند. با distcc ساده،
پیش پردازنده باید همیشه به صورت محلی اجرا شود زیرا نیاز به دسترسی به فایل های مختلف هدر دارد
ماشین محلی که ممکن است روی داوطلب وجود نداشته باشد یا ممکن است یکسان نباشد. در
لینکر به طور مشابه نیاز به بررسی کتابخانه ها و فایل های شی دارد، و بنابراین باید به صورت محلی اجرا شود.

کامپایلر و اسمبلر تنها یک فایل ورودی (منبع از پیش پردازش شده) و
تولید یک خروجی واحد (فایل شی). distcc این دو فایل را در سراسر جهان ارسال می کند
شبکه و بنابراین می تواند کامپایلر/ اسمبلر را از راه دور اجرا کند.

خوشبختانه، برای اکثر برنامه‌هایی که در حال اجرا هستند، پیش‌پردازنده نسبتاً ارزان است
پیوند دهنده نسبتاً نادر نامیده می شود، بنابراین بیشتر کار می تواند توزیع شود.

distcc خط فرمان خود را بررسی می کند تا مشخص کند کدام یک از این فازها فراخوانی می شوند و
آیا کار می تواند توزیع شود.

چگونه DISTCC-PUMP MODE این نسخهها کار میکند


در حالت پمپ، distcc پیش پردازنده را از راه دور نیز اجرا می کند. برای انجام این کار، پیش پردازنده باید
به تمام فایل هایی که اگر به صورت محلی اجرا می شد دسترسی داشته باشد. که در
بنابراین، حالت پمپ، distcc همه هدرهای بازگشتی را جمع آوری می کند، به جز
آنهایی که سرصفحه های پیش فرض سیستم هستند و آنها را همراه با فایل منبع به آن ارسال می کند
سرور کامپایل

در حالت distcc-pump، سرور مجموعه تمام فایل های منبع را به صورت موقت باز می کند
دایرکتوری، که شامل یک درخت دایرکتوری است که بخشی از سیستم فایل را منعکس می کند
مربوط به پیش پردازش، از جمله پیوندهای نمادین است.

سپس کامپایلر از مسیری در دایرکتوری موقت که مربوط به آن است اجرا می شود
دایرکتوری فعلی کار روی مشتری برای یافتن و انتقال صدها فایل
که اغلب بخشی از یک کامپایل واحد هستند، حالت پمپ از یک شامل افزایشی استفاده می کند
الگوریتم تجزیه و تحلیل سرور include یک برنامه پایتون است که این را پیاده سازی می کند
الگوریتم دستور distcc-pump سرور include را به گونه ای راه اندازی می کند که در کل ساخت
می تواند شامل پرس و جوها با دستورات distcc پاسخ دهد.

سرور شامل از تجزیه و تحلیل استاتیک زبان ماکرو برای مقابله با شرطی استفاده می کند
کامپایل و محاسبه شامل. از خاصیتی استفاده می کند که وقتی یک فایل هدر داده شده دارد
قبلاً برای شامل تجزیه و تحلیل شده است، در صورتی که همه شامل شوند، لازم نیست دوباره این کار را انجام دهید
گزینه های (-I's) بدون تغییر هستند (همراه با سایر شرایط).

برای ساخت‌های بزرگ، فایل‌های هدر به طور متوسط ​​صدها بار در هر کدام گنجانده می‌شوند. با
حالت distcc-pump هر فایل از این قبیل فقط چند بار، شاید فقط یک بار، در عوض آنالیز می شود
صدها بار پیش پردازش شده است. همچنین، هر فایل منبع یا هدر اکنون است
فقط یک بار فشرده می شود، زیرا سرور include فایل های فشرده را به حافظه می سپارد. به عنوان یک
در نتیجه، زمان مورد استفاده برای آماده سازی مجموعه ها ممکن است تا یک مرتبه قدر کاهش یابد
بیش از پیش پردازش از distcc ساده.

از آنجایی که distcc در حالت پمپ می‌تواند فایل‌ها را تا حدود ده برابر سریع‌تر خارج کند
سرعت ممکن است 3 برابر یا بیشتر برای ساخت‌های بزرگ در مقایسه با حالت distcc ساده افزایش یابد.

محدودیت های برای پمپ MODE


استفاده از حالت پمپ به مشتری و سرور نیاز دارد که از نسخه 3.0 یا بالاتر از distcc و استفاده کنند
distccd (به ترتیب).

تجزیه و تحلیل شامل افزایشی حالت distc-pump بر این فرض اساسی استوار است
که فایل های منبع و هدر در طول فرآیند ساخت تغییر نمی کنند. چند ساخت پیچیده
سیستم‌هایی مانند هسته لینوکس 2.6، این نیاز را کاملاً برآورده نمی‌کنند. به
غلبه بر چنین مسائلی، و سایر موارد گوشه ای مانند مسیرهای فایل مطلق در شامل، را ببینید
la include_server(1) صفحه مرد

فرض مهم دیگر این است که پیکربندی شامل همه ماشین‌ها باید باشد
همسان. بنابراین هدرهای زیر مسیر پیش فرض سیستم باید در همه سرورها یکسان باشند
و همه مشتریان اگر از نصب استاندارد کامپایلر گنو استفاده می شود، پس این نیاز است
برای تمام کتابخانه هایی که فایل های سرصفحه آنها در زیر نصب شده اند اعمال می شود / usr / شامل or
/usr/local/include/. توجه داشته باشید که نصب بسته های نرم افزاری اغلب منجر به موارد اضافی می شود
فایل های هدر در زیر شاخه های هر کدام قرار می گیرند.

اگر این فرض درست نباشد، می‌توان ساخت‌ها را با distcc-pump شکست
حالت، یا بدتر از آن، برای دریافت نتایج اشتباه بدون هشدار. در حال حاضر این شرایط نیست
تایید شده است، و برای رسیدگی به این مشکل در لیست TODO ما قرار دارد.

یک راه آسان برای تضمین یکسان بودن پیکربندی های شامل استفاده از یک متقاطع است.
کامپایلری که یک مسیر جستجوی پیش‌فرض سیستم را محدود به فهرست‌های راهنما تعریف می‌کند
نصب کامپایلر

مشاهده include_server(1) راهنما برای اطلاعات بیشتر در مورد علائم و علل نقض
فرضیات حالت distcc-pump.

گزینه خلاصه


اکثر گزینه های ارسال شده به distcc به عنوان گزینه های کامپایلر تفسیر می شوند. گزینه های زیر
توسط خود distcc درک می شوند. اگر هر یک از این گزینه‌ها مشخص شده باشد، distcc نمی‌تواند
کامپایلر را فراخوانی کنید.

--کمک دستورالعمل های خلاصه را نمایش می دهد.

- نسخه
نسخه مشتری distcc را نمایش می دهد.

--نمایش-میزبان
لیست میزبانی که distcc از آن استفاده می کند را نمایش می دهد. بخش مشخصات هاست را ببینید.

--اسکن-شامل
لیست فایل هایی را که distcc به دستگاه راه دور ارسال می کند را نمایش می دهد
توسط سرور شامل محاسبه شده است. این یک تقریب محافظه کارانه (بیش از حد) است
فایل هایی که توسط کامپایلر C خوانده می شوند. این گزینه فقط در حالت پمپ کار می کند.
برای جزئیات در مورد نحوه محاسبه، به بخش "حالت پمپ Distcc چگونه کار می کند" مراجعه کنید.

خروجی لیست توسط distcc --اسکن-شامل شامل یک ورودی در هر خط خواهد بود. هر یک
خط شامل یک دسته است که توسط یک مسیر دنبال می شود. دسته بندی یکی از FILE، SYMLINK،
DIRECTORY یا SYSTEMDIR:

فایل یک فایل منبع یا فایل هدر را نشان می دهد که به سرور distcc ارسال می شود
میزبان

SYMLINK یک پیوند نمادین را نشان می دهد که به میزبان سرور distcc ارسال می شود.

دایرکتوری دایرکتوری را نشان می دهد که ممکن است برای کامپایل منبع مورد نیاز باشد
فایل. برای مثال، ممکن است به دلیل وجود یک دایرکتوری "foo" نیاز باشد
فرم #include "foo/../bar.h". چنین دایرکتوری هایی روی distcc ایجاد می شوند
میزبان سرور

SYSTEMDIR نشان‌دهنده یک دایرکتوری شامل سیستم، یعنی دایرکتوری است که روی آن قرار دارد
مسیرهای پیش‌فرض کامپایلر شامل مسیرهایی مانند "/ usr / شامل"؛ چنین دایرکتوری ها هستند
فرض بر این است که در میزبان سرور distcc وجود دارد و بنابراین به سرور ارسال نخواهد شد
میزبان سرور distcc.

-j سطح همزمانی distcc را همانطور که از لیست میزبان محاسبه می شود، نمایش می دهد. آن است
حداکثر تعداد کارهای برجسته صادر شده توسط این مشتری برای همه سرورها. توسط
به طور پیش فرض این چهار برابر تعداد هاست های موجود در لیست میزبان خواهد بود، مگر اینکه
گزینه /LIMIT در لیست میزبان استفاده شد. بخش مشخصات هاست را ببینید.

نصب DISTCC


سه راه مختلف برای فراخوانی distcc، متناسب با شرایط مختلف وجود دارد:

distcc را می توان تحت نام کامپایلر واقعی برای رهگیری تماس ها نصب کرد
و آنها را از راه دور اجرا کنید. این کامپایلر "ماسکور" گسترده ترین سازگاری را دارد
با درختان منبع موجود، و زمانی که می خواهید از distcc برای همه استفاده کنید راحت است
تلفیقی. این واقعیت که از distcc استفاده می‌شود برای فایل‌های ساخته شده شفاف است.

distcc را می توان به خطوط فرمان کامپایلر، مانند "distcc cc -c hello.c" اضافه کرد.
یا CC="distcc gcc". وقتی می‌خواهید از distcc فقط برای برخی استفاده کنید، این کار راحت است
تلفیقی یا امتحان کردن آن، اما می تواند باعث ایجاد مشکل در برخی از فایل های آرایشی یا
نسخه‌های libtool که فرض می‌کنند $CC حاوی فاصله نیست.

در نهایت، distcc می تواند به طور مستقیم به عنوان یک کامپایلر استفاده شود. "cc" همیشه به عنوان استفاده می شود
نام کامپایلر واقعی در این حالت "ضمنی". این می تواند راحت باشد
استفاده تعاملی زمانی که حالت "صریح" کار نمی کند اما واقعا توصیه نمی شود
برای استفاده جدید

به یاد داشته باشید که نباید از دو روش برای فراخوانی distcc به طور همزمان استفاده کنید. اگر شما
از دایرکتوری بالماسکه استفاده می کنید، CC و/یا CXX را تغییر ندهید، فقط دایرکتوری را زودتر قرار دهید
در مسیر شما اگر از دایرکتوری بالماسکه استفاده نمی کنید، باید CC را تغییر دهید
و/یا CXX، یا فایل(های) make را برای فراخوانی صریح distcc تغییر دهید.

بالماسکه


ایده اصلی ایجاد یک "دایرکتوری بالماسکه" است که حاوی پیوندهایی از نام است
کامپایلر واقعی به باینری distcc. این دایرکتوری در اوایل PATH درج می شود، بنابراین
که تماس های کامپایلر قطع می شود و distcc به جای آن اجرا می شود. distcc را حذف می کند
خود را از PATH برای پیدا کردن کامپایلر واقعی.

مثلا:

# mkdir /usr/lib/distcc/bin
# سی دی /usr/lib/distcc/bin
# ln -s ../../../bin/distcc gcc
# ln -s ../../../bin/distcc سی سی
# ln -s ../../../bin/distcc g++
# ln -s ../../../bin/distcc c++

سپس، برای استفاده از distcc، کاربر فقط باید دایرکتوری /usr/lib/distcc/bin را در ابتدای کار قرار دهد.
PATH، و یک لیست میزبان در DISTCC_HOSTS یا یک فایل تنظیم کرده اند. distcc را مدیریت خواهد کرد
باقی مانده.

توجه داشته باشید که این دایرکتوری بالماسکه باید زودتر از دایرکتوری در PATH رخ دهد
شامل کامپایلرهای واقعی با همین نام ها و هر برنامه کمکی است که
این فراخوانی کامپایلرها (مانند as یا ld) نیز باید در PATH در دایرکتوری یافت شوند
بعد از دایرکتوری بالماسکه، زیرا distcc به کامپایلر واقعی با یک PATH فراخوانی می کند
مقداری که همه دایرکتوری ها تا و شامل دایرکتوری بالماسکه بریده شده است.

امکان دریافت "خطای بازگشت" در حالت بالماسکه وجود دارد، به این معنی که distcc است
به نوعی دوباره خودش را پیدا می کند، نه کامپایلر واقعی. این می تواند نشان دهد که شما دو نفر دارید
دایرکتوری های بالماسکه در PATH، احتمالاً به دلیل داشتن دو نصب distcc در آن
مکان های مختلف همچنین می تواند نشان دهنده این باشد که شما در حال تلاش برای مخلوط کردن "ماسکار" و
عملیات "صریح".

با استفاده از اسکریپت های پوسته به جای پیوندها می توان از خطاهای بازگشتی جلوگیری کرد. به عنوان مثال، در
/usr/lib/distcc/bin یک فایل cc ایجاد کنید که حاوی:

#!/ بن / شل
distcc /usr/bin/gcc "$@"

به این ترتیب، ما به distcc وابسته نیستیم که با بررسی، gcc واقعی را پیدا کنیم
متغیر PATH در عوض، مکان کامپایلر به صراحت ارائه شده است.

استفاده كردن DISTCC با حافظه پنهان


ccache برنامه ای است که با ذخیره کردن نتایج کامپایل ها سرعت ساخت نرم افزار را افزایش می دهد.
ccache معمولاً قبل از distcc فراخوانی می شود، بنابراین نتایج از حالت عادی بازیابی می شوند
حافظه پنهان ممکن است برای ساخت فایل‌های منحصربه‌فرد نیاز به آزمایش‌هایی باشد
همه چیز با هم کار می کند

مطمئن ترین روش تنظیم است

CCACHE_PREFIX="distcc"

این به ccache می گوید که distcc را به عنوان یک پوشش در اطراف کامپایلر واقعی اجرا کند. ccache هنوز استفاده می کند
کامپایلر واقعی برای تشخیص ارتقاء کامپایلر.

سپس ccache را می توان با استفاده از یک دایرکتوری بالماسکه اجرا کرد or با تنظیم

CC="cache gcc"

از نسخه 2.2، ccache کامپایل کشی را از منبع از پیش پردازش شده ذخیره نمی کند و همینطور خواهد بود
اگر از distccd یا distcc اجرا می شود، هرگز ضربه کش را دریافت نکنید. فقط باید روی آن اجرا شود
سمت مشتری و قبل از distcc به هر گونه استفاده می شود.

حالت پمپ distcc با ccache سازگار نیست.

HOST مشخصات


یک "لیست میزبان" به distcc می گوید که از کدام ماشین ها برای کامپایل استفاده کنند. به ترتیب، distcc به نظر می رسد
در $DISTCC_HOSTS متغیر محیطی، کاربر $DISTCC_DIR/میزبان فایل، و
فایل میزبان در سراسر سیستم اگر لیست میزبانی پیدا نشد، distcc یک هشدار صادر می کند و کامپایل می شود
محلی

لیست میزبان یک لیست ساده از مشخصات هاست جدا شده با فضای خالی است. ساده ترین
و رایج ترین شکل نام میزبان است، مانند

localhost را قرمز سبز آبی

distcc میزبان ها را در ابتدای لیست ترجیح می دهد، بنابراین ماشین ها باید در لیست قرار گیرند
ترتیب نزولی سرعت به ویژه، زمانی که تنها یک کامپایل می تواند اجرا شود (مانند
مانند یک اسکریپت پیکربندی)، اولین ماشین لیست شده استفاده می شود (اما ببینید --تصادفی کردن در زیر).

دادن localhost را در نقطه مناسب در لیست برای به دست آوردن عملکرد خوب مهم است.
از آنجایی که سربار برای اجرای مشاغل به صورت محلی کم است، معمولاً لوکال هاست باید اول باشد.
با این حال، مهم است که مشتری چرخه های کافی برای اجرای مشاغل محلی و آزاد داشته باشد
مشتری distcc اگر مشتری کندتر از داوطلبان است، یا اگر تعداد آنها زیاد باشد
داوطلبان، پس مشتری باید بعداً در لیست قرار گیرد یا اصلاً قرار نگیرد. به عنوان یک ژنرال
قانون، اگر مجموع سرعت CPU مشتری کمتر از یک پنجم کل باشد، پس
مشتری باید از لیست خارج شود.

اگر یک خوشه ساخت مشترک بزرگ و یک فایل میزبان مشترک دارید، قوانین فوق را رعایت کنید
باعث می شود که چند ماشین اول موجود در فایل میزبان ابتدا آزمایش شوند، حتی اگر آنها را داشته باشند
احتمالاً شلوغ تر از ماشین های بعدی در لیست هستند. برای جلوگیری از این، کلمه کلیدی را قرار دهید
--تصادفی کردن به لیست میزبان این باعث می شود لیست میزبان تصادفی شود، که
باید عملکرد را برای خوشه های ساخت بزرگ کمی بهبود بخشد.

دو نام میزبان خاص وجود دارد --slots محلی و --localslots_cpp که برای
تنظیم بار روی ماشین محلی در --slots محلی میزبان مشخص می کند که چند شغل
را نمی توان از راه دور اجرا کرد که می تواند همزمان بر روی ماشین محلی اجرا شود، در حالی که
--localslots_cpp کنترل می کند که چند پیش پردازنده به صورت موازی در محلی اجرا می شود
دستگاه. تنظیم این مقادیر می تواند عملکرد را بهبود بخشد. پیوند در پروژه های بزرگ ممکن است طول بکشد
مقدار زیادی حافظه اجرای پیوندهای موازی، که نمی توانند از راه دور اجرا شوند،
ممکن است ماشین را مجبور به تعویض کند، که باعث کاهش عملکرد فقط با اجرای کارها می شود
دنباله بدون تعویض دریافت تعداد پیش پردازنده های موازی به درستی
به شما امکان می دهد از فاکتورهای موازی بزرگتر با ساخت استفاده کنید، زیرا ماشین محلی اکنون مقداری دارد
مکانیزم برای اندازه گیری استفاده از منابع محلی

در نهایت ورودی میزبان وجود دارد

عملکرد بستگی به جزئیات منبع و فایل‌های سازنده مورد استفاده برای پروژه دارد، و
سرعت ماشین و شبکه در حال آزمایش با تنظیمات مختلف برای لیست میزبان
و -j عامل ممکن است عملکرد را بهبود بخشد.

نحو است

DISTCC_HOSTS = HOSTSPEC ...
HOSTSPEC = LOCAL_HOST | SSH_HOST | TCP_HOST | OLDSTYLE_TCP_HOST
| GLOBAL_OPTION
| ZEROCONF
LOCAL_HOST = میزبان محلی[/LIMIT]
| --localslots=
| --localslots_cpp=
SSH_HOST = [USER]@HOSTID[/LIMIT][:COMMAND][OPTIONS]
TCP_HOST = HOSTID[:PORT][/LIMIT][OPTIONS]
OLDSTYLE_TCP_HOST = HOSTID[/LIMIT][:PORT][OPTIONS]
HOSTID = HOSTNAME | IPV4 | IPV6
OPTIONS = ,OPTION[OPTIONS]
OPTION = lzo | cpp
GLOBAL_OPTION = - تصادفی کردن
ZEROCONF = +zeroconf

در اینجا چند نمونه جداگانه از نحو آورده شده است:

localhost را
کلمه تحت اللفظی "localhost" به ویژه برای ایجاد کامپایل ها تفسیر می شود
مستقیماً اجرا می شود، به جای اینکه به یک دیمون در ماشین محلی منتقل شود. اگر انجام دهید
می خواهید برای آزمایش به یک دیمون در ماشین محلی متصل شوید، سپس آن را بدهید
آدرس IP ماشین یا نام میزبان واقعی. (این کندتر خواهد بود.)

IPV6 یک آدرس IPv6 تحت اللفظی محصور در پرانتز، مانند [::1]

IPV4 آدرس IPv4 تحت اللفظی، مانند 10.0.0.1

نام خانوادگی
یک نام میزبان که باید با استفاده از حل‌کننده جستجو شود.

:بندر به جای 3632 پیش فرض، به یک شماره پورت اعشاری مشخص وصل شوید.

@HOSTID
به جای TCP از طریق SSH به هاست متصل شوید. گزینه های اتصال SSH می توانند
تنظیم شود ~ / .ssh / پیکربندی

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

: فرمان
از طریق SSH متصل شوید و از یک مسیر مشخص برای یافتن سرور distccd استفاده کنید. این هست
معمولاً فقط زمانی مورد نیاز است که به دلایلی نتوانید distccd را در دایرکتوری نصب کنید
در مسیر پیش فرض برای اتصالات SSH. اگر خطاهایی مانند "distccd" دریافت کردید از این استفاده کنید:
دستور یافت نشد" در حالت SSH.

/حد یک محدودیت اعشاری می تواند به هر مشخصات میزبان اضافه شود تا تعداد آنها را محدود کند
کارهایی که این مشتری به دستگاه ارسال می کند. حد پیش فرض به چهار در هر
میزبان (دو مورد برای لوکال هاست)، اما ممکن است توسط سرور محدودتر شود. تو باید
فقط باید این را برای سرورهایی با بیش از دو پردازنده افزایش دهید.

، lzo فشرده سازی LZO را برای این میزبان TCP یا SSH فعال می کند.

، cpp حالت distcc-pump را برای این میزبان فعال می کند. توجه: دستور ساخت باید در آن پیچیده شود
اسکریپت distcc-pump به منظور راه اندازی سرور شامل.

--تصادفی کردن
ترتیب لیست میزبان را قبل از اجرا تصادفی کنید.

+zeroconf
این انتخاب is فقط در دسترس if distcc بود وارد با آواهی پشتیبانی فعال at
پیکربندی زمان. هنگامی که این ورودی ویژه در لیست میزبان ها وجود داشته باشد، distcc خواهد بود
از Avahi Zeroconf DNS Service Discovery (DNS-SD) برای یافتن هر distccd موجود استفاده کنید
سرورهای شبکه محلی این امر از نیاز به لیست کردن صریح میزبان جلوگیری می کند
نام ها یا آدرس های IP ماشین های سرور distcc. سرورهای distccd باید داشته باشند
با گزینه "-zeroconf" برای distccd شروع شده است. یک هشدار مهم این است که
در اجرای فعلی، حالت پمپ ("cpp") و فشرده سازی ("lzo") خواهد بود
هرگز برای هاست هایی که از طریق zeroconf قرار دارند استفاده نشود.

در اینجا مثالی وجود دارد که برخی از احتمالات را نشان می دهد:

لوکال هاست/2 @bigman/16:/opt/bin/distccd قدیمی:4200/1
# کارتن کار is پایین
دور/3،lzo

نظرات در مشخصات میزبان مجاز است. نظرات با علامت هش/پوند شروع می شود (#)
و تا انتهای خط بدوید.

اگر میزبانی در لیست قابل دسترسی نباشد distcc یک اخطار منتشر می کند و آن میزبان را نادیده می گیرد
حدود یک دقیقه

فشرده سازی


La lzo گزینه host مشخص می کند که فشرده سازی LZO باید برای انتقال داده استفاده شود.
از جمله منبع از پیش پردازش شده، کد شی و پیام های خطا. فشرده سازی معمولا
در شبکه های کندتر از 100 مگابیت بر ثانیه مقرون به صرفه است، اما نتایج ممکن است بسته به شبکه متفاوت باشد.
پردازنده ها و درخت منبع

فعال کردن فشرده سازی باعث می شود مشتری و سرور distcc از زمان CPU بیشتر، اما کمتر استفاده کنند
ترافیک شبکه. زمان CPU اضافه شده برای حالت پمپ ناچیز است. فشرده سازی
نسبت معمولاً برای منبع 4:1 و برای کد شیء 2:1 است.

برای استفاده از فشرده سازی، هم کلاینت و هم سرور نیاز به استفاده از حداقل نسخه 2.9 از distcc دارند.
هیچ پیکربندی سرور مورد نیاز نیست: سرور همیشه با پاسخ های فشرده پاسخ می دهد
درخواست های فشرده

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

جستجو راه ها


اگر نام کامپایلر یک مسیر مطلق باشد، کلمه به کلمه به سرور و سرور ارسال می شود
کامپایلر از آن دایرکتوری اجرا می شود. مثلا:

distcc /usr/local/bin/gcc-3.1415 -c سلام سی

اگر نام کامپایلر مطلق نباشد یا کاملا واجد شرایط نباشد، PATH distccd جستجو می شود.
وقتی distcc از دایرکتوری بالماسکه اجرا می شود، فقط نام پایه کامپایلر است
استفاده شده. PATH مشتری فقط برای اجرای پیش پردازنده استفاده می شود و هیچ تاثیری بر روی آن ندارد
مسیر سرور

تایم اوت ها


هم کلاینت distcc و هم سرور زمان‌های زمانی را برای انتقال داده‌ها در سراسر شبکه اعمال می‌کنند.
این برای شناسایی میزبان هایی است که از کار افتاده یا غیرقابل دسترسی هستند و از کامپایل جلوگیری می کند
اگر سرور در حین استفاده قطع شود، به طور نامحدود معلق می ماند. اگر مهلت زمانی سمت مشتری باشد
منقضی می شود، کار مجدداً به صورت محلی اجرا می شود.

وقفه ها در حال حاضر قابل تنظیم نیستند.

عیب یابی


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

وقتی از گزینه verbose استفاده می شود، distcc می تواند اطلاعات اشکال زدایی گسترده ای را ارائه دهد. این
توسط کنترل DISTCC_VERBOSE متغیر محیطی روی مشتری، و -- پرحرف
گزینه روی سرور برای عیب یابی، خطای سرویس گیرنده و سرور را بررسی کنید
پیام ها.

خروج کد ها


کد خروجی distcc معمولاً کد کامپایلر است: صفر برای کامپایل موفق
و در غیر این صورت غیر صفر.

distcc بین خطاهای "اصلی" مانند یک خطای نحوی در منبع و
خطاهای "تصادفی" مانند مشکل شبکه در اتصال به یک داوطلب. در مورد
از خطاهای تصادفی، distcc کامپایل را مجدداً به صورت محلی امتحان می کند، مگر اینکه DISTCC_FALLBACK
گزینه غیرفعال شده است

اگر کامپایلر با یک سیگنال خارج شود، distcc کد خروجی 128 به اضافه سیگنال را برمی گرداند.
عدد.

خطاهای داخلی distcc باعث ایجاد کد خروج بین 100 و 127 می شود. به ویژه

100 خرابی distcc عمومی.

101 استدلال بد

102 Bind ناموفق بود.

103 اتصال انجام نشد.

104 کامپایلر از کار افتاد.

105 حافظه کم است.

106 مشخصات میزبان بد

خطای I/O 107

108 کوتاه شده.

109 خطای پروتکل.

110 کامپایلر داده شده در میزبان راه دور یافت نشد. بررسی کنید که $CC تنظیم شده باشد
به طور مناسب و در دایرکتوری در مسیر جستجو نصب شده باشد
distccd.

111 تماس بازگشتی به distcc.

112 حذف امتیازات انجام نشد.

113 دسترسی به شبکه ممنوع شد.

114 در حال استفاده توسط فرآیند دیگری.

115 چنین فایلی وجود ندارد.

116 هیچ میزبانی تعریف نشده و بازگشتی غیرفعال است.

118 تایم اوت.

با استفاده از خدمات onworks.net از distcc آنلاین استفاده کنید


سرورها و ایستگاه های کاری رایگان

دانلود برنامه های ویندوز و لینوکس

  • 1
    فایر فاکس
    فایر فاکس
    Firebird RDBMS ویژگی های ANSI SQL را ارائه می دهد
    و روی لینوکس، ویندوز و اجرا می شود
    چندین پلتفرم یونیکس امکانات
    همزمانی و عملکرد عالی
    & قدرت...
    Firebird را دانلود کنید
  • 2
    KompoZer
    KompoZer
    KompoZer یک ویرایشگر HTML wysiwyg است که از آن استفاده می کند
    پایگاه کد موزیلا کامپوزر مانند
    توسعه Nvu متوقف شده است
    در سال 2005، KompoZer بسیاری از باگ ها را برطرف کرد و
    اف می افزاید...
    دانلود KompoZer
  • 3
    دانلود مانگا رایگان
    دانلود مانگا رایگان
    دانلودر رایگان مانگا (FMD) یک برنامه است
    برنامه متن باز نوشته شده در
    Object-Pascal برای مدیریت و
    دانلود مانگا از وب سایت های مختلف
    این یک آینه است...
    دانلود رایگان مانگا دانلود
  • 4
    اتبوتین
    اتبوتین
    UNetbootin به شما این امکان را می دهد که بوتیبل ایجاد کنید
    درایوهای USB زنده برای اوبونتو، فدورا و
    سایر توزیع های لینوکس بدون
    رایت سی دی روی ویندوز، لینوکس و
    و ...
    UNetbootin را دانلود کنید
  • 5
    Dolibarr ERP - CRM
    Dolibarr ERP - CRM
    Dolibarr ERP - CRM یک ابزار آسان برای استفاده است
    بسته نرم افزاری منبع باز ERP و CRM
    (با یک سرور وب php یا به عنوان اجرا شود
    نرم افزار مستقل) برای مشاغل،
    پایه های ...
    دانلود Dolibarr ERP - CRM
  • 6
    SQuirreL SQL مشتری
    SQuirreL SQL مشتری
    SQuirreL SQL Client یک SQL گرافیکی است
    مشتری نوشته شده در جاوا که اجازه می دهد
    برای مشاهده ساختار یک JDBC
    پایگاه داده سازگار، داده ها را در آن مرور کنید
    جداول...
    دانلود SQuirreL SQL Client
  • بیشتر "

دستورات لینوکس

Ad