| 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 |