| ZYPP.CONF(5) | LIBZYPP File Formats Manual | ZYPP.CONF(5) |
نام (NAME)
zypp.conf - فایل پیکربندی کتابخانه مدیریت بسته ZYpp
خلاصه دستور (SYNOPSIS)
فایلهای
پیکربندی
سیستم: /etc/zypp/zypp.conf
/etc/zypp/zypp.conf.d/*.conf.
فایلهای
پیکربندی
ارائهدهنده:
/usr/etc/zypp/zypp.conf /usr/etc/zypp/zypp.conf.d/*.conf.
توضیحات (DESCRIPTION)
این فایلها حاوی دادههای پیکربندی پایه برای libzypp هستند؛ کتابخانه مدیریت بستهای که توسط فرآیندهایی نظیر zypper(8)، YAST(8) یا پسدستانه zypp در PackageKit استفاده میشود. بسیاری از مقادیر پیکربندی میتوانند توسط فرآیندها بر اساس گزینههای خط فرمان یا سایر نیازها اصلاح شوند. در غیر این صورت، مقادیر تعریفشده در اینجا به عنوان پیشفرض استفاده میشوند. هنگامی که این فایلها پارامتر خاصی را مشخص نکنند، مقادیر پیشفرض توکار libzypp به کار گرفته میشوند.
قالب این
فایل از
بخشهای
چندگانه
پشتیبانی
میکند که
هر یک
میتوانند
شامل چندین
انتساب
کلید-مقدار
باشند. هر
بخش با خطی
شامل نام
بخش درون
براکتها
معرفی
میشود،
مانند:
[name]
یک انتساب
کلید-مقدار
یک خط منفرد
است که شامل
نام کلید،
یک علامت
مساوی و
تنظیمی
برای مقدار
است، مانند:
key =
value
فاصلههای
خالی ابتدا
و انتهای خط
و
فاصلههای
اطراف
علامت
مساوی
نادیده
گرفته
میشوند.
نکته: انتسابهای کلید-مقدار خارج از هر بخش به یک بخش بدون نام متصل میشوند و ممکن است شناخته نشوند.
جستجوی نام بخشها و کلیدها به حروف بزرگ و کوچک حساس است.
هر خطی که با # شروع شود و همچنین هر خط خالی نادیده گرفته میشود.
در جایی که یک مقدار بولی مورد انتظار باشد، میتوان از هر یک از مقادیر 1، 0، yes، no، on، off، true یا false استفاده کرد. مقایسهها در اینجا به حروف بزرگ و کوچک حساس نیستند.
برای یادگیری نحوه ادغام فایلهای پیکربندی مختلف، بخش فایلها (FILES) را ببینید. توصیه ما نگهداری پیکربندی سیستم با استفاده از فایلهای تکمیلی (drop-in) در /etc/zypp/zypp.conf.d/ است، به جای آنکه پیکربندی ارائهدهنده را با یک فایل اختصاصی /etc/zypp/zypp.conf بازنویسی کنید؛ هرچند هر دو روش امکانپذیر است. فقط اطمینان حاصل کنید که /etc/zypp/zypp.conf شما شامل تنظیمات مناسبی برای کلیدهای تعریفشده در /usr/etc/zypp/zypp.conf باشد. در زمان نگارش این سند، این کلیدها تنها شامل multiversion و multiversion.kernels هستند.
بخشها (SECTIONS)
بخشهای
زیر
شناختهشده
هستند و
میتوانند
شامل
انتسابهای
کلید
مشخصشده
باشند.
مقدار
پیشفرض
توکار libzypp
برای هر
کلید در
پرانتز
آورده شده
است، مانند:
key
(value)
برای برخی
کلیدها
مقدار
پیشفرض
توکار
ثابتی وجود
ندارد،
بلکه
بهترین
مقدار با
توجه به کار
مشخصی که
باید انجام
شود انتخاب
میشود. در
حالی که
تعیین یک
مقدار ثابت
ممکن است،
اغلب
بهترین
تصمیم این
است که این
کلید را
اصلاً
تعریف
نکنید. این
موضوع با
نمایش <UNSET>
به عنوان
مقدار
پیشفرض
نشان داده
شده است،
مانند:
key
(<UNSET>)
بسیاری از
مقادیر
پیشفرض
تعیینشده
در اینجا را
میتوان از
طریق
گزینههای
خط فرمان zypper
لغو کرد. این
موضوع به
ویژه برای
پیشفرضهای
مربوط به
حلکننده
وابستگی (resolver)
صادق است.
برای
جزئیات
بیشتر به
صفحه
راهنمای zypper(8)
مراجعه
کنید.
[main]
lock_timeout (0 sec)
میتوان از متغیر محیطی ZYPP_LOCK_TIMEOUT برای لغو این تنظیم استفاده کرد. مقدار ZYPP_LOCK_TIMEOUT=-1 گاهی توسط اسکریپتهایی که بدون نظارت اجرا میشوند تنظیم میشود تا در صورت در دسترس نبودن قفل، به جای شکست دستور zypper، اجرای آن را به تعویق بیندازد.
cachedir (/var/cache/zypp)
metadatadir ({cachedir}/raw)
solvfilesdir ({cachedir}/solv)
packagesdir ({cachedir}/packages)
configdir (/etc/zypp)
reposdir ({configdir}/repos.d)
servicesdir ({configdir}/services.d)
varsdir ({configdir}/vars.d)
یک متغیر سفارشی مخزن با ایجاد فایلی در داخل پوشه varsdir تعریف میشود. نام متغیر برابر با نام فایل است. خط اول فایل (تا قبل از نویسه خط جدید) مقدار متغیر را تعیین میکند. برای جزئیات بیشتر بخش Variable substitution را در صفحه راهنمای zypper(8) ببینید.
vendordir ({configdir}/vendors.d)
هر فایل در این پوشه، فهرستی با کاما جداشده از پیشوندهای رشتهای ارائهدهندگان همارز را تعریف میکند (مقایسه غیرحساس به حروف بزرگ و کوچک):
-------------------- file begin ---------------- [main] vendors = MyVendor,AlternateName -------------------- file end ------------------
با این کار، رشتههای ارائهدهندهای که با «MyVendor» یا «AlternateName» آغاز میشوند، همارز در نظر گرفته میشوند. بستههای ارائهدهندگان همارز میتوانند بدون آنکه به عنوان تغییر ارائهدهنده (vendor change) در نظر گرفته شوند، جایگزین یکدیگر گردند.
نکته: درون فضای نام «*opensuse» تطابقهای دقیق (بدون حساسیت به حروف بزرگ و کوچک) الزامی است. مقدار «vendors = suse,opensuse» جابجایی بین «*suse» و «opensuse» را مجاز میشمارد، اما برای نمونه «opensuse build service» مجاز نخواهد بود.
repo.add.probe (false)
repo.refresh.delay (10 min)
مقدار 0 یعنی مخزن همیشه بررسی خواهد شد. برای دستیابی به نتیجه معکوس، گزینه autorefresh را برای مخزن غیرفعال کنید. این گزینه هیچ تأثیری روی درخواستهای تازهسازی صریحاً ارسالشده توسط کاربر ندارد.
repo.refresh.locales (en)
فهرست نهایی در عمل از طریق دستورات locales، addlocale و removelocale در zypper کنترل میشود. محلیسازیهای تعریفشده در اینجا صرفاً ماندگار (sticky) هستند.
download.max_concurrent_connections (5)
download.min_download_speed (0 B/sec)
این گزینه میتواند برای جلوگیری از حملات امنیتی به میزبانها از طریق ارائه بهروزرسانیها با سرعت بسیار کم مفید باشد.
download.max_download_speed (0 B/sec)
download.max_silent_tries (1)
download.connect_timeout (60 sec)
download.transfer_timeout (180 sec)
download.use_deltarpm (false) (true on SUSE-15.6 and older)
download.use_deltarpm.always (false)
download.media_preference (download)
توجه داشته باشید که این صرفاً یک پیشنهاد است. در درجه اول، حلکننده وابستگی بهترین بسته را بر اساس اولویت مخزن، نسخه و معماری آن انتخاب خواهد کرد. اما اگر حق انتخابی وجود داشته باشد، بستههای رسانه ترجیحدادهشده در اولویت قرار میگیرند.
بستههایی که به صورت محلی موجود هستند همیشه ترجیح داده میشوند. پرسش این است که اگر بستهها روی هر دو رسانه موجود باشند، آیا ترجیح میدهید بستهها از طریق FTP/HTTP/HTTPS دانلود شوند (download)، یا اینکه از شما خواسته شود یک CD/DVD را وارد کنید (volatile).
download.media_mountdir (/var/adm/mount)
پسدستانه رسانه تلاش خواهد کرد نقاط اتصال و نواحی دانلود رسانه را در زیر این پوشه سازماندهی کند، مگر اینکه مکان دیگری توسط برنامه درخواست شده باشد. اگر این پوشه برای یک کاربر خاص قابل دسترسی و خواندن/نوشتن نباشد، حالت جایگزین استفاده از /var/tmp است.
download.use_geoip_mirror (true)
پسدستانه رسانه ممکن است درخواستهای دانلود را به نزدیکترین آینه (mirror) در دسترس از نظر جغرافیایی بازنویسی کند. آینه دقیق مورد استفاده با درخواست یک فایل «geoip» از download.opensuse.org از طریق درخواست HTTP GET به https://download.opensuse.org/geoip تعیین میشود و سرور در صورت امکان از IP کلاینت برای تعیین نزدیکترین آینه استفاده خواهد کرد.
با این حال، برخی فایلهای خاص به دلایل امنیتی از این تغییر مسیر مستثنی شدهاند، به ویژه نمایه فرادادههای مخزن و فایلهای کلید و چکسام آن: repomd.xml{,.key,.asc}.
gpgcheck (on)
pkg_gpgcheck (<UNSET>, depending on {gpgcheck})
بررسی پیشفرض امضای فرادادههای مخزن و بستههای rpm دانلودشده.
نکته:
تنظیم صریح
gpgcheck، repo_gpgcheck و/یا
pkg_gpgcheck در فایل .repo
یک مخزن،
این
پیشفرضها
را برای آن
مخزن خاص
بازنویسی
خواهد کرد.
دستورات zypper
addrepo و modifyrepo
چندین
گزینه
مربوط به gpgcheck
را برای
تنظیم دقیق
این رفتار
فراهم
میکنند.
برای
جزئیات به
صفحه
راهنمای zypper(8)
مراجعه
کنید.
اگر gpgcheck روی on باشد (پیشفرض توصیهشده)، امضای فرادادههای مخزن را بررسی خواهیم کرد. استفاده از مخازن بدون امضا نیازمند تأیید است.
بستههای مخازن امضاشده در صورتی پذیرفته میشوند که چکسام آنها با چکسام ذکرشده در فرادادههای مخزن مطابقت داشته باشد.
بستههای مخازن بدون امضا نیازمند یک امضای gpg معتبر هستند. استفاده از بستههای بدون امضا نیازمند تأیید است.
رفتار پیشفرض فوق را میتوان با تنظیم صریح repo_gpgcheck و/یا pkg_gpgcheck سفارشی کرد. اما به طور کلی توصیه میشود که تنظیمات را برای هر مخزن به صورت جداگانه تسهیل کنید، تا اینکه پیشفرضهای سراسری را کاهش دهید:
مقدار repo_gpgcheck =
on همانند
رفتار
پیشفرض
است.
مقدار repo_gpgcheck =
off مخازن
بدون امضا
را بدون
هشدار
میپذیرد.
این کار
بررسی امضا
را به طور
کلی
غیرفعال
نمیکند.
با این حال،
تنظیم امنی
نیست.
مقدار pkg_gpgcheck =
on بررسی
امضای بسته
و نیاز به
تأیید
بستههای
بدون امضا
را برای همه
مخازن
(امضاشده و
بدون امضا)
اجباری
میکند.
مقدار pkg_gpgcheck =
off بستههای
بدون امضا
را بدون
هشدار
میپذیرد.
این کار
بررسی امضا
را به طور
کلی
غیرفعال
نمیکند.
با این حال،
تنظیم امنی
نیست.
اگر gpgCheck روی off باشد (توصیه نمیشود)، هیچ بررسی انجام نخواهد شد. همچنان میتوانید آنها را به صورت جداگانه با تنظیم repo_gpgcheck و/یا pkg_gpgcheck روی on فعال کنید.
غیرفعال
کردن
بررسیهای GPG
توصیه
نمیشود.
امضای
دادهها
دریافتکننده
را قادر
میسازد تا
تأیید کند
که هیچ
تغییری پس
از امضای
دادهها رخ
نداده است.
پذیرش
دادههای
بدون امضا،
یا با امضای
نادرست یا
ناشناخته
میتواند
منجر به
آسیبدیدگی
سیستم و در
موارد وخیم
حتی به خطر
افتادن
امنیت کل
سیستم شود.
commit.downloadMode (<UNSET>)
DownloadInAdvance: ابتدا همه بستهها در کش محلی دانلود میشوند؛ سپس نصب آغاز میشود. این روش، پیشفرض امن و ترجیحدادهشده هنگام نصب بستهها روی سیستم محلی است.
DownloadInHeaps: مشابه DownloadInAdvance است، اما تلاش میکند تراکنش را به دستههایی تقسیم کند که در پایان هر دسته، سیستم به یک وضعیت پایدار و یکپارچه برسد.
DownloadAsNeeded: دانلود و نصب به صورت متناوب. بستهها صرفاً برای جلوگیری از تعویض مکرر CD/DVD کش میشوند. این حالت در فضای دیسک صرفهجویی میکند اما در صورتی که بستهای در میانه تراکنش دریافت نشود، مستعد خطا است. این گزینه برای نصب در chroot مناسب است، اما برای سیستم محلی کاربرد ندارد.
solver.focus (<UNSET>)
Job: تمرکز بر نصب بهترین نسخه از بستههای درخواستی. وابستگیهای ناموجود در صورت نیاز اضافه میشوند. این پیشفرض حلکننده است.
Installed: تمرکز بر اعمال کمترین تغییرات ممکن در بستههای نصبشده. انتخاب نسخه قدیمیتر یک بسته در صورتی مجاز است که وابستگیهای آن نیازمند تغییرات کمتری در سیستم باشند.
Update: تمرکز بر بهروزرسانی بستههای درخواستی و وابستگیهای آنها تا حد امکان.
solver.onlyRequires (false)
solver.allowVendorChange (false)
solver.dupAllowDowngrade (true)
solver.dupAllowNameChange (true)
solver.dupAllowArchChange (true)
solver.dupAllowVendorChange (false)
solver.cleandepsOnRemove (false)
این گزینه باید به صورت موردی و از طریق گزینههای خط فرمان یا سوییچهایی که برنامهها ارائه میدهند فعال شود. تغییر دادن پیشفرض سراسری روی سیستمی که اقدامات بدون نظارت در آن انجام میشود، میتواند به راحتی به سیستم آسیب برساند.
solver.noUpdateProvide (false)
گاهی غیرفعال کردن این قانون ضروری یا مفید است.
solver.checkSystemFile (/etc/zypp/systemCheck)
هر خط در فایل نشاندهنده یک وابستگی است: requires:kernel یا requires:glibc.
solver.checkSystemFileDir ({configdir}/systemCheck.d)
solver.upgradeTestcasesToKeep (2)
solver.upgradeRemoveDroppedPackages (true)
یک محصول جدید ممکن است فهرستی از بستههای قدیمی و بدون پشتیبانی را پیشنهاد دهد (بستههای کنارگذاشتهشده). هنگام انجام ارتقای توزیع، حلکننده ممکن است تلاش کند آنها را حذف کند، حتی اگر هیچ مشکل وابستگی ایجاد نکنند.
همچنین zypper dup --remove-orphaned را ببینید که نوع مشابهی از پاکسازی را فراهم میکند. این دستور بستههایی را که دیگر مورد نیاز نیستند و دیگر توسط هیچ مخزن فعالی ارائه نمیشوند (به اصطلاح بستههای یتیم یا orphaned) پاکسازی میکند.
multiversion (<EMPTY>) [provides:multiversion(kernel) via vendor configuration]
بستهها بر اساس نام یا بر اساس قابلیتهای فراهمشده (provides) انتخاب میشوند. در حالت دوم، رشته باید با «:provides» آغاز شده و بلافاصله قابلیت مربوطه پس از آن بیاید.
[هشدار!] در حالی که حذف تعریف در اینجا ایمن است (که در این صورت با هسته مانند سایر بستهها رفتار خواهد شد)، هنگام افزودن تعاریف جدید بسیار مراقب باشید. اگر بستههایی را اضافه کنید که برای پشتیبانی از نصب در چندین نسخه ساخته نشدهاند، به سادگی به یکدیگر آسیب خواهند زد.
multiversiondir ({configdir}/multiversion.d)
multiversion.kernels (<EMPTY>) [latest,latest-1,running via vendor configuration]
2.6.32.12-0.7 - نسخه دقیق هسته برای نگهداری
latest - نگهداری هسته با بالاترین شماره نسخه
latest-N - نگهداری هسته با Nمین بالاترین شماره نسخه
running - نگهداری هسته در حال اجرا
oldest - نگهداری هسته با کمترین شماره نسخه
oldest+N - نگهداری هسته با Nمین کمترین شماره نسخه
اگر هیچ مقداری مشخص نشود، هیچ هستهای پاکسازی نخواهد شد.
locksfile.path ({configdir}/locks)
locksfile.apply (true)
update.messages.notify (<EMPTY>)
zypp پیامهای بهروزرسانی را بر اساس قالب محتوای انتخابشده آماده کرده و محتوا را به دستور مشخصشده ارسال (pipe) میکند.
قالب:
single - برای هر
پیام
بهروزرسانی
دستور را
فراخوانی
کرده و پیام
را ارسال
میکند.
none - برای هر
پیام
بهروزرسانی
دستور را
فراخوانی
میکند اما
از لوله (pipe)
برای ارسال
داده
استفاده
نمیکند.
احتمالاً
میخواهید
فایل پیام
را در خط
فرمان با
استفاده از
%P ارسال
کنید (بخش
جایگزینیها
را در زیر
ببینید).
digest -
فراخوانی
تکی دستور،
با ارسال
نام مسیر
تمامی
پیامهای
بهروزرسانی،
یک مورد در
هر خط.
bulk - فراخوانی
تکی دستور،
با ارسال
محتوای
الحاقشده
تمامی
پیامهای
بهروزرسانی
که با Ctrl-L جدا
شدهاند.
جایگزینیها:
%p - مشخصه
بسته
(Name-Version-Release.Arch_)
%P - مسیر کامل
فایل پیام
بهروزرسانی
مقادیر معتبر:
مقدار به صورت قالب | دستور مشخص میشود. یک مقدار خالی هرگونه اعلان را غیرفعال خواهد کرد.
مثالها:
single | mail -s "Update message from %p" root
none | my-send-script -f %P
rpm.install.excludedocs (false)
این گزینه اغلب هنگام ساخت تصاویر کانتینر برای صرفهجویی در فضای دیسک استفاده میشود.
history.logfile (/var/log/zypp/history)
credentials.global.dir ({configdir}/credentials.d)
اگر یک URL دارای پارامتر ?credentials=<filename> باشد، اطلاعات احراز هویت در فایلی به نام <filename> در این پوشه ذخیره شده و جستجو میشود.
credentials.global.file ({configdir}/credentials.cat)
این فایل میتواند شامل کاتالوگی از اطلاعات کاربری باشد که از طریق پارامتر ?credentials=<filename> ذخیره نشدهاند (credentials.global.dir را ببینید).
این فایل در صورت وجود خوانده میشود، اما اطلاعات کاربری جدید معمولاً در پوشه خانگی کاربر ذخیره میشوند (~/.zypp/credentials.cat).
arch (<UNSET>)
[env]
این بخش اجازه میدهد متغیرهای محیطی پس از پردازش پیکربندی سیستم میزبان اضافه شوند. هر جفت کلید/مقدار در صورتی که از قبل وجود نداشته باشد، به محیط فرآیند اعمال میشود. این کار متغیرهای محیطی از قبل موجود را تغییر نداده و حذف نمیکند.
دستور key = value تلاش میکند متغیر محیطی با نام key را به مقدار value تنظیم کند.
این ویژگی برای فراهم آوردن تنظیمات خاص محیط یا گزینههای اشکالزدایی برای مدت طولانی طراحی شده است. با این حال، توجه داشته باشید هر متغیر محیطی که پیش از پردازش فایلهای پیکربندی لازم باشد را نمیتوان در اینجا تنظیم کرد، زیرا هیچ تأثیری نخواهد داشت (مانند ZYPP_LOGFILE).
فایلها (FILES)
/usr/etc/zypp/zypp.conf
/usr/etc/zypp/zypp.conf.d/*.conf
/etc/zypp/zypp.conf
/etc/zypp/zypp.conf.d/*.conf
فایلهای پیکربندی گوناگونی که برای پردازش در نظر گرفته میشوند. فایلهای پیکربندی سیستم واقع در /etc/zypp/ (حتی اگر خالی بوده یا پیوند نمادینی به /dev/null باشند) فایلهای پیکربندی ارائهدهنده با همان نام واقع در /usr/etc/zypp/ را بازنویسی خواهند کرد.
فایلهای نهایی ابتدا به ترتیب zypp.conf و سپس zypp.conf.d/*.conf (به ترتیب الفبایی نام فایلها) پردازش خواهند شد. تنظیمات بعدی، تنظیمات قبلی را بازنویسی میکنند.
بنابراین اساساً دو روش برای بازنویسی پیکربندی ارائهشده توسط توزیع واقع در /usr/etc/zypp/ وجود دارد:
همچنین ببینید: مشخصات فایلهای پیکربندی UAPI.6 https://github.com/uapi-group/specifications/blob/main/specs/configuration_files_specification.md
نکته
برای
سیستمهای
قدیمی:
در حالی که
توزیعهای
جدیدتر
دیگر اصلاً
فایل /etc/zypp/zypp.conf را
ارائه
نمیدهند،
در
توزیعهای
قدیمیتر
ممکن است
همچنان یک
فایل کامل
/etc/zypp/zypp.conf عرضه
شود. اما در
این حالت
نیز شما از
نگهداری
تغییرات
خود در
فایلهای
تکمیلی
بهرهمند
میشوید تا
اینکه فایل
عرضهشده
/etc/zypp/zypp.conf را
دستکاری
کنید. اگر
فایل
عرضهشده
/etc/zypp/zypp.conf
دستنخورده
باقی
بماند، libzypp
فایل
پیکربندی
را
بهروزرسانی
میکند در
حالی که
تغییرات
شما با
خیالی
آسوده در
فایلهای
تکمیلی حفظ
میشوند. با
این حال،
اگر فایل
پیکربندی
دستکاری
شده باشد، libzypp
آن را
بهروز
نخواهد کرد
و نسخه جدید
را به صورت
zypp.conf.rpmnew ذخیره
میکند و
باید آنها
را به صورت
دستی ادغام
کنید.
تمام نسخههای libzypp که از استفاده از فایلهای تکمیلی پشتیبانی میکنند، قابلیت provide: libzypp(econf) و همچنین این صفحه راهنما را ارائه میدهند.
محیط (ENVIRONMENT)
ZYPP_CONF
همچنین ببینید (SEE ALSO)
| 2026-09-04 | SUSE Linux |