CREATEREPO_C(8) CREATEREPO_C(8)

createrepo_c - ایجاد مخزن با قالب rpm-md (فرامتاداده xml-rpm)

createrepo_c [گزینه‌ها] <دایرکتوری>

از بسته‌های rpm موجود در <دایرکتوری> برای ایجاد داده‌های مخزن (repodata) استفاده می‌کند.

در صورتی که با پشتیبانی از libmodulemd کامپایل شده باشد، متاداده‌های ماژولار درون <دایرکتوری> که با الگوهای زیر و تمام نسخه‌های فشرده آن‌ها شناسایی می‌شوند، به طور خودکار جمع‌آوری، ادغام و به repodata اضافه می‌گردند.

الگوها عبارتند از:

  • *.modulemd.yaml (نام فایل پیشنهادی: N:S:V:C:A.modulemd.yaml)
  • *.modulemd-defaults.yaml (نام فایل پیشنهادی: N.modulemd-defaults.yaml)
  • modules.yaml (روش پیشنهادی برای وارد کردن همزمان چندین سند)

نمایش شماره نسخه برنامه و خروج.

اجرای خاموش و بدون خروجی متنی اضافه.

اجرا با جزئیات کامل (پرحرف).

الگوهای مسیر برای نادیده گرفتن؛ می‌تواند چندین بار مشخص شود. الگوها با مسیرهای نسبی به RPMها مطابقت داده می‌شوند. توجه داشته باشید که این ویژگی از تابع g_pattern_match() استفاده می‌کند، نه glob()؛ برای تفاوت‌های معنایی به https://developer.gnome.org/glib/stable/glib-Glob-style-pattern-matching.html مراجعه کنید.

دایرکتوری پایه (basedir) برای مسیر به دایرکتوری‌ها.

آدرس اینترنتی (URL) پایه اختیاری برای همه فایل‌ها.

مسیر به فایل گروه‌ها (groupfile) برای گنجاندن در متاداده.

انتخاب نوع چکسام مورد استفاده در repomd.xml و برای بسته‌های موجود در متاداده. پیش‌فرض در حال حاضر sha256 است.

اطمینان از قالب‌بندی و فاصله‌گذاری مرتب تمام xml تولیدشده (پیش‌فرض).

کوچک‌سازی (minify) محتوای xml تولیدشده. این کار به طور میانگین اندازه فایل فشرده را ۲ درصد کاهش می‌دهد.

منسوخ‌شده: ایجاد پایگاه‌های داده sqlite برای استفاده با yum.

عدم ایجاد پایگاه‌های داده sqlite در مخزن.

اگر متاداده از قبل در دایرکتوری خروجی وجود داشته باشد و یک فایل rpm از زمان ایجاد متاداده بدون تغییر مانده باشد (بر اساس اندازه فایل و mtime)، به جای محاسبه مجدد، از متاداده موجود استفاده مجدد می‌شود. در مخازن بزرگ با تعداد اندکی بسته rpm جدید یا تغییریافته، این کار می‌تواند زمان ورودی/خروجی و پردازش را به طور چشمگیری کاهش دهد.

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

نادیده گرفتن فراخوانی تابع stat() هنگام استفاده از --update؛ فرض می‌کند اگر نام فایل یکی باشد، محتوای فایل نیز بدون تغییر است (فقط در صورتی از این گزینه استفاده کنید که کاملاً مطمئن و خوش‌بین هستید).

اجرا در حالت رسانه تفکیک‌شده (split media). به جای ارسال یک دایرکتوری منفرد، مجموعه‌ای از دایرکتوری‌ها متناظر با دیسک‌ها یا جلدهای مختلف در یک مجموعه رسانه‌ای دریافت می‌شود. متاداده در اولین دایرکتوری ارائه‌شده ایجاد می‌گردد.

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

تعیین بسته‌ها برای گنجاندن در خط فرمان. نشانی‌های وب و مسیرهای محلی را می‌پذیرد.

فقط با --update کاربرد دارد. فهرست بسته‌ها را از متاداده قدیمی می‌خواند و به جای پیمایش (احتمالاً سنگین) دایرکتوری، از آن دوباره استفاده می‌کند. این گزینه با بسته‌های مشخص‌شده از طریق --pkglist یا --includepkg تداخل ندارد و آن بسته‌ها به انتهای لیست بازیابی‌شده افزوده می‌شوند. این گزینه برای تغییرات با ورودی/خروجی بهینه در مخزن (حذف بسته با --exclude و افزودن با --pkglist) بسیار مفید است.

دایرکتوری خروجی اختیاری.

نادیده گرفتن پیوندهای نمادین (symlinks) بسته‌ها.

فقط وارد کردن آخرین N ورودی تغییرات (changelog) از هر rpm به متاداده.

گنجاندن چکسام فایل در نام فایل متاداده که به کشینگ HTTP کمک می‌کند (پیش‌فرض).

عدم درج چکسام فایل در نام فایل متاداده.

اگر NUM برابر با 0 باشد، تمام داده‌های مخزن موجود در repomd.xml قدیمی حذف می‌شوند؛ هر عدد مثبت دیگری تمام داده‌های قدیمی مخزن را نگه می‌دارد. از فلگ --compatibility برای دریافت رفتار نسخه اصلی createrepo استفاده کنید: حفظ NUM نسخه از جدیدترین نسخه‌های قدیمی داده‌های مخزن بر اساس برچسب زمانی (فقط برای primary، filelists، other و نسخه‌های دیتابیس آن‌ها کار می‌کند).

برچسب توزیع و cpeid اختیاری: --distro'cpeid,textname'.

برچسب‌ها برای محتوای درون مخزن.

برچسب‌ها برای توصیف خود مخزن.

بازبینی (revision) تعیین‌شده توسط کاربر برای این مخزن.

تنظیم فیلدهای برچسب زمان در repomd.xml و زمان‌های آخرین تغییر repodata ایجادشده به مقدار داده‌شده با --revision. این امر مستلزم آن است که مقدار --revision یک برچسب زمانی با قالب 'date +%s' باشد.

چاپ مسیر بسته‌هایی که واقعاً خوانده شده‌اند؛ با --update کاربرد دارد.

تعداد فرآیندهای کارگر (workers) برای خواندن بسته‌های rpm.

استفاده از xz برای فشرده‌سازی داده‌های مخزن.

تعیین نوع فشرده‌سازی مورد استفاده. قالب‌های فشرده‌سازی پشتیبانی‌شده عبارتند از: bz2، gz، zck، zstd، xz.

نوع فشرده‌سازی برای استفاده (حتی برای xmlهای primary، filelists و other).

تولید فایل‌های zchunk علاوه بر داده‌های استاندارد مخزن.

دایرکتوری حاوی دیکشنری‌های فشرده‌سازی برای استفاده توسط zchunk.

نگه‌داشتن تمام متاداده‌های تکمیلی (به جز فایل‌های xml یا sqlite مربوط به primary، filelists، other و نسخه‌های فشرده آن‌ها) از مخزن مبدا در طول به‌روزرسانی (پیش‌فرض).

دور انداختن تمام متاداده‌های تکمیلی (به جز فایل‌های xml یا sqlite مربوط به primary، filelists، other و نسخه‌های فشرده آن‌ها) از مخزن مبدا در حین به‌روزرسانی.

اعمال بیشترین سازگاری با نسخه سنتی createrepo (رفتار --retain-old-md را تغییر داده و فشرده‌سازی را به صورت پیش‌فرض روی Gzip قرار می‌دهد).

در حین اجرای --update، تمام فایل‌های موجود در repodata/ را که قدیمی‌تر از بازه زمانی مشخص‌شده هستند حذف می‌کند (مانند '2h' یا '30d' و...). واحدهای در دسترس: m برای دقیقه، h برای ساعت، d برای روز.

تنظیم مسیر به دایرکتوری کش.

به createrepo دستور می‌دهد تا فایل‌های deltarpms و متاداده دلتا را ایجاد کند.

مسیرهایی برای جستجوی بسته‌های قدیمی‌تر جهت محاسبه دلتا. می‌تواند چندین بار مشخص شود.

تعداد نسخه‌های قدیمی‌تر برای ایجاد دلتا نسبت به آن‌ها. پیش‌فرض 1 است.

حداکثر اندازه بسته rpm بر حسب بایت برای اجرای deltarpm.

ایجاد پایگاه‌های داده sqlite به صورت محلی (درون دایرکتوری فایل‌های موقت). گاهی اوقات sqlite برای ایجاد دیتابیس روی اتصالات NFS دچار مشکل می‌شود؛ در چنین مواقعی از این گزینه استفاده کنید. این گزینه در صورتی که TMPDIR روی /tmp تنظیم شده باشد یا اصلاً تنظیم نشده باشد، می‌تواند مصرف حافظه را بالا ببرد زیرا دایرکتوری /tmp معمولاً در رم (ramdisk) قرار دارد.

نادیده گرفتن NUM جزءِ دایرکتوری در location_href هنگام ایجاد داده‌های مخزن.

افزودن این پیشوند پیش از location_href در داده‌های مخزن خروجی.

نوع چکسام مورد استفاده در repomd.xml.

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

گزینه کارشناسانه (پرخطر): نادیده گرفتن پوشه موجود .repodata/. (پوشه موجود .repodata/ را حذف کرده و پوشه جدید خالی ایجاد می‌کند تا به عنوان قفل برای سایر نمونه‌های createrepo عمل کند. برای ایجاد repodata، یک پوشه موقت دیگر با نامی به قالب .repodata.time.microseconds.pid/ استفاده خواهد شد). توجه: با مسئولیت خودتان از این گزینه استفاده کنید! اگر دو پردازش createrepo همزمان اجرا شوند، وضعیت متاداده تولیدی تضمین‌شده نیست و می‌تواند متناقض و نامعتبر باشد.

2021-09-23