CREATEREPO_C(8) CREATEREPO_C(8) نام (NAME) createrepo_c - ایجاد مخزن با قالب rpm-md (فرامتاداده xml-rpm) خلاصه دستور (SYNOPSIS) createrepo_c [گزینه‌ها] <دایرکتوری> توضیحات (DESCRIPTION) از بسته‌های rpm موجود در <دایرکتوری> برای ایجاد داده‌های مخزن (repodata) استفاده می‌کند. در صورتی که با پشتیبانی از libmodulemd کامپایل شده باشد، متاداده‌های ماژولار درون <دایرکتوری> که با الگوهای زیر و تمام نسخه‌های فشرده آن‌ها شناسایی می‌شوند، به طور خودکار جمع‌آوری، ادغام و به repodata اضافه می‌گردند. الگوها عبارتند از: • *.modulemd.yaml (نام فایل پیشنهادی: N:S:V:C:A.modulemd.yaml) • *.modulemd-defaults.yaml (نام فایل پیشنهادی: N.modulemd-defaults.yaml) • modules.yaml (روش پیشنهادی برای وارد کردن همزمان چندین سند) گزینه‌ها (OPTIONS) -V --version نمایش شماره نسخه برنامه و خروج. -q --quiet اجرای خاموش و بدون خروجی متنی اضافه. -v --verbose اجرا با جزئیات کامل (پرحرف). -x --excludes PACKAGE_NAME_GLOB الگوهای مسیر برای نادیده گرفتن؛ می‌تواند چندین بار مشخص شود. الگوها با مسیرهای نسبی به RPMها مطابقت داده می‌شوند. توجه داشته باشید که این ویژگی از تابع g_pattern_match() استفاده می‌کند، نه glob()؛ برای تفاوت‌های معنایی به https://developer.gnome.org/glib/stable/glib-Glob-style- pattern-matching.html مراجعه کنید. --basedir BASEDIR دایرکتوری پایه (basedir) برای مسیر به دایرکتوری‌ها. -u --baseurl URL آدرس اینترنتی (URL) پایه اختیاری برای همه فایل‌ها. -g --groupfile GROUPFILE مسیر به فایل گروه‌ها (groupfile) برای گنجاندن در متاداده. -s --checksum CHECKSUM_TYPE انتخاب نوع چکسام مورد استفاده در repomd.xml و برای بسته‌های موجود در متاداده. پیش‌فرض در حال حاضر sha256 است. -p --pretty اطمینان از قالب‌بندی و فاصله‌گذاری مرتب تمام xml تولیدشده (پیش‌فرض). -p --no-pretty کوچک‌سازی (minify) محتوای xml تولیدشده. این کار به طور میانگین اندازه فایل فشرده را ۲ درصد کاهش می‌دهد. -d --database منسوخ‌شده: ایجاد پایگاه‌های داده sqlite برای استفاده با yum. --no-database عدم ایجاد پایگاه‌های داده sqlite در مخزن. --update اگر متاداده از قبل در دایرکتوری خروجی وجود داشته باشد و یک فایل rpm از زمان ایجاد متاداده بدون تغییر مانده باشد (بر اساس اندازه فایل و mtime)، به جای محاسبه مجدد، از متاداده موجود استفاده مجدد می‌شود. در مخازن بزرگ با تعداد اندکی بسته rpm جدید یا تغییریافته، این کار می‌تواند زمان ورودی/خروجی و پردازش را به طور چشمگیری کاهش دهد. --update-md-path متاداده‌های موجود از این مسیر بارگذاری شده و علاوه بر متاداده‌های موجود در دایرکتوری خروجی، دوباره استفاده می‌شوند (فقط همراه با --update کار می‌کند). می‌تواند چندین بار مشخص شود. --skip-stat نادیده گرفتن فراخوانی تابع stat() هنگام استفاده از --update؛ فرض می‌کند اگر نام فایل یکی باشد، محتوای فایل نیز بدون تغییر است (فقط در صورتی از این گزینه استفاده کنید که کاملاً مطمئن و خوش‌بین هستید). --split اجرا در حالت رسانه تفکیک‌شده (split media). به جای ارسال یک دایرکتوری منفرد، مجموعه‌ای از دایرکتوری‌ها متناظر با دیسک‌ها یا جلدهای مختلف در یک مجموعه رسانه‌ای دریافت می‌شود. متاداده در اولین دایرکتوری ارائه‌شده ایجاد می‌گردد. -i --pkglist FILENAME مشخص کردن یک فایل متنی حاوی فهرست کامل فایل‌ها از میان موارد یافت‌شده در دایرکتوری، جهت گنجاندن در مخزن. قالب فایل به صورت یک بسته در هر خط است و نباید شامل نویسه‌های عام (wildcard یا glob) باشد. -n --includepkg PACKAGE تعیین بسته‌ها برای گنجاندن در خط فرمان. نشانی‌های وب و مسیرهای محلی را می‌پذیرد. --recycle-pkglist فقط با --update کاربرد دارد. فهرست بسته‌ها را از متاداده قدیمی می‌خواند و به جای پیمایش (احتمالاً سنگین) دایرکتوری، از آن دوباره استفاده می‌کند. این گزینه با بسته‌های مشخص‌شده از طریق --pkglist یا --includepkg تداخل ندارد و آن بسته‌ها به انتهای لیست بازیابی‌شده افزوده می‌شوند. این گزینه برای تغییرات با ورودی/خروجی بهینه در مخزن (حذف بسته با --exclude و افزودن با --pkglist) بسیار مفید است. -o --outputdir URL دایرکتوری خروجی اختیاری. -S --skip-symlinks نادیده گرفتن پیوندهای نمادین (symlinks) بسته‌ها. --changelog-limit NUM فقط وارد کردن آخرین N ورودی تغییرات (changelog) از هر rpm به متاداده. --unique-md-filenames گنجاندن چکسام فایل در نام فایل متاداده که به کشینگ HTTP کمک می‌کند (پیش‌فرض). --simple-md-filenames عدم درج چکسام فایل در نام فایل متاداده. --retain-old-md NUM اگر NUM برابر با 0 باشد، تمام داده‌های مخزن موجود در repomd.xml قدیمی حذف می‌شوند؛ هر عدد مثبت دیگری تمام داده‌های قدیمی مخزن را نگه می‌دارد. از فلگ --compatibility برای دریافت رفتار نسخه اصلی createrepo استفاده کنید: حفظ NUM نسخه از جدیدترین نسخه‌های قدیمی داده‌های مخزن بر اساس برچسب زمانی (فقط برای primary، filelists، other و نسخه‌های دیتابیس آن‌ها کار می‌کند). --distro DISTRO برچسب توزیع و cpeid اختیاری: --distro'cpeid,textname'. --content CONTENT_TAGS برچسب‌ها برای محتوای درون مخزن. --repo REPO_TAGS برچسب‌ها برای توصیف خود مخزن. --revision REVISION بازبینی (revision) تعیین‌شده توسط کاربر برای این مخزن. --set-timestamp-to-revision تنظیم فیلدهای برچسب زمان در repomd.xml و زمان‌های آخرین تغییر repodata ایجادشده به مقدار داده‌شده با --revision. این امر مستلزم آن است که مقدار --revision یک برچسب زمانی با قالب 'date +%s' باشد. --read-pkgs-list READ_PKGS_LIST چاپ مسیر بسته‌هایی که واقعاً خوانده شده‌اند؛ با --update کاربرد دارد. --workers تعداد فرآیندهای کارگر (workers) برای خواندن بسته‌های rpm. --xz استفاده از xz برای فشرده‌سازی داده‌های مخزن. --compress-type COMPRESSION_TYPE تعیین نوع فشرده‌سازی مورد استفاده. قالب‌های فشرده‌سازی پشتیبانی‌شده عبارتند از: bz2، gz، zck، zstd، xz. --general-compress-type COMPRESSION_TYPE نوع فشرده‌سازی برای استفاده (حتی برای xmlهای primary، filelists و other). --zck تولید فایل‌های zchunk علاوه بر داده‌های استاندارد مخزن. --zck-dict-dir ZCK_DICT_DIR دایرکتوری حاوی دیکشنری‌های فشرده‌سازی برای استفاده توسط zchunk. --keep-all-metadata نگه‌داشتن تمام متاداده‌های تکمیلی (به جز فایل‌های xml یا sqlite مربوط به primary، filelists، other و نسخه‌های فشرده آن‌ها) از مخزن مبدا در طول به‌روزرسانی (پیش‌فرض). --discard-additional-metadata دور انداختن تمام متاداده‌های تکمیلی (به جز فایل‌های xml یا sqlite مربوط به primary، filelists، other و نسخه‌های فشرده آن‌ها) از مخزن مبدا در حین به‌روزرسانی. --compatibility اعمال بیشترین سازگاری با نسخه سنتی createrepo (رفتار --retain-old-md را تغییر داده و فشرده‌سازی را به صورت پیش‌فرض روی Gzip قرار می‌دهد). --retain-old-md-by-age AGE در حین اجرای --update، تمام فایل‌های موجود در repodata/ را که قدیمی‌تر از بازه زمانی مشخص‌شده هستند حذف می‌کند (مانند '2h' یا '30d' و...). واحدهای در دسترس: m برای دقیقه، h برای ساعت، d برای روز. -c --cachedir CACHEDIR. تنظیم مسیر به دایرکتوری کش. --deltas به createrepo دستور می‌دهد تا فایل‌های deltarpms و متاداده دلتا را ایجاد کند. --oldpackagedirs PATH مسیرهایی برای جستجوی بسته‌های قدیمی‌تر جهت محاسبه دلتا. می‌تواند چندین بار مشخص شود. --num-deltas INT تعداد نسخه‌های قدیمی‌تر برای ایجاد دلتا نسبت به آن‌ها. پیش‌فرض 1 است. --max-delta-rpm-size MAX_DELTA_RPM_SIZE حداکثر اندازه بسته rpm بر حسب بایت برای اجرای deltarpm. --local-sqlite ایجاد پایگاه‌های داده sqlite به صورت محلی (درون دایرکتوری فایل‌های موقت). گاهی اوقات sqlite برای ایجاد دیتابیس روی اتصالات NFS دچار مشکل می‌شود؛ در چنین مواقعی از این گزینه استفاده کنید. این گزینه در صورتی که TMPDIR روی /tmp تنظیم شده باشد یا اصلاً تنظیم نشده باشد، می‌تواند مصرف حافظه را بالا ببرد زیرا دایرکتوری /tmp معمولاً در رم (ramdisk) قرار دارد. --cut-dirs NUM نادیده گرفتن NUM جزءِ دایرکتوری در location_href هنگام ایجاد داده‌های مخزن. --location-prefix PREFIX افزودن این پیشوند پیش از location_href در داده‌های مخزن خروجی. --repomd-checksum CHECKSUM_TYPE نوع چکسام مورد استفاده در repomd.xml. --error-exit-val خروج با کد وضعیت ۲ در صورت وجود هرگونه خطا حین پردازش (گزینه منسوخ‌شده؛ به صورت پیش‌فرض فعال است). --ignore-lock گزینه کارشناسانه (پرخطر): نادیده گرفتن پوشه موجود .repodata/. (پوشه موجود .repodata/ را حذف کرده و پوشه جدید خالی ایجاد می‌کند تا به عنوان قفل برای سایر نمونه‌های createrepo عمل کند. برای ایجاد repodata، یک پوشه موقت دیگر با نامی به قالب .repodata.time.microseconds.pid/ استفاده خواهد شد). توجه: با مسئولیت خودتان از این گزینه استفاده کنید! اگر دو پردازش createrepo همزمان اجرا شوند، وضعیت متاداده تولیدی تضمین‌شده نیست و می‌تواند متناقض و نامعتبر باشد. 2021-09-23 CREATEREPO_C(8)