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

فاویکون OnWorks

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

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

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

برنامه:

نام


makepp_build_cache -- نحوه تنظیم و استفاده از build cache

شرح


C: تمیز،
ايجاد كردن، M: makepp_build_cache_control،
mppbcc، S: نشان می دهد،
آمار

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

یک build cache می تواند در شرایط زیر مفید باشد:

· روی یک برنامه کار می کنید و آن را بهینه سازی می کنید. سپس یک اشکال را کشف می کنید،
و همه چیز را در حالت دیباگ دوباره کامپایل کنید. شما اشکال را پیدا می کنید و اکنون می خواهید
آن را در حالت بهینه سازی مجدد کامپایل کنید. اکثر فایل ها یکسان خواهند بود. اگر از الف استفاده کردید
کش در تمام کامپایل های خود ایجاد کنید، makepp به سادگی فایل های بدون تغییر را می کشد
به جای کامپایل مجدد آنها، از کش ساخت خارج شوید.

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

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

· چندین توسعه دهنده دارید که روی یک مجموعه از منابع کار می کنند. هر توسعه دهنده است
ایجاد تغییرات، اما اکثر فایل ها بین توسعه دهندگان یکسان هستند. اگر همه
توسعه‌دهندگان یک build cache را به اشتراک می‌گذارند، سپس اگر بیلد یک توسعه‌دهنده یک فایل را کامپایل کند، هر کدام
ساخت توسعه دهنده دیگر که باید فایل یکسان را کامپایل کند (با همان
شامل، و غیره) فقط می تواند فایل کش را به جای اجرای مجدد کامپایل کپی کند.

در صورتی که تمام موارد زیر درست باشد، یک build cache می تواند کمک کند:

· فضای دیسک زیادی دارید. معمولا makepp کپی های زیادی را در حافظه پنهان می کند
هر فایلی که در حال تغییر است، زیرا هیچ ایده ای ندارد که واقعاً از کدام یک استفاده می شود.
می‌توانید کش ساخت را برای فایل‌های خاصی خاموش کنید، اما در صورتی که کش ساخت
اصلاً مفید باشد، احتمالاً باید فایل های زیادی در آن باشد.

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

برای مثال، ممکن است دریابید که استفاده از یک build cache برای کامپایل کردن ارزش زیادی ندارد
ماژول های کوچک تقریباً مطمئناً ارزش آن را ندارد که دستورات ایستا ایجاد کنند
کتابخانه (یک فایل آرشیو، libxyz.a)، به جز اگر از پیوندها برای صرفه جویی در فضای دیسک استفاده می کنید.

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

استفاده از build cache نیاز به کمی کار راه اندازی و نگهداری دارد. لطفا نه
سعی کنید از یک build cache استفاده کنید تا زمانی که متوجه شوید چگونه کار می کنند، چگونه آنها را ایجاد کنید و چگونه انجام دهید
آنها را از رشد مداوم و خوردن تمام فضای موجود روی دیسک خود جلوگیری کنید
سیستم.

چگونه a ساختن نهانگاه با این نسخهها کار
اگر یک build cache را فعال کنید، هر بار که یک فایل ساخته می شود، makepp یک کپی را در یک ذخیره می کند
ساخت کش نام فایل کلیدی است که هش جمع‌های چک همه موارد است
ورودی ها و دستور ساخت و معماری. دفعه بعد که makepp می خواهد دوباره بسازد
فایل، می‌بیند که آیا فایلی با همان چک‌سام‌ها در حال حاضر در کش ساخت وجود دارد یا خیر.
اگر چنین است، فایل از حافظه پنهان ساخت کپی می شود.

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

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

ساختن انبارها و مخازن

ساخت کش و مخازن (به makepp_repositories مراجعه کنید) می تواند مشکلات مشابه را حل کند. برای
در برخی موقعیت‌ها، یک مخزن مناسب‌تر است، در حالی که برای برخی دیگر، یک build cache مناسب‌تر است
مناسب است.

شما همچنین می توانید این دو را با هم ترکیب کنید. اگر یک ساختار دایرکتوری بزرگ با تعداد زیادی از
منابعی که نمی‌خواهید هر برنامه‌نویسی از آنها کپی داشته باشد، می‌توانید آنها را ارائه کنید
به عنوان یک مخزن فایل های تولید شده، با گزینه های مختلف اشکال زدایی و غیره، می توانند باشند
با انعطاف پذیری بیشتری از طریق کش ساخت مدیریت می شود.

تفاوت های کلیدی بین build cache و repository عبارتند از:

· یک build cache فقط می تواند فایل های ایجاد شده توسط رویه ساخت را ذخیره کند. یک مخزن می تواند
همچنین فایل های منبع اصلی داشته باشند.

· فایل های موجود در یک مخزن باید نه در طول ساخت تغییر کند. کش ساخت
چنین محدودیتی ندارد

· فایل های موجود در یک مخزن باید در همان موقعیت نسبی فایل های موجود باشند
دایرکتوری ساخت به عنوان مثال، اگر makepp به فایل نیاز دارد subdir1/subdir2/xyz.abc، پس از آن
فقط نگاه می کند repository_root/subdir1/subdir2/xyz.abc. فایل های موجود در کش ساخت دارند
تمام اطلاعات سلسله مراتب دایرکتوری را از دست داده و فقط بر اساس ورودی ها جستجو می شوند
و دستوری که برای تولید آنها لازم بود.

· فایل های موجود در یک مخزن به صورت نرم به مکان های جدید خود در ساخت پیوند داده می شوند
دایرکتوری ها فایل‌های موجود در کش بیلد یا کپی می‌شوند یا به صورت هارد لینک به جدید خود متصل می‌شوند
مکان ها اگر یک کپی ضروری باشد، مطمئناً یک مخزن سریعتر خواهد بود.

· ساخت حافظه پنهان کمی زمان برای قرار دادن فایل ها در آنها هزینه دارد. مخزن ندارد
هر گونه هزینه اضافی (برای اجرای فعلی، یعنی البته هزینه ایجاد وجود داشت
قبل از آن)، اما اغلب به برنامه ریزی کمی بیشتر نیاز دارد.

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

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

ساختن نهانگاه گروه بندی
یک گروه یک جفت آزاد از حافظه پنهان ساختنی است. شل است به این معنا که makepp ندارد
با آن مقابله کنید تا سرعت مدیریت کش ساخت آن را کاهش ندهید. برای بهره مندی از این شما
باید از ابزار آفلاین استفاده کنید. به ویژه دستور "پاک" نیز این کار را انجام می دهد
همانند سازی اگر معیار تمیز کردن غیرواقعی مانند "--mtime=+1000" را ارائه دهید، خیر
تمیز کردن اتفاق می افتد، فقط تکرار.

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

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

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

تکرار چندین کاربرد جالب دارد:

NFS (با کپی کردن نیز امکان پذیر است)
شما یک سرور NFS مرکزی دارید که کش ساخت ترجیحی را فراهم می کند. هر دستگاه
و دیسک توسعه دهنده دارای یک کش ساخت محلی برای ارسال سریع است. شما یا سوار شوید
همه دیسک های توسعه دهنده به سرور NFS، و تکرار و تمیز کردن را انجام دهید
به صورت مرکزی، یا به صورت محلی روی هر دستگاه کلاینت NFS تکثیر می‌کنید، و تنها بخشی را درمان می‌کنید
از گروه قابل مشاهده است.

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

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

چگونه به استفاده کنید a ساختن نهانگاه
چگونه به گفتن makepp به استفاده کنید la ساختن نهانگاه

پس از ایجاد کش ساخت، اکنون برای makepp در دسترس است. چند وجود دارد
گزینه هایی که می توانید در حین ایجاد مشخص کنید. برای جزئیات بیشتر به "نحوه مدیریت کش ساخت" مراجعه کنید.

یک build cache با گزینه خط فرمان --build-cache مشخص می شود
عبارت build_cache در یک makefile یا با اصلاح کننده قانون :build_cache.

مفیدترین راه هایی که من تاکنون برای کار با کش های بیلد پیدا کرده ام عبارتند از:

· مسیر build cache را در متغیر محیطی MAKEPPFLAGS به این صورت تنظیم کنید (اول
نوع برای Korn Shell یا bash، دوم برای csh):

صادرات MAKEPPFLAGS=--build-cache=/path/to/build/cache
setenv MAKEPPFLAGS --build-cache=/path/to/build/cache

اکنون هر بیلدی که اجرا می کنید همیشه از این کش بیلد استفاده می کند و شما نیازی به این کار ندارید
هر چیز دیگری را اصلاح کنید

· build cache را در makefiles خود با خطی مانند این مشخص کنید:

BUILD_CACHE := /path/to/build_cache
build_cache $(BUILD_CACHE)

شما باید این را در تمام فایل‌های makefi که از کش ساخت (یا در یک شامل مشترک) استفاده می‌کنند، قرار دهید
فایلی که همه فایل های میک از آن استفاده می کنند). یا این را در خود قرار دهید RootMakeppfile:

BUILD_CACHE := /path/to/build_cache
build_cache جهانی $(BUILD_CACHE)

در یک ماشین چندکاربره می‌توانید یک حافظه پنهان در هر دیسک خانگی برای گرفتن آن تنظیم کنید
مزیت لینک ها ممکن است استفاده از عبارتی مانند این راحت تر باشد:

build_cache $(find_upwards our_build_cache)

که از دایرکتوری فعلی در سیستم فایل فعلی تا آن زمان به سمت بالا جستجو می کند
دایرکتوری به نام را پیدا می کند our_build_cache. این جمله می تواند برای همه یکسان باشد
کاربران و همچنان به صورت جداگانه به حافظه پنهان روی دیسک خود اشاره می کنند.

سولاریس 10 می‌تواند چند بار نصب مجدد دایرکتوری‌های خانگی را انجام دهد. خانه شما خواهد شد
ظاهراً یک نقطه سواری برای خودش است که نامیده می شود / خانه /$LOGNAME، زمانی که در واقع روشن است
یکی از /صادرات/خانه* دیسک ها در کنار دیسک های سایر کاربران چون اینطور نیست
واقعاً یک سیستم فایل جداگانه است، پیوندها هنوز کار می کنند. اما نمی توانید به سمت بالا جستجو کنید.
در عوض می توانید انجام دهید:

BUILD_CACHE := ${makeperl }

ساختن انبارها و امضا

Makepp فایل‌ها را با توجه به امضای آن‌ها در حافظه پنهان بیلد جستجو می‌کند. اگر استفاده می کنید
با روش امضای پیش‌فرض (تاریخ فایل + اندازه)، makepp فقط فایل‌ها را از فایل خارج می‌کند
در صورتی که تاریخ فایل فایل های ورودی یکسان باشد، کش بسازید. بسته به نحوه ساخت شما
کار می کند، تاریخ فایل ممکن است هرگز یکسان نباشد. برای مثال، اگر فایل‌ها را بررسی کنید
دو سلسله مراتب دایرکتوری مختلف، تاریخ فایل احتمالاً زمانی است که شما بررسی کرده اید
فایل‌ها خارج می‌شوند، نه زمانی که فایل‌ها بررسی شده‌اند (البته به شما بستگی دارد
نرم افزار کنترل نسخه).

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

امضا md5

برای وادار کردن makepp به استفاده از امضاها بر اساس محتوای فایل ها به جای تاریخ آنها.

چگونه نه به نهانگاه معین فایل ها

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

یا ممکن است فکر کنید بعید است که بخواهید فایل اجرایی نهایی را کش کنید.
ممکن است بخواهید اشیاء مجزا یا اشیاء مشترکی را که برای ساخت آن استفاده می‌شوند، کش کنید
قابل اجرا است، اما اغلب بعید است که شما بسازید کاملا یکسان
قابل اجرا از ورودی های یکسان باز هم، در این مورد، استفاده از کش ساخت بیهوده است
فضای دیسک و زمان، بنابراین غیرفعال کردن آن منطقی است.

گاهی اوقات ممکن است یک فایل بسیار سریع تولید شود و قرار دادن آن در آن فقط هدر می رود
کش ساخت، زیرا می توان آن را به همان سرعتی که کپی کرد تولید کرد. ممکن است بخواهید
به طور انتخابی ذخیره این فایل ها را غیرفعال کنید.

می توانید کش ساخت را برای قوانین خاص با تعیین ": build_cache none" در
یک قانون، مانند این:

our_executable: dateStamp.o main.o */*.so
: build_cache هیچکدام
$(CC) $(LDFLAGS) $(ورودی ها) -o $(خروجی)

این پرچم به این معنی است که هر خروجی از این قانون خاص هرگز در آن قرار نخواهد گرفت
کش بیلد کنید و makepp نیز هرگز سعی نخواهد کرد آنها را از کش بیلد بیرون بکشد.

چگونه به مدیریت a ساختن نهانگاه
makepp_build_cache_control فرمان ...
mppbcc فرمان ...

makepp_build_cache_control، mppbcc ابزاری است که ساخت کش برای makepp را مدیریت می کند.
چی makepp_build_cache_control انجام می دهد با اولین کلمه استدلال آن مشخص می شود.

در واقع این اسکریپت کوچک یک پوشش برای دستور زیر است که ممکن است بخواهید
مستقیماً در cron jobs خود تماس بگیرید، جایی که ممکن است مسیر "makeppbuiltin" مورد نیاز باشد:

makeppbuiltin -MMpp::فرمان BuildCacheControl ...

شما همچنین می توانید این دستورات را از یک makefile پس از بارگیری با پیشوند "&" - به عنوان استفاده کنید.
برای مثال "ایجاد" به شرح زیر است:

perl { use Mpp::BuildCacheControl } # این یک ماژول Perl است، بنابراین به جای include استفاده کنید.

my_cache:
&ایجاد $(CACHE_OPTIONS) $(خروجی) # یک داخلی بارگذاری شده را فراخوانی کنید.

build_cache $ (پیش ساخت my_cache)

دستورات معتبر، که تعدادی از گزینه های استاندارد شرح داده شده در آن را نیز می گیرند
makepp_builtins عبارتند از:

ایجاد [گزینه ...] مسیر/به/کش ...
کش های ساخت را با گزینه های داده شده ایجاد می کند. گزینه های معتبر عبارتند از:

گزینه های استاندارد: "-A، --args-file، --arguments-file=نام فایل، -v، --verbose"

-e گروه
--extend=گروه
--extend-group=گروه
کش ساخت جدید را به "گروه" اضافه کنید. این ممکن است به تنهایی تنها بوده باشد
ساخت کش تا به حال

-f
--زور
این اجازه می دهد تا حافظه پنهان را حتی اگر مسیر/به/کش قبلا وجود داشته است. اگر بود
فایلی که پاک می شود اگر یک دایرکتوری بود، با هر چیزی که باشد دوباره مورد استفاده قرار می گیرد
محتوایی که داشت

-p
--ارجح
این گزینه تنها در صورتی معنادار است که در گروه حافظه پنهانی ساخته شده باشد که اجازه می دهد
پیوند سخت به سیملینک ها در این صورت تمیز کردن اعضا را به
دیسک ترجیحی با این گزینه می توانید چندین کش در یک گروه ایجاد کنید
در این صورت فایل ها به صورت تصادفی به آنها منتقل می شوند.

-s n1، n2، ...
--subdir-chars=n1، n2، ...
کنترل می کند که چند سطح از زیرشاخه ها برای نگهداری فایل های کش ایجاد شده است.
و در هر زیر شاخه چند فایل خواهد بود. اولین n1 شخصیت های
نام فایل از نام دایرکتوری سطح بالا و کاراکترهای آن تشکیل می شود n1 به n2 فرم
نام دایرکتوری سطح دوم و غیره.

فایل‌های موجود در کش ساخت با استفاده از هش‌های MD5 از داده‌هایی که makepp استفاده می‌کند، نام‌گذاری می‌شوند
هر نام فایل 22 رقم پایه 64 به اضافه نام فایل اصلی است. اگر یک کش ساخت
نام فایل است 0123456789abcdef012345_module.o، در واقع در بیلد ذخیره می شود
کش به عنوان 01/23/456789abcdef012345_module.o اگر "--subdir-chars 2,4" را مشخص کنید.
در واقع، "--subdir-chars 2,4" پیش‌فرض است که برای یک حافظه پنهان ساخت غول پیکر است.
از حداکثر 4096 دایر با 416777216 زیردایر. حتی "--subdir-chars 1,2" یا
"--subdir-chars 1" شما را بسیار دور می کند. در یک سیستم فایل بهینه شده برای حجم عظیم
دایرکتوری هایی که حتی ممکن است بگویید "-s''" یا "--subdir-chars=" برای ذخیره همه فایل ها در
سطح بالا

-m پرم
--mode=پرم
--access-permissions=پرم
مجوزهای دسترسی به دایرکتوری را هنگامی که فایل ها به ساخت اضافه می شوند را مشخص می کند
حافظه پنهان اگر می‌خواهید افراد دیگر فایل‌ها را در کش ساخت شما قرار دهند، باید آن را بسازید
آن گروه یا جهان قابل نوشتن. مجوزها باید با استفاده از نماد هشتگانه مشخص شوند.

از آنجایی که اینها مجوزهای دایرکتوری هستند، اگر به هر گونه دسترسی اجازه دهید، باید به آن نیز اجازه دهید
دسترسی را اجرا کنید، در غیر این صورت با انبوهی از شکست های عجیب روبرو خواهید شد. یعنی 0700 یعنی همین
فقط این کاربر ممکن است به این کش ساخت دسترسی داشته باشد. 0770 یعنی این کاربر و
هر کسی در گروه ممکن است دسترسی نوشتن به کش ساخت داشته باشد. 0777 به این معنی است
هر کسی ممکن است به کش ساخت دسترسی داشته باشد. ارقام اکتال معقول 7 هستند
(نوشتن)، 5 (خواندن) یا 0 (هیچ کدام). 3 (نوشتن) یا 1 (خواندن) نیز ممکن است، اجازه می دهد
حافظه پنهان مورد استفاده قرار می گیرد، اما مرور نمی شود، یعنی برای a سخت تر است
کاربر مخرب برای پیدا کردن نام فایل برای دستکاری.

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

اگر مجوزها را مشخص نکرده‌اید، مجوزهای umask شما در زمان ایجاد
در طول عمر کش ساخت اعمال شود.

تمیز [گزینه ...] /path/to/cache ...
کش را پاک می کند. Makepp هرگز فایل ها را از کش ساخت حذف نمی کند. به شما بستگی دارد
برای حذف فایل ها با این دستور برای کش های چند کاربره، sysop می تواند این کار را انجام دهد.

فقط فایل هایی با تعداد لینک 1 حذف می شوند (زیرا در غیر این صورت، فایل دریافت نمی شود
به هر حال از نظر فیزیکی حذف می شود -- شما فقط فایلی را که ظاهراً شخصی آن را از حافظه پنهان خارج می کند
هنوز علاقه مند است، بنابراین ممکن است شخص دیگری نیز علاقه مند باشد). معیارهایی که شما ارائه می دهید مربوط می شود
فایل های کش واقعی هر فایل اطلاعات ساخت زمانی که فایل اصلی آن باشد حذف خواهد شد.
هیچ دایرکتوری خالی باقی نخواهد ماند. صرف نظر از تعداد پیوندها و گزینه های شما
داده شود، هر فایلی که با فایل اطلاعات ساخت آن مطابقت نداشته باشد، اگر قدیمی باشد، حذف خواهد شد
بیش از یک حاشیه ایمنی 10 دقیقه.

گزینه های زیر یک مشخصه زمانی را به عنوان آرگومان می گیرند. مشخصات زمان با شروع می شود
یک "+" به معنای طولانی تر، یک "-" به معنای اخیراً یا هیچ معنایی بین آن وجود ندارد
شماره ای که می دهید و یک عدد دیگر اعداد، که ممکن است کسری باشند، به طور پیش فرض روز هستند.
اما ممکن است یکی از حروف "w" (هفته)، "d" (روزها، پیش فرض) به دنبال آنها باشد.
"h" (ساعت)، "m" (دقیقه) یا "s" (ثانیه). توجه داشته باشید که روزها فقط 24 ساعت واقعی هستند
نادیده گرفتن هرگونه تغییر بین زمان تابستان و زمستان. مثال ها:

1 بین 24 تا 48 ساعت قبل
24 ساعت بین 24 تا 25 ساعت قبل
0.5d بین 12 و 36 ساعت قبل
1w بین 7 تا 14 بار در 24 ساعت قبل
-2 کمتر از 48 ساعت پیش
+30 متر بیش از 30 دقیقه پیش

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

گزینه های استاندارد: "-A، --args-file، --arguments-file=نام فایل، -v، --verbose"

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

برخی از سیستم های فایل از فیلد atime و حتی اگر سیستم فایل پشتیبانی نمی کنند
گاهی اوقات افراد زمان دسترسی را در سیستم فایل خود خاموش می کنند زیرا این کار اضافه می کند
تعداد زیادی ورودی/خروجی دیسک اضافی که می‌تواند برای نوت‌بوک‌های باتری‌دار یا در داخل مضر باشد
بهینه سازی سرعت دیسک (اما این به طور بالقوه قابل رفع است - به ادامه مطلب مراجعه کنید
نظر UTIME_ON_IMPORT در Mpp/BuildCache.pm.)

-b
-- مخلوط کردن
---گروه ها
معمولا هر کدام /path/to/cache شما مشخص می کنید به طور جداگانه گروه ساخت را درمان می کند
حافظه نهان به آن تعلق دارد. هر گروه فقط یک بار درمان می شود، حتی اگر شما مشخص کنید
چندین مسیر از یک گروه با این گزینه به طور موقت همه را مخلوط می کنید
گروه هایی که مشخص می کنید در یک گروه قرار می گیرند.

انجام این کار برای تمیز کردن ممکن است اثرات ناخواسته ای داشته باشد، اگر بتوانید به سختی به پیوندهای نمادین پیوند دهید،
زیرا ممکن است اعضا را از یک گروه به گروه دیگر منتقل کند. غیر ترکیبی بعدی
تمیز می کند، سپس ممکن است آنها را از گروه اصلی قبل از موعد تمیز کند.

-c تنظیمات
--ctime تنظیمات
--زمان تغییر تنظیمات
آخرین زمان تغییر inode فایل. در یک موقعیت پیوند این می تواند باشد
زمانی که آخرین کاربر فایل را به شکل متفاوتی بازسازی کرد و پیوند خود را به آن قطع کرد
حافظه پنهان این همچنین می تواند زمانی باشد که گزینه "--set-user" زیر باید داشته باشد
کاربر را تغییر دهید در سیستم‌هایی که به خوبی رفتار می‌کنند، این می‌تواند زمانی باشد که
آخرین نوار پشتیبان یا ایجاد فهرست جستجو، علائم خود را با تنظیم مجدد پوشش داد
زمان.

-m تنظیمات
--mtime تنظیمات
- زمان اصلاح تنظیمات
آخرین زمان اصلاح فایل. همانطور که در جاهای دیگر توضیح داده شد، دلسرد شده است
برای آپدیت کردن فایل makepp. بنابراین آخرین اصلاح معمولاً زمان خواهد بود
خلقت (اما در آینده makepp ممکن است به صورت اختیاری mtime زمانی که
حذف فایل ها این به این دلیل است که پیوندها در سیستم های فایل بدون زمان یا کپی می توانند باشند
ردیابی شد.)

-g گروه
--newgrp=گروه
--new-group=گروه
شناسه گروه موثر و واقعی را روی گروه (نام یا عدد) قرار دهید. فقط ریشه ممکن است باشد
قادر به انجام این کار زمانی که از کش های ساخت گروه بندی شده استفاده می کنید، این مورد نیاز است
دسترسی نوشتن به کش ها را بر اساس شناسه گروه فراهم کنید. معمولا اینطور نخواهد بود
گروه root و بنابراین تکرار، دایرکتوری های غیرقابل نوشتن بدون این ایجاد می کند
گزینه.

این گزینه به نام ابزار معادل "newgrp" نامگذاری شده است که متأسفانه نمی تواند به راحتی انجام شود
در کارهای "cron" یا تنظیمات مشابه استفاده شود.

-i
---build-info
---build-info-check
بررسی کنید که اطلاعات ساخت با عضو مطابقت داشته باشد. این تست نسبتاً گران است بنابراین
ممکن است در نظر داشته باشید که این گزینه را در طول روز ندهید.

-l
--symlink-check
--symbolic-link-check
این گزینه باعث می‌شود هر پیوند نمادینی که سخت خارجی ندارد، "تمیز" را بخواند
پیوندهایی برای تأیید اینکه به عضو مورد نظر اشاره می کند. همانطور که این تا حدودی است
گران است، توصیه می شود این کار را فقط در شب انجام دهید.

-M تنظیمات
--در مدت زمان تنظیمات
-- ورودی-تغییر-زمان تنظیمات
آخرین زمان تغییر برای فایل‌ها در فهرست ورودی. این دایرکتوری است
برای فایل‌های موقت با نام‌های خاص فرآیند که می‌توانند بدون آن نوشته شوند استفاده می‌شود
دسترسی همزمان و سپس به صورت اتمی به بخش فعال حافظه پنهان تغییر نام داد.
فایل‌ها معمولاً فقط تا زمانی که نوشتن آنها طول می‌کشد در اینجا زندگی می‌کنند، اما می‌توانند
اگر روند نوشتن آنها قبل از آن به طور غیرعادی خاتمه یابد، یتیم می شوند
می تواند آنها را حذف کند. این قسمت از کش ابتدا پاک می شود، زیرا پیوند حساب می شود
در بخش فعال حافظه نهان می تواند به طور نامناسب تحت تأثیر فایل های یتیم قرار گیرد.

مشخصه زمانی «--incoming-modification-time» باید با «+» و پیش‌فرض شروع شود
به "+2h" (فرض می شود که فایل های حداقل 2 ساعت قدیمی یتیم شده باشند).

-w
-- روزهای کاری
این بر نحوه شمارش گزینه های زمانی تأثیر می گذارد. آخر هفته‌ها نادیده گرفته می‌شوند، انگار که هستند
آنجا نبودند یک استثنا در صورتی است که این گزینه را در آخر هفته بدهید. سپس آن
آخر هفته به طور معمول حساب می شود بنابراین می‌توانید از آن در کرنجاب‌هایی که از سه‌شنبه اجرا می‌شوند استفاده کنید
تا شنبه تابستان نادیده گرفته می شود. بنابراین تعطیلات آخر هفته تابستان می تواند از شنبه شروع شود
1:00 تا دوشنبه 1:00، یا آخر هفته های زمستانی نیمکره جنوبی از جمعه از ساعت 23:00 تا
یکشنبه ساعت 23:00 یا هر چقدر منطقه زمانی شما زمان را تغییر دهد. تعطیلات هم هست
در نظر گرفته نشده است.

-p پرل کد
--perl=پرل کد
محمول =پرل کد
TODO: این توضیحات را با تغییرات گروهی تطبیق دهید!

این چاقوی افسر سوئیسی است. در پرل کد یک بار در زمینه اسکالر فراخوانی می شود
برای هر ورودی حافظه پنهان (یعنی به استثنای دایرکتوری ها و فایل های اطلاعاتی). این است
در یک تابع "File::Find" "خواسته" فراخوانی می شود، بنابراین برای متغیرهایی که می توانید آنجا را ببینید
استفاده کنید. یک "lstat" انجام شده است، بنابراین می توانید از filehandle "_" استفاده کنید.

If پرل کد "undef" را برمی گرداند انگار که آنجا نبود، آن دیگری است
گزینه ها تصمیم می گیرند اگر درست برگردد فایل حذف می شود. اگر false برگرداند،
فایل حفظ می شود

-s تنظیمات
--اندازه تنظیمات
مشخصات اندازه فایل درست مانند مشخصات زمان، با "+" برای کار می کند
بزرگتر از یا "-" برای کوچکتر از، با این تفاوت که واحدها باید "c" باشند (بایت، the
پیش فرض)، "k" (کیلو بایت)، "M" (مگابایت) یا "G" (گیگابایت).

-u کاربر
--user=کاربر
--set-user=کاربر
این گزینه بسیار متفاوت است. نمی گوید چه زمانی یک فایل را حذف کنید. به جای آن
برای فایل هایی که پاک نمی شوند اعمال می شود. توجه داشته باشید که در بسیاری از سیستم ها فقط روت است
مجاز به تنظیم کاربر یک فایل است. به بخش «اخطارهای کار با ساخت» مراجعه کنید
caches" چرا ممکن است در صورت استفاده نیاز به تغییر مالکیت به کاربر خنثی داشته باشید
سهمیه دیسک

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

بسته به میزان فضایی که دارید، استراتژی‌های ممکن متفاوتی وجود دارد
آیا کش ساخت شامل فایل‌های پیوندی است یا اینکه کاربران فقط کپی دارند.
چندین استراتژی را می توان با فراخوانی آنها یکی پس از دیگری یا در موارد مختلف ترکیب کرد
بار. دستور "نمایش" برای کمک به شما در یافتن یک استراتژی مناسب است.

اجرای شبانه (از سه شنبه تا شنبه) ممکن است "--atime +2" (یا "--mtime" را مشخص کند.
اگر زمان ندارید)، تمام فایل‌هایی را که کسی به مدت دو روز نخوانده است حذف کنید.

اگر از پیوندها استفاده می کنید، همچنین می توانید از رشد سریع بی فایده که در زمانی رخ می دهد جلوگیری کنید
تغییرات پی در پی هدر، که هرگز نسخه کنترل نمی شود، منجر به تعداد زیادی اشیاء می شود
به سرعت ایجاد می شود. چیزی شبیه دویدن ساعتی با "--mtime=-2h --ctime=+1h"
در طول روز، افرادی را که سازنده حذف کرده است در کمتر از یک ساعت دستگیر خواهد کرد،
و هیچ کس دیگری از آن زمان نخواسته است.

نشان [گزینه ...] /path/to/cache ...
این یک نوع دستور بازگشتی "ls -l" یا "stat" است که مالک اصلی را نشان می دهد
همچنین برای زمانی که مالک فایل ذخیره شده و فایل ابرداده تغییر کرده است
مالک اصلی را حفظ می کند (مطابق عبارت "Clean --set-user"). فایل های داده شده یا را نشان می دهد
همه تحت دایرکتوری های داده شده

فیلدها به صورت استاندارد کوتاه و به صورت مخفف طولانی عبارتند از:

MODE، حالت
حالت اکتال فایل کش، که معمولاً همانطور که در آن قرار داده شده است، منهای
بیت بنویس

EL، پیوندهای خارجی
تعداد پیوندهای سخت خارجی موجود به همه اعضای گروه در مجموع است.
فقط زمانی که این 0 باشد، فایل واجد شرایط تمیز کردن است.

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

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

UID مالک فایل کش. این ممکن است با گزینه "Clean --user" تغییر کند.

BI-UID
صاحب فایل اطلاعات ساخت. این با تمیز کردن تغییر نمی کند، اجازه دیدن را می دهد
که برای اولین بار فایل را ساخت.

اندازه
اندازه (یک کپی) در بایت.

atime, mtime, ctime
در فرم پرمخاطب طولانی، زمان دسترسی (خواندن) فایل، اصلاح را دریافت می کنید
زمان و زمان تغییر inode (مثلاً زمانی که کاربر پیوند خارجی خود را به آن حذف کرد
فایل کش). در فرم استاندارد کوتاه فقط یکی از سه بار را دریافت می کنید
در سه ستون مجزا:

AD, MD, CD
روز هفته دسترسی، تغییر یا تغییر inode.

ADATE، MDATE، CDATE
تاریخ دسترسی، تغییر یا تغییر inode.

ATIME، MTIME، CTIME
زمان روز دسترسی، تغییر یا تغییر ایند.

عضو
مسیر کامل فایل کش، از جمله کلید، از ریشه کش.

با "-v, --verbose" اطلاعات نشان داده شده برای هر دستور به شما امکان می دهد یک عدد را دریافت کنید
تصور کنید که کدام گزینه باید به دستور "پاک" داده شود. زمان ها در نشان داده شده است
فرم قابل خواندن و همچنین تعداد روز، ساعت یا دقیقه سن این فایل
به تازگی فراتر رفته است. اگر گزینه را دو برابر کنید، اطلاعات اضافی برای هر کدام را نیز دریافت خواهید کرد
عضوگروه.

گزینه های استاندارد: "-A، --args-file، --arguments-file=نام فایل، -f، --force، -o،
--output=نام فایل، -O، --outfail، -v، --verbose"

-a
--زمان
--زمان دسترسی
زمان دسترسی به فایل را به جای زمان تغییر فایل در حالت غیرکلامی نشان دهید.

-b
-- مخلوط کردن
---گروه ها
معمولا هر کدام /path/to/cache شما مشخص می کنید به طور جداگانه گروه ساخت را درمان می کند
حافظه نهان به آن تعلق دارد. هر گروه فقط یک بار درمان می شود، حتی اگر شما مشخص کنید
چندین مسیر از یک گروه با این گزینه به طور موقت همه را مخلوط می کنید
گروه هایی که مشخص می کنید در یک گروه قرار می گیرند.

-c
--ctime
--زمان تغییر
زمان تغییر اطلاعات inode را به جای زمان تغییر فایل به صورت غیرکلامی نشان دهید
حالت.

-d
--قابل حذف
فقط فایل‌های قابل حذف را نشان دهید، یعنی آنهایی که تعداد لینک خارجی آنها 0 است.

-p الگو
--الگو=الگو
الگو یک الگوی نام فایل سبک bash (یعنی ?، *، []، {،،}) با آن مطابقت دارد
نام اعضا پس از خط زیر که آنها را از کلید جدا می کند.

-s فهرست
-- مرتب سازی =فهرست
در حالت غیر کلامی ترتیب مرتب سازی را تغییر دهید. لیست به حروف بزرگ و کوچک حساس نیست
ترتیب عناوین ستون ها با کاما یا فاصله. دو مورد خاص وجود دارد:
"member" فقط نام های بعد از کلید را در نظر می گیرد، یعنی نام فایل ها را همانطور که هستند
خارج از کش و یک نام خاص "سن" وجود دارد که هر کدام را گروه بندی می کند
تاریخ و زمان نمایش داده می شود این گزینه به طور پیش فرض روی "عضو، سن" است.

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

آمار [گزینه ...] /path/to/cache ...
این خروجی چندین جدول آماری در مورد محتویات کش ساخت ایجاد می کند. هر جدول
به سه گروه ستون تقسیم می شود. ستون اول برای هر جدول متفاوت است و همان است
عنوان ردیف دو گروه دیگر مربوط به مجموع اندازه از فایل ها و تعداد فایل ها
برای آن عنوان دایرکتوری ها و فایل های اطلاعات ساخت شمارش نمی شوند، بنابراین این یک است
برای اندازه کمی کمتر از استفاده واقعی از دیسک و حدود نصف برای تعداد فایل ها.

هر یک از دو گروه اخیر از سه جفت ستون تشکیل شده است، یک ستون با مقدار،
و یک برای درصدی از کل که مقدار نشان می دهد. جفت اول نشان می دهد
اندازه فایل ها یا تعداد فایل ها. دو جفت دیگر نشان می دهد
CUMULیک بار از کوچکترین به بزرگترین و یک بار برعکس.

سه جدول اول، با ستون اول از AD, CD or MD نمایش زمان دسترسی، inode
زمان تغییر یا زمان‌های اصلاح گروه‌بندی شده بر اساس روز. روزها در واقع بلوک های 24 ساعته هستند
شمارش معکوس از زمان شروع دستور stats. ردیف "0" از اولین
بنابراین جدول مجموع اندازه ها و تعداد فایل های کمتر از یک روز را نشان می دهد
پیش. اگر هیچ فایلی در آن زمان مشاهده نشد، ردیف "0" وجود نخواهد داشت. ردیف "1" در سوم
جدول فایل های اصلاح شده (یعنی نوشته شده در کش ساخت) را بین 24 و 48 نشان می دهد
ساعتها پیش

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

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

یک میز دیگر، C: S کپی به پیوندهای نمادین، فقط مربوط به کش های گروه بندی شده است. در حالت ایده آل همه
اعضا در یک نسخه وجود دارند و یک پیوند نمادین کمتر از حافظه پنهان در گروه وجود دارد.
پیوندهای نمادین تا زمانی که تمیز کردن تکرار نشود، "0" باقی می مانند. ممکن است بیش از یک نسخه وجود داشته باشد،
اگر چندین نفر فایل یکسان را قبل از تکرار آن ایجاد کرده باشند، یا اگر
Replication فایل را به دیسک ترجیحی منتقل کرد، اما فایل اصلی هنوز در آن موجود بود
استفاده کنید. کپی‌های زائد زمانی به پیوند نمادین تبدیل می‌شوند که پاکسازی متوجه می‌شود که دیگر ندارند
لینک های خارجی.

گزینه های استاندارد: "-A، --args-file، --arguments-file=نام فایل، -v، --verbose"

-h
--ساعت ها
سه جدول اول را با جزئیات بسیار ریزتر نمایش دهید. عناوین ستون ها
تغییر به AH, CH or MH بر این اساس.

-p الگو
--الگو=الگو
الگو یک الگوی نام فایل سبک bash (یعنی ?، *، []، {،،}) با آن مطابقت دارد
نام اعضا پس از خط زیر که آنها را از کلید جدا می کند. همه آمار
محدود به فایل های مشابه هستند.

هشدارهای کارگر با ساختن انبارها
کش های ساخت در شرایط زیر به خوبی کار نمی کنند:

· اگر دستوری که makepp برای ساخت یک فایل اجرا می کند در واقع فقط به روز رسانی فایل و
آن را تازه نمی سازد، پس باید نه از build cache استفاده کنید (به عنوان مثال الف
دستور به روز رسانی یک ماژول در یک کتابخانه استاتیک (یک فایل بایگانی یا یک فایل با یک
گسترش از .a). همانطور که در makepp_cookbook توضیح داده شده است، در ماشین های مدرن تقریباً است
همیشه برای به روز رسانی یک فایل آرشیو ایده بدی است - بهتر است آن را از ابتدا بازسازی کنید
هر بار به دلایل مختلف این یک دلیل دیگر برای به روز رسانی نکردن است
فایل بایگانی.) دلیل آن این است که اگر حافظه پنهان ساخت بر روی آن واقع شود
همان سیستم فایل، makepp به جای کپی کردن فایل، یک لینک سخت ایجاد می کند. اگر شما پس
پس از آن فایل را تغییر دهید، فایلی که makepp در کش ساخت دارد
در واقع اصلاح شود، و شما به طور بالقوه می توانید کامپایل شخص دیگری را خراب کنید.
در عمل، makepp معمولاً می تواند تشخیص دهد که یک فایل از همان زمان اصلاح شده است
در کش ساخت قرار می گیرد و از آن استفاده نمی کند، اما گاهی اوقات ممکن است واقعاً این کار را نکند
تشخیص اصلاح

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

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

&echo prog_path=$(PWD) -o $(خروجی)

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

echo prog_path=`pwd` > $(خروجی)

به درستی کار نخواهد کرد

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

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

در این سناریو، مهم نیست از چه استراتژی پاکسازی استفاده می کنید، هیچ فایلی حذف نمی شود.
زیرا همه آنها هنوز در حال استفاده هستند. مشکل این است که همه آنها متعلق به چانگ هستند،
که می تواند باعث شود او به سهمیه دیسک خود برسد و هیچ کاری نمی تواند در مورد آن انجام دهد
اکثر سیستم ها دستور "clean --set-user" را در زیر "چگونه یک build cache مدیریت کنیم" را ببینید.
برای اینکه چگونه مدیر سیستم می تواند فایل ها را به یک مالک کش بدون سهمیه تغییر دهد.

· اگر از امضاهای مهر زمان/اندازه برای بررسی متقابل هدف و ساخت آن استفاده می کنید
اطلاعات (پیش‌فرض)، سپس می‌توان یک نام مستعار امضا دریافت کرد، که در آن غیر
فایل های مربوطه شناسایی نمی شوند. به عنوان مثال، مقدار اطلاعات ساخت MD5_SUM
ممکن است با جمع کنترلی MD5 هدف مطابقت نداشته باشد. این معمولا یک مشکل نیست، زیرا
با توجه به این واقعیت که کلیدهای کش ساخت با هدف موجود در کش ساخت مطابقت دارند
قابل جایگزینی برای هدفی است که با فایل اطلاعات ساخت مطابقت دارد.
با این حال، اگر اقدامات قانونی دارید که به اطلاعات ساخت بستگی دارد، ممکن است شما را دریافت کند
دچار مشکل (پس این کار را نکنید). اگر این شما را نگران می کند، از --md5-check-bc استفاده کنید
گزینه.

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

علاوه بر این، برخی از افراد از حافظه پنهان ساخته شده بر روی NFS استفاده می کنند که لزوماً منسجم نیست. که در
به عبارت دیگر ترتیب ایجاد و حذف فایل توسط نویسنده در یک هاست انجام نمی شود
لزوماً با ترتیبی که خواننده در میزبان دیگری مشاهده می کند مطابقت دارد، و بنابراین مسابقه ها نمی توان
با توجه خاص به ترتیب عملیات فایل حل شود. (ولی اینجا هست
معمولاً وقفه کش NFS در حدود 1 دقیقه است که تضمین می کند که نوشتن هیچ طول می کشد
بیش از این مدت زمان برای انتشار به همه خوانندگان. علاوه بر این، به طور معمول در
تمرین حداقل 99% از نوشته ها در همه جا در عرض 1 ثانیه قابل مشاهده است.) به همین دلیل،
ما باید شرایطی را تحمل کنیم که در آن هدف ذخیره شده و فایل اطلاعات ساخت آن به نظر نمی رسد
مطابقت. علاوه بر این، یک نژاد عجیب و غریب وجود دارد که می تواند زمانی رخ دهد که یک فایل باشد
به طور همزمان قدیمی و جایگزین می شود، که در آن فایل ها حتی پس از NFS مطابقت ندارند
کش فلاش می شود. به نظر می رسد که این امر اجتناب ناپذیر است.

از makepp_build_cache_control به صورت آنلاین با استفاده از خدمات onworks.net استفاده کنید


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

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

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

Ad