DNF4(8) DNF DNF4(8)

dnf4 - مدیر بسته‌های DNF

dnf [options] <command> [<args>...]

ابزار DNF https://github.com/rpm-software-management/dnf نسخه اصلی بعدی YUM http://yum.baseurl.org است، یک مدیر بسته برای توزیع‌های لینوکس مبتنی بر RPM. این ابزار سازگاری خط فرمان (CLI) با YUM را حفظ کرده و یک API دقیق برای افزونه‌ها و پلاگین‌ها ارائه می‌دهد.

پلاگین‌ها می‌توانند ویژگی‌های DNF را تغییر داده یا گسترش دهند، یا دستورات خط فرمان بیشتری علاوه بر موارد ذکر شده در زیر ارائه کنند. اگر نام چنین دستوری را می‌دانید (از جمله دستورات ذکر شده در زیر)، می‌توانید بسته ارائه‌دهنده آن را با استفاده از ارائه‌دهنده مجازی در قالب dnf-command(<alias>) پیدا یا نصب کنید؛ که در آن <alias> نام دستور است؛ برای نمونه، dnf install 'dnf-command(versionlock)' پلاگین versionlock را نصب می‌کند. این روش برای مشخص کردن وابستگی‌های بسته‌های نیازمند یک دستور خاص DNF نیز کاربرد دارد.

کدهای بازگشتی:

  • 0 : عملیات موفقیت‌آمیز بود.
  • 1 : خطایی رخ داد و توسط dnf مدیریت شد.
  • 3 : خطای ناشناخته و مدیریت‌نشده‌ای در حین عملیات رخ داد.
  • 100: دستور check-update را ببینید.
  • 200: مشکلی در گرفتن یا آزادسازی قفل‌ها رخ داد.

دستورات در دسترس:

  • alias
  • autoremove
  • check
  • check-update
  • clean
  • deplist
  • distro-sync
  • downgrade
  • group
  • help
  • history
  • info
  • install
  • list
  • makecache
  • mark
  • module
  • provides
  • reinstall
  • remove
  • repoinfo
  • repolist
  • repoquery
  • repository-packages
  • search
  • shell
  • swap
  • updateinfo
  • upgrade
  • upgrade-minimal

اطلاعات تکمیلی:

  • گزینه‌ها
  • مشخص کردن بسته‌ها
  • مشخص کردن ارائه‌دهنده‌ها
  • مشخص کردن فایل‌های ارائه‌دهنده
  • مشخص کردن گروه‌ها
  • مشخص کردن تراکنش‌ها
  • همگام‌سازی متادیتا
  • سیاست جایگزینی فایل‌های پیکربندی
  • فایل‌ها
  • همچنین ببینید

-4
تنها به آدرس‌های IPv4 ترجمه شود.
-6
تنها به آدرس‌های IPv6 ترجمه شود.
شامل کردن بسته‌های مربوط به شناسهٔ توصیه‌نامه، مانند FEDORA-2201-123. برای دستورهای install، repoquery، updateinfo، upgrade و offline-upgrade (dnf-plugins-core) قابل استفاده است.
اجازه پاک کردن بسته‌های نصب‌شده برای حل وابستگی‌ها داده شود. این گزینه می‌تواند به‌عنوان جایگزینی برای دستور yum swap در مواردی که بسته‌های حذفی به‌طور صریح مشخص نشده‌اند، استفاده شود.
پاسخ خودکار منفی (خیر) به تمام پرسش‌ها داده شود.
تلاش برای بهترین نسخه‌های موجود بسته در تراکنش‌ها. به‌ویژه در هنگام dnf upgrade که به‌طور پیش‌فرض به‌روزرسانی‌هایی را که به دلایل وابستگی قابل نصب نیستند نادیده می‌گیرد، این سوئیچ DNF را مجبور می‌کند فقط جدیدترین بسته‌ها را در نظر بگیرد. هنگام مواجهه با بسته‌هایی با وابستگی‌های خراب، DNF با ارائهٔ دلیل عدم امکان نصب آخرین نسخه با شکست مواجه می‌شود.

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

شامل کردن بسته‌هایی که یک اشکال را برطرف می‌کنند. برای دستورهای install، repoquery، updateinfo، upgrade و offline-upgrade (dnf-plugins-core) قابل استفاده است.
شامل کردن بسته‌هایی که یک شناسهٔ Bugzilla را برطرف می‌کنند، مانند 123123. برای دستورهای install، repoquery، updateinfo، upgrade و offline-upgrade (dnf-plugins-core) قابل استفاده است.
اجرای کامل از طریق کش سیستم، بدون به‌روزرسانی کش و استفاده از آن حتی در صورت انقضا.

برنامهٔ DNF برای هر کاربری که تحت آن اجرا می‌شود، کش جداگانه‌ای به کار می‌برد. کش مربوط به کاربر root «کش سیستم» نامیده می‌شود. این سوئیچ به یک کاربر معمولی اجازهٔ دسترسی فقط‌خواندنی به کش سیستم را می‌دهد که معمولاً تازه‌تر از کش کاربر است و بنابراین نیازی به انتظار برای همگام‌سازی متادیتا ندارد.

کنترل استفاده از رنگ در خروجی ترمینال. مقادیر معتبر عبارتند از always، never و auto (پیش‌فرض).
افزودن یک توضیح به تاریخچهٔ تراکنش.
مکان فایل پیکربندی.
شامل کردن بسته‌هایی که یک شناسهٔ CVE (آسیب‌پذیری‌ها و افشاهای متداول) (http://cve.mitre.org/about) را برطرف می‌کنند، مانند CVE-2201-0123. برای دستورهای install، repoquery، updateinfo، upgrade و offline-upgrade (dnf-plugins-core) قابل استفاده است.
سطح خروجی اشکال‌زدایی. این یک مقدار عددی صحیح بین 0 (بدون اطلاعات اضافی) و 10 (نمایش تمام اطلاعات اشکال‌زدایی، حتی مواردی که برای کاربر قابل درک نیست) است، پیش‌فرض 2 است. منسوخ شده است، به جای آن از -v استفاده کنید.
تخلیهٔ داده‌های کمکی برای اشکال‌زدایی حل‌کنندهٔ وابستگی در ./debugdata.
غیرفعال کردن گزینه‌های پیکربندی excludepkgs و includepkgs. یکی از سه گزینهٔ زیر را می‌پذیرد:
  • all، تمام پیکربندی‌های excludepkgs و includepkgs را غیرفعال می‌کند
  • main، گزینه‌های excludepkgs و includepkgs تعریف‌شده در بخش [main] را غیرفعال می‌کند
  • repoid، گزینه‌های excludepkgs و includepkgs تعریف‌شده برای مخزن مشخص‌شده را غیرفعال می‌کند

توجه داشته باشید که گزینهٔ --exclude به پیکربندی excludepkgs در بخش [main] الحاق می‌شود و بنابراین هنگام تعیین main یا all غیرفعال می‌گردد.

غیرفعال کردن مخازن مشخص‌شده (به‌طور خودکار ذخیره می‌شود). این گزینه باید همراه با دستور config-manager (dnf-plugins-core) استفاده شود.
غیرفعال کردن پلاگین‌های فهرست‌شده که بر اساس نام یا الگوهای glob مشخص شده‌اند.
غیرفعال کردن موقت مخازن فعال برای اجرای دستور dnf فعلی. یک شناسه، فهرستی از شناسه‌های جداشده با کاما، یا الگوی glob از شناسه‌ها را می‌پذیرد. این گزینه را می‌توان چندین بار مشخص کرد، اما با --repo ناسازگار است.
هدایت بسته‌های دانلود شده به دایرکتوری ارائه‌شده. این گزینه باید همراه با گزینهٔ خط فرمان --downloadonly و با دستورهای download، modulesync، reposync یا system-upgrade (dnf-plugins-core) استفاده شود.
دانلود مجموعه بسته‌های حل‌شده بدون انجام هیچ‌گونه تراکنش rpm (نصب/ارتقا/حذف).

بسته‌ها پس از تراکنش موفق بعدی حذف می‌شوند. این مورد هنگام استفاده به همراه گزینهٔ --destdir نیز صدق می‌کند زیرا دایرکتوری بخشی از کش DNF در نظر گرفته می‌شود. برای نگه داشتن بسته‌ها، به جای آن از دستور download استفاده کنید.

سطح خروجی خطا. این یک مقدار عددی صحیح بین 0 (بدون خروجی خطا) و 10 (نمایش تمام پیام‌های خطا) است، پیش‌فرض 3 است. منسوخ شده است، به جای آن از -v استفاده کنید.
فعال کردن مخازن مشخص‌شده (به‌طور خودکار ذخیره می‌شود). این گزینه باید همراه با دستور config-manager (dnf-plugins-core) استفاده شود.
فعال کردن پلاگین‌های فهرست‌شده که بر اساس نام یا الگوهای glob مشخص شده‌اند.
فعال کردن موقت مخازن اضافی برای اجرای دستور dnf فعلی. یک شناسه، فهرستی از شناسه‌های جداشده با کاما، یا الگوی glob از شناسه‌ها را می‌پذیرد. این گزینه را می‌توان چندین بار مشخص کرد.
شامل کردن بسته‌های مربوط به بهبود و ویژگی‌های جدید. برای دستورهای install، repoquery، updateinfo، upgrade و offline-upgrade (dnf-plugins-core) قابل استفاده است.
مستثنی کردن بسته‌های مشخص‌شده توسط <package-file-spec> از عملیات.
گزینهٔ منسوخ‌شده. با گزینهٔ --exclude جایگزین شده است.
اجبار به استفاده از یک معماری. هر معماری‌ای را می‌توان مشخص کرد. با این حال، استفاده از معماری‌ای که به‌طور بومی توسط پردازندهٔ شما پشتیبانی نمی‌شود نیاز به شبیه‌سازی خواهد داشت. این کار معمولاً از طریق QEMU انجام می‌شود. رفتار --forcearch را می‌توان با استفاده از گزینه‌های پیکربندی arch <#arch-label> و ignorearch <#ignorearch-label> با مقادیر به‌ترتیب <arch> و True پیکربندی کرد.
نمایش راهنما.
یک installroot جایگزین را مشخص می‌کند که تمام بسته‌ها نسبت به آن نصب خواهند شد. این کار مانند اجرای chroot <root> dnf است، با این تفاوت که استفاده از --installroot به dnf اجازه می‌دهد تا قبل از ایجاد chroot کار کند. این گزینه نیازمند مسیر مطلق است.
  • مقادیر cachedir، log files، releasever و gpgkey از installroot گرفته شده یا در آن ذخیره می‌شوند. کلیدهای Gpgkeys از مسیری نسبت به میزبان که می‌تواند در بخش مخزن فایل‌های پیکربندی مشخص شود، به installroot وارد می‌شوند.
  • گزینه‌های configuration file و reposdir <#reposdir-label> ابتدا در داخل installroot جستجو می‌شوند. اگر وجود نداشته باشند، از سیستم میزبان گرفته می‌شوند. نکته: هنگامی که یک مسیر در یک آرگومان خط فرمان مشخص می‌شود (--config=<config file>; برای configuration file و --setopt=reposdir=<reposdir> برای reposdir)، این مسیر بدون استثنا همیشه نسبت به میزبان است.
  • متغیرهای vars بر اساس reposdir <#reposdir-label> از سیستم میزبان یا installroot گرفته می‌شوند. هنگامی که مسیر reposdir در یک آرگومان خط فرمان مشخص شود، vars از installroot گرفته می‌شود. هنگامی که مسیرهای varsdir <#varsdir-options-label> در یک آرگومان خط فرمان مشخص شوند (--setopt=varsdir=<reposdir>)، آن مسیرها بدون استثنا همیشه نسبت به میزبان هستند.
  • مسیرهای pluginpath و pluginconfpath نسبت به میزبان هستند.
نکته: ممکن است بخواهید هنگام ایجاد installroot از گزینهٔ خط فرمان --releasever=<release> نیز استفاده کنید، در غیر این صورت مقدار $releasever از rpmdb درون installroot گرفته می‌شود (و در نتیجه در زمان ایجاد خالی است و تراکنش با شکست مواجه می‌شود). اگر از --releasever=/ استفاده شود، releasever از سیستم میزبان (/) شناسایی خواهد شد. مسیر جدید installroot در زمان ایجاد شامل فایل‌های repository، releasever و dnf.conf نیست.

در یک سیستم ماژولار همچنین ممکن است بخواهید هنگام ایجاد installroot از گزینهٔ خط فرمان --setopt=module_platform_id=<module_platform_name:stream> استفاده کنید، در غیر این صورت مقدار module_platform_id <#module-platform-id-label> از فایل /etc/os-release درون installroot گرفته می‌شود (و در نتیجه در زمان ایجاد خالی خواهد بود، وابستگی ماژولار ممکن است برآورده نشود و محتوای ماژول‌ها ممکن است مستثنی شود).

مثال‌های Installroot:

مقدار releasever سیستم در دایرکتوری <installroot> را به‌طور دائمی روی <release> تنظیم می‌کند.
بسته‌های درون installroot را از یک مخزن توصیف‌شده توسط --setopt با استفاده از پیکربندی /path/dnf.conf ارتقا می‌دهد.
شامل کردن بسته‌های مربوط به بسته‌های جدید. برای دستورهای install، repoquery، updateinfo، upgrade و offline-upgrade (dnf-plugins-core) قابل استفاده است.
غیرفعال کردن حذف وابستگی‌هایی که دیگر استفاده نمی‌شوند. این گزینه گزینهٔ پیکربندی clean_requirements_on_remove <#clean-requirements-on-remove-label> را روی False تنظیم می‌کند.
تنظیم گزینهٔ best روی False، تا تراکنش‌ها تنها به بهترین نامزدها محدود نشوند.
عدم نصب مستندات. فلگ 'RPMTRANS_FLAG_NODOCS' را در rpm تنظیم می‌کند.
صرف‌نظر کردن از بررسی امضاهای GPG روی بسته‌ها (در صورتی که خط‌مشی RPM اجازه دهد).
غیرفعال کردن تمام پلاگین‌ها.
این گزینه بر نصب/به‌روزرسانی تأثیر می‌گذارد و منطق پردازش بسته‌های منسوخ DNF را فعال می‌کند. برای اطلاعات بیشتر گزینهٔ obsoletes <#obsoletes-conf-option-label> را ببینید.

این گزینه همچنین قابلیت‌هایی را که بسته هنگام استفاده به همراه دستور repoquery منسوخ می‌کند نمایش می‌دهد.

گزینهٔ پیکربندی: obsoletes <#obsoletes-conf-option-label>

در ترکیب با یک دستور غیرتعاملی، فقط محتوای مرتبط را نشان می‌دهد. پیام‌های اطلاع‌رسانی درباره وضعیت فعلی یا اقدامات DNF را پنهان می‌کند.
حداکثر زمان انتظار دستور.
تنظیم متادیتا به عنوان منقضی‌شده پیش از اجرای دستور.
پیکربندی DNF به‌گونه‌ای که گویی انتشار توزیع <release> است. این امر می‌تواند بر مسیرهای کش، مقادیر فایل‌های پیکربندی و نشانی‌های mirrorlist تأثیر بگذارد.
بازنویسی متغیر releasever_major، که معمولاً به‌طور خودکار شناسایی می‌شود یا از بخش قبل از اولین . در $releasever گرفته می‌شود. این گزینه بر متغیر $releasever تأثیری ندارد.
بازنویسی متغیر releasever_minor، که معمولاً به‌طور خودکار شناسایی می‌شود یا از بخش بعد از اولین . در $releasever گرفته می‌شود. این گزینه بر متغیر $releasever تأثیری ندارد.
مشخص کردن یک مخزن برای افزودن به مخازن این پرس‌وجو. این گزینه می‌تواند چندین بار استفاده شود.
  • برچسب مخزن توسط <repo> مشخص می‌شود.
  • مسیر یا url به مخزن توسط <path/url> مشخص می‌شود. این همان مسیر baseurl است و همچنین می‌تواند توسط متغیرهای مخزن repo variables <#repo-variables-label> غنی‌سازی شود.
  • پیکربندی مخزن را می‌توان با استفاده از --setopt=<repo>.<option>=<value> تنظیم کرد.
  • اگر می‌خواهید فقط بسته‌های این مخزن را مشاهده کنید، این را با سوئیچ‌های --repo=<repo> یا --disablerepo="*" ترکیب کنید.
فعال کردن صرفاً مخازن خاص با شناسه یا الگو (glob). می‌تواند چندین بار با اثر تجمعی استفاده شود. این اساساً یک میانبر برای --disablerepo="*" --enablerepo=<repoid> است و با گزینهٔ --disablerepo ناسازگار است.
سطح خروجی اشکال‌زدایی اسکریپتلت‌های RPM. سطح اشکال‌زدایی را برای اسکریپتلت‌های RPM روی <name> تنظیم می‌کند. برای سطوح موجود، گزینهٔ پیکربندی rpmverbosity را ببینید.
شامل کردن بسته‌هایی که اصلاحیه‌ای برای مشکلی با شدت مشخص‌شده ارائه می‌دهند. برای دستورهای install، repoquery، updateinfo، upgrade و offline-upgrade (dnf-plugins-core) قابل استفاده است.
شامل کردن بسته‌هایی که اصلاحیه‌ای برای یک مشکل امنیتی ارائه می‌دهند. برای دستورهای install، repoquery، updateinfo، upgrade و offline-upgrade (dnf-plugins-core) قابل استفاده است.
بازنویسی یک گزینهٔ پیکربندی از فایل پیکربندی. برای بازنویسی گزینه‌های پیکربندی مخازن، از repoid.option برای <option> استفاده کنید. مقادیر گزینه‌های پیکربندی مانند excludepkgs، includepkgs، installonlypkgs و tsflags به مقدار اصلی افزوده می‌شوند و آن را بازنویسی نمی‌کنند. با این حال، مشخص کردن یک مقدار خالی (مانند --setopt=tsflags=) این گزینه را پاک خواهد کرد.
حل مشکلات وابستگی‌ها با حذف بسته‌های مشکل‌ساز از تراکنش. این یک نام مستعار برای گزینهٔ پیکربندی strict <#strict-label> با مقدار False است. علاوه بر این، همراه با زیردستورهای enable و disable در دستور module اجازه می‌دهد تا حتی در صورت وجود وابستگی‌های ماژولار خراب، عملیات انجام شود.
نمایش بسته‌های تکراری در مخازن. برای دستورهای list و search قابل استفاده است.
تنها روی سیستم‌های bootc (کانتینرهای قابل بوت) قابل استفاده است. تراکنش‌ها را با استفاده از یک لایهٔ روکش موقت انجام می‌دهد که با راه‌اندازی مجدد بعدی از دست خواهد رفت. همچنین گزینهٔ پیکربندی persistence <#persistence-label> را ببینید.
عملیات پرگو، نمایش پیام‌های اشکال‌زدایی.
نمایش نسخهٔ DNF و خروج.
پاسخ خودکار مثبت (بله) به تمام پرسش‌ها داده شود.

گزینه‌های فهرستی با کاما جدا می‌شوند. گزینه‌های خط فرمان بر تنظیمات مربوطه از فایل‌های پیکربندی اولویت دارند.

برای توضیح در مورد <package-spec>، <package-file-spec> و <package-name-spec> بخش Specifying Packages را ببینید.

برای توضیح در مورد <provide-spec> بخش Specifying Provides را ببینید.

برای توضیح در مورد <group-spec> بخش Specifying Groups را ببینید.

برای توضیح در مورد <module-spec> بخش Specifying Modules را ببینید.

برای توضیح در مورد <transaction-spec> بخش Specifying Transactions را ببینید.

دستور: alias

به کاربر امکان می‌دهد فهرستی از نام‌های مستعار (به صورت <name=value>) را تعریف و مدیریت کند که می‌توان از آن‌ها به عنوان دستورات dnf برای کوتاه‌سازی توالی‌های طولانی‌تر دستورات استفاده کرد. برای مثال‌های استفاده از دستور alias، بخش مثال‌های Alias (Alias Examples) و برای مثال‌های پردازش نام‌های مستعار، بخش مثال‌های پردازش Alias (Alias Processing Examples) را ببینید.

برای استفاده از یک نام مستعار (name=value)، نام باید به عنوان اولین "دستور" (مثلاً اولین آرگومانی که گزینه نیست) قرار گیرد. سپس با مقدار خود جایگزین می‌شود و توالی حاصل دوباره برای یافتن نام‌های مستعار جستجو می‌شود. پردازش نام‌های مستعار زمانی متوقف می‌شود که اولین دستورِ یافت‌شده، نام هیچ نام مستعاری نباشد.

در صورتی که پردازش منجر به بازگشت بی‌پایان شود، آرگومان‌های اصلی به جای آن استفاده می‌شوند.

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

تمام نام‌های مستعار در فایل‌های پیکربندی در دایرکتوری /etc/dnf/aliases.d/ در بخش [aliases] تعریف می‌شوند و نام‌های مستعار ایجاد شده توسط دستور alias در فایل USER.conf نوشته می‌شوند. در صورت بروز تداخل، USER.conf دارای بالاترین اولویت است و برای باقی فایل‌های پیکربندی از ترتیب الفبایی استفاده می‌شود.

به صورت اختیاری، گزینهٔ enabled در بخش [main] با مقدار پیش‌فرض True وجود دارد. این مقدار می‌تواند برای هر فایل به طور جداگانه در فایل مربوطه، یا به صورت سراسری برای همهٔ نام‌های مستعار در فایل ALIASES.conf تنظیم شود.

dnf alias [options] [list] [<name>...]

فهرست کردن نام‌های مستعار به همراه نتیجهٔ نهایی آن‌ها. پارامتر [<alias>...] نتیجه را تنها به نام‌های مستعار منطبق با آن محدود می‌کند.

dnf alias [options] add <name=value>...

ایجاد نام‌های مستعار جدید.

dnf alias [options] delete <name>...

حذف نام‌های مستعار.

تمام نام‌های مستعار تعریف‌شده را فهرست می‌کند.
یک نام مستعار دستوری جدید به نام rm اضافه می‌کند که عملکردی مشابه دستور remove دارد.
یک نام مستعار دستوری جدید به نام upgrade اضافه می‌کند که مانند دستور upgrade به همراه گزینه‌های اضافی عمل می‌کند. توجه داشته باشید که دستور اصلی upgrade با پیشوند \ مشخص شده است تا از ایجاد حلقهٔ بی‌پایان در پردازش نام مستعار جلوگیری شود.

اگر نام‌های مستعار in=install و FORCE="--skip-broken --disableexcludes=all" تعریف شده باشند:

  • عبارت dnf FORCE in با dnf --skip-broken --disableexcludes=all install جایگزین خواهد شد
  • عبارت dnf in FORCE با dnf install FORCE جایگزین خواهد شد (که شکست خواهد خورد)

اگر نام مستعار in=install تعریف شده باشد:

  • عبارت dnf in با dnf install جایگزین خواهد شد
  • عبارت dnf --repo updates in با dnf --repo updates in جایگزین خواهد شد (که شکست خواهد خورد)

دستور: autoremove
نام‌های مستعار برای تطبیق صریح NEVRA: autoremove-n, autoremove-na, autoremove-nevra

dnf [options] autoremove

تمام بسته‌هایی را از سیستم حذف می‌کند که در ابتدا به عنوان وابستگی‌های بسته‌های نصب‌شده توسط کاربر نصب شده بودند، اما دیگر توسط هیچ‌یک از این بسته‌ها نیاز نیستند.

dnf [options] autoremove <spec>...

این یک نام مستعار برای دستور Remove با مقدار تنظیم‌شدهٔ True برای clean_requirements_on_remove است. بسته‌های مشخص‌شده را به همراه هر بسته‌ای که به بسته‌های در حال حذف وابسته است از سیستم حذف می‌کند. هر <spec> می‌تواند یک <package-spec> باشد که بسته را مستقیماً مشخص می‌کند، یا یک @<group-spec> که یک گروه (محیطی) شامل آن را مشخص می‌کند. همچنین هر وابستگی را که دیگر مورد نیاز نیست حذف می‌کند.

همچنین چند دستور خاص autoremove شامل autoremove-n، autoremove-na و autoremove-nevra وجود دارند که امکان مشخص کردن یک آرگومان دقیق در قالب NEVRA (نام-دوره:نسخه-انتشار.معماری) را فراهم می‌کنند.

این دستور به طور پیش‌فرض همگام‌سازی متادیتای منقضی‌شده را اجبار نمی‌کند. همچنین Metadata Synchronization را ببینید.

دستور: check

dnf [options] check [--dependencies] [--duplicates] [--obsoleted] [--provides]

دیتابیس محلی بسته‌ها (packagedb) را بررسی کرده و اطلاعات مربوط به هرگونه مشکل یافت‌شده را تولید می‌کند. می‌توانید بررسی‌های قابل انجام را با استفاده از گزینه‌های --dependencies، --duplicates، --obsoleted و --provides محدود کنید (حالت پیش‌فرض بررسی همه چیز است).

دستور: check-update
نام‌های مستعار: check-upgrade
به صورت غیرتعاملی بررسی می‌کند که آیا به‌روزرسانی برای بسته‌های مشخص‌شده در دسترس است یا خیر. اگر هیچ <package-file-spec> مشخص نشود، در دسترس بودن هرگونه به‌روزرسانی را برای سیستم شما بررسی می‌کند. کد خروج DNF در صورت وجود به‌روزرسانی ۱۰۰ خواهد بود و فهرستی از به‌روزرسانی‌ها چاپ می‌شود؛ در صورت عدم وجود ۰ و در صورت بروز خطا ۱ خواهد بود. اگر گزینهٔ --changelogs مشخص شده باشد، تفاوت‌های لاگ تغییرات بسته‌هایی که قرار است به‌روزرسانی شوند نیز چاپ می‌شود.

لطفاً توجه داشته باشید در دسترس بودن یک نسخهٔ جدیدتر خاص برای یک بستهٔ نصب‌شده (و گزارش‌شده توسط check-update) به این معنی نیست که اجرای بعدی dnf upgrade حتماً آن را نصب خواهد کرد. تفاوت در این است که dnf upgrade محدودیت‌هایی (مانند ارضا شدن وابستگی‌های بسته) دارد که باید در نظر گرفته شوند.

خروجی تحت تأثیر گزینهٔ پیکربندی autocheck_running_kernel <#autocheck-running-kernel-label> قرار می‌گیرد.

دستور: clean

پاک‌سازی فایل‌های موقت نگهداری‌شده برای مخازن را انجام می‌دهد. این شامل هرگونه دادهٔ به‌جامانده از مخازن غیرفعال یا حذف‌شده و همچنین برای نسخه‌های مختلف انتشار توزیع است.

فایل‌های کش تولیدشده از متادیتای مخزن را حذف می‌کند. این کار DNF را مجبور می‌کند در اجرای بعدی فایل‌های کش را دوباره ایجاد کند.
متادیتای مخزن را منقضی علامت‌گذاری می‌کند. DNF در استفادهٔ بعدی، کش هر مخزن را مجدداً اعتبارسنجی خواهد کرد.
متادیتای مخزن را حذف می‌کند. این‌ها فایل‌هایی هستند که DNF برای تعیین در دسترس بودن بسته‌ها از راه دور استفاده می‌کند. استفاده از این گزینه باعث می‌شود DNF در اجرای بعدی تمام متادیتا را دوباره بارگیری کند.
تمام بسته‌های کش‌شده را از سیستم حذف می‌کند.
تمام موارد بالا را انجام می‌دهد.

نام مستعار منسوخ‌شده برای dnf repoquery --deplist.

دستور: distro-sync
نام‌های مستعار: dsync
نام‌های مستعار منسوخ‌شده: distrosync, distribution-synchronization
در صورت لزوم بسته‌های نصب‌شدهٔ انتخابی را ارتقا می‌دهد، تنزل نسخه می‌دهد یا بدون تغییر نگه می‌دارد تا با آخرین نسخهٔ موجود در هر مخزنِ فعال مطابقت پیدا کنند. اگر هیچ بسته‌ای مشخص نشود، تمام بسته‌های نصب‌شده در نظر گرفته می‌شوند.

همچنین Configuration Files Replacement Policy را ببینید.

دستور: downgrade
نام‌های مستعار: dg
در صورت امکان، بسته‌های مشخص‌شده را به بالاترین بستهٔ قابل‌نصب از میان تمام نسخه‌های پایین‌ترِ شناخته‌شده تنزل نسخه می‌دهد. هنگامی که نسخه مشخص شده باشد و از نسخهٔ بستهٔ نصب‌شده پایین‌تر باشد، به نسخهٔ هدف تنزل پیدا می‌کند.

دستور: group
نام‌های مستعار: grp
نام‌های مستعار منسوخ‌شده: groups, grouplist, groupinstall, groupupdate, groupremove, grouperase, groupinfo

گروه‌ها مجموعه‌های مجازی از بسته‌ها هستند. DNF گروه‌هایی را که کاربر برای نصب انتخاب کرده ("علامت‌گذاری کرده") پیگیری می‌کند و می‌تواند بسته‌های تشکیل‌دهنده را با دستورات ساده مدیریت کند.

نمای کلی از تعداد گروه‌های نصب‌شده و در دسترس را نمایش می‌دهد. همراه با spec، خروجی را به گروه‌های منطبق محدود می‌کند. summary زیردستور پیش‌فرض groups است.
فهرست بسته‌های یک گروه را نمایش می‌دهد. هنگام استفاده از -v مشخص می‌کند کدام بسته‌ها نصب شده‌اند یا از یک مخزن در دسترس هستند.
گروه مشخص‌شده را به عنوان نصب‌شده علامت‌گذاری کرده و بسته‌های موجود در آن را نصب می‌کند. همچنین در صورت تعیین --with-optional، بسته‌های اختیاری (optional) گروه را نیز شامل می‌شود. تمام بسته‌های اجباری (Mandatory) و پیش‌فرض (Default) در صورت امکان نصب خواهند شد. بسته‌های شرطی در صورت برآورده شدن نیازمندی‌هایشان نصب می‌شوند. اگر گروه قبلاً (به صورت جزئی) نصب شده باشد، دستور بسته‌های مفقود گروه را نصب می‌کند. بسته به مقدار گزینهٔ پیکربندی obsoletes <#obsoletes-conf-option-label>، نصب گروه منسوخ‌سازی‌ها را در نظر می‌گیرد.
تمام گروه‌های منطبق را چه در میان گروه‌های نصب‌شده یا در دسترس فهرست می‌کند. اگر چیزی مشخص نشود، تمام گروه‌های شناخته‌شده را فهرست می‌کند. گزینه‌های --installed و --available فهرست درخواستی را محدودتر می‌کنند. رکوردها بر اساس برچسب display_order تعریف‌شده در فایل comps.xml مرتب می‌شوند. با استفاده از گزینهٔ --hidden فهرستی از تمام گروه‌های مخفی ارائه می‌دهد. هنگام استفاده از گزینه‌های -v یا --ids شناسه‌های گروه را ارائه می‌دهد.
گروه را به عنوان حذف‌شده علامت‌گذاری می‌کند و آن دسته از بسته‌های موجود در گروه را که به گروه نصب‌شدهٔ دیگری تعلق ندارند و صریحاً توسط کاربر نصب نشده‌اند، از سیستم حذف می‌کند.
بسته‌های گروه را ارتقا می‌دهد و خود گروه را نیز ارتقا می‌دهد. مورد دوم شامل نصب بسته‌هایی است که توسط توزیع به گروه اضافه شده‌اند و حذف بسته‌هایی که از گروه حذف شده‌اند تا جایی که صریحاً توسط کاربر نصب نشده باشند.

گروه‌ها همچنین می‌توانند بدون دستکاری فیزیکی هیچ بسته‌ای، به عنوان نصب‌شده یا حذف‌شده علامت‌گذاری شوند:

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

همچنین Configuration Files Replacement Policy را ببینید.

دستور: help
متن راهنما را برای تمام دستورات نمایش می‌دهد. اگر نام دستوری مشخص شود، تنها راهنمای آن دستور خاص را نمایش می‌دهد.

دستور: history
نام‌های مستعار: hist

دستور history به کاربر اجازه می‌دهد تا آنچه را که در تراکنش‌های گذشته رخ داده مشاهده کرده و بر اساس این اطلاعات عمل کند (به فرض اینکه گزینهٔ پیکربندی history_record تنظیم شده باشد).

عملکرد پیش‌فرض history فهرست کردن اطلاعات مربوط به تراکنش‌های داده‌شده در یک جدول است. هر <spec> می‌تواند یک <transaction-spec> باشد که مستقیماً تراکنش را مشخص می‌کند، یا یک <transaction-spec>..<transaction-spec> که بازه‌ای از تراکنش‌ها را مشخص می‌کند، یا یک <package-name-spec> که تراکنش را بر اساس بسته‌ای که دستکاری کرده مشخص می‌سازد. در صورتی که هیچ تراکنشی مشخص نشود، تمام تراکنش‌های شناخته‌شده را فهرست می‌کند.

توجه داشته باشید که تراکنش‌های گذرا (بخش --transient را ببینید) حتی اگر تغییرات دائمی در فایل‌های زیر /usr یا در دیتابیس RPM ایجاد نکنند، فهرست خواهند شد.

ستون "Action(s)" هر نوع عملیات انجام‌شده در تراکنش را فهرست می‌کند. مقادیر ممکن عبارتند از:

  • نصب (I): بستهٔ جدیدی روی سیستم نصب شد
  • تنزل نسخه (D): یک نسخهٔ قدیمی‌تر از بسته جایگزین نسخهٔ قبلاً نصب‌شده شد
  • منسوخ‌سازی (O): یک بستهٔ منسوخ با یک بستهٔ جدید جایگزین شد
  • ارتقا (U): نسخهٔ جدیدتری از بسته جایگزین نسخهٔ قبلاً نصب‌شده شد
  • حذف (E): بسته‌ای از سیستم حذف شد
  • نصب مجدد (R): بسته با همان نسخه مجدداً نصب شد
  • تغییر دلیل (C): بسته در سیستم نگه داشته شد اما دلیل نصب بودن آن تغییر کرد

ستون "Altered" تعداد عملیات انجام‌شده در هر تراکنش را فهرست می‌کند که احتمالاً با یک یا دو مورد از نمادهای زیر دنبال می‌شود:

  • >: دیتابیس RPM خارج از DNF و پس از تراکنش تغییر کرده است
  • <: دیتابیس RPM خارج از DNF و قبل از تراکنش تغییر کرده است
  • *: تراکنش قبل از اتمام متوقف شد
  • #: تراکنش کامل شد، اما با وضعیتی غیر از صفر
  • E: تراکنش با موفقیت کامل شد، اما خروجی هشدار/خطا داشت
ترتیب خروجی history list به صورت معکوس چاپ می‌شود.
تراکنش‌های داده‌شده را توصیف می‌کند. معنای <spec> مشابه History List Command است. هنگامی که هیچ تراکنشی مشخص نشده باشد، آنچه در طول آخرین تراکنش رخ داده است را توصیف می‌کند.
تراکنش مشخص‌شده را تکرار می‌کند. در صورتی که بیش از یک تراکنش برای <package-file-spec> داده‌شده یافت شود، از آخرین تراکنش (با بالاترین شناسه) استفاده می‌کند. اگر به دلیل وضعیت فعلی RPMDB تکرار برخی عملیات امکان‌پذیر نباشد، تراکنش را مجدداً انجام نخواهد داد.
یک تراکنش ذخیره‌شده در فایل <filename> توسط History Store Command را بازپخش می‌کند. بازپخش دقیقاً همان عملیات را روی بسته‌ها مانند تراکنش اصلی انجام می‌دهد و در صورت وجود هرگونه تفاوت در بسته‌های نصب‌شده یا نسخه‌های آن‌ها با خطا بازمی‌گردد. همچنین مشخصات Transaction JSON Format <#transaction-json-label> مربوط به قالب فایل را ببینید.
بررسی نمی‌کند که آیا بسته‌های نصب‌شده در همان وضعیتی هستند که در تراکنش ثبت شده است یا خیر؛ مثلاً در حالتی که ارتقای foo-1.0 -> foo-2.0 در تراکنش ذخیره شده باشد، اما foo-1.1 روی سیستم هدف نصب باشد.
بسته‌های اضافی که در سیستم هدف به تراکنش وارد شده‌اند را بررسی نمی‌کند؛ مثلاً سیستم هدف ممکن است وابستگی خاصی که روی سیستم مبدأ نصب شده بود را نداشته باشد. بازپخش به طور پیش‌فرض در این حالت با خطا مواجه می‌شود، زیرا تراکنش یکسان نخواهد بود.
در صورتی که برخی از بسته‌های ذخیره‌شده در تراکنش روی سیستم هدف در دسترس نباشند، به جای اعلام خطا از آن‌ها صرف‌نظر می‌کند.
تمام تراکنش‌های انجام‌شده پس از تراکنش مشخص‌شده را بازگردانی (لغو) می‌کند. در صورتی که بیش از یک تراکنش برای <package-file-spec> داده‌شده یافت شود، از آخرین تراکنش (با بالاترین شناسه) استفاده می‌کند. اگر به دلیل وضعیت فعلی RPMDB لغو برخی تراکنش‌ها امکان‌پذیر نباشد، هیچ تراکنشی را لغو نخواهد کرد.
تراکنش مشخص‌شده توسط <transaction-spec> را ذخیره می‌کند. تراکنش بعداً می‌تواند توسط History Replay Command بازپخش شود.

هشدار: ساختار تراکنش ذخیره‌شده ناپایدار در نظر گرفته می‌شود و ممکن است در هر زمان تغییر کند. این ویژگی در صورتی کار خواهد کرد که از همان نسخهٔ dnf برای ذخیره و بازپخش استفاده شود (یا بین نسخه‌هایی که ساختار در آن‌ها یکسان باقی مانده باشد).

-o <output-file>, --output=<output-file> تراکنش سریالی‌شده را در <output-file> ذخیره می‌کند. مقدار پیش‌فرض transaction.json است.

عملیات معکوس تمام اقدامات انجام‌شده در تراکنش مشخص‌شده را اجرا می‌کند. در صورتی که بیش از یک تراکنش برای <package-file-spec> داده‌شده یافت شود، از آخرین تراکنش (با بالاترین شناسه) استفاده می‌کند. اگر به دلیل وضعیت فعلی RPMDB لغو برخی عملیات امکان‌پذیر نباشد، تراکنش را لغو نخواهد کرد.
تمام بسته‌های نصب‌شده توسط کاربر، بسته‌های نصب‌شده از یک گروه یا نمایهٔ ماژول، و بسته‌های نصب‌شده در خارج از DNF را نمایش می‌دهد؛ یعنی بسته‌هایی را فهرست می‌کند که هنگام اجرای Autoremove Command یا Remove Command همراه با تنظیم گزینهٔ پیکربندی clean_requirements_on_remove بر روی True، روی سیستم باقی خواهند ماند. توجه داشته باشید که همین نتایج با dnf repoquery --userinstalled نیز قابل دستیابی است و دستور repoquery در قالب‌بندی خروجی قدرتمندتر عمل می‌کند.

این دستور به طور پیش‌فرض همگام‌سازی متادیتای منقضی‌شده را اجبار نمی‌کند، به جز در زیردستورهای redo، rollback و undo. بخش‌های Metadata Synchronization و Configuration Files Replacement Policy را نیز ببینید.

دستور: info
نام‌های مستعار: if
اطلاعات مربوط به توضیحات و خلاصهٔ بسته‌های نصب‌شده و در دسترس را فهرست می‌کند.

دستور info بسته‌های نمایش‌داده‌شده را به همان روش دستور list محدود می‌کند.

این دستور به طور پیش‌فرض همگام‌سازی متادیتای منقضی‌شده را اجبار نمی‌کند. همچنین Metadata Synchronization را ببینید.

دستور: install
نام‌های مستعار: in
نام‌های مستعار برای تطبیق صریح NEVRA: install-n, install-na, install-nevra
نام‌های مستعار منسوخ‌شده: localinstall
اطمینان حاصل می‌کند که بسته‌های داده‌شده و وابستگی‌های آن‌ها روی سیستم نصب شده‌اند. هر <spec> می‌تواند یک <package-spec>، یا یک @<module-spec>، یا یک @<group-spec> باشد. بخش Install Examples را ببینید. اگر یک بسته یا ارائه‌دهنده (provide) داده‌شده نتواند نصب شود (و از قبل نصب نشده باشد)، کد خروج غیرصفر خواهد بود. اگر <spec> با هر دو @<module-spec> و @<group-spec> مطابقت داشته باشد، فقط ماژول نصب می‌شود.

هنگامی که <package-spec> برای تعیین نسخهٔ دقیق بسته داده می‌شود، DNF نسخهٔ مورد نظر را بدون توجه به اینکه چه نسخه‌ای از بسته قبلاً نصب شده است، نصب خواهد کرد. در مورد بسته‌های غیر installonly، نسخهٔ قبلی بسته حذف خواهد شد.

از سوی دیگر، اگر <package-spec> فقط یک نام را مشخص کند، DNF هنگام انتخاب بسته برای نصب، بسته‌های منسوخ‌کنندهٔ آن را نیز در نظر می‌گیرد. این رفتار مخصوص دستور install است. توجه داشته باشید که اگر بسته‌ای دارای چندین نسخه باشد و برخی از نسخه‌های قدیمی‌تر منسوخ شوند، این امر می‌تواند منجر به نتایج به ظاهر غیرمنتظره شود. این کار باعث ایجاد انشعاب در مسیر ارتقا (upgrade-path) می‌شود و هر دو مسیر درست در نظر گرفته می‌شوند؛ بستهٔ نهایی صرفاً بر اساس ترتیب لغت‌نامه‌ای انتخاب می‌شود.

همچنین چند دستور خاص install شامل install-n، install-na و install-nevra وجود دارند که امکان مشخص کردن یک آرگومان دقیق در قالب NEVRA را فراهم می‌کنند. در نتیجه، <spec> با ارائه‌دهنده‌ها (provides) و ارائه‌دهنده‌های فایل مطابقت داده نخواهد شد.

همچنین Configuration Files Replacement Policy را ببینید.

نصب بستهٔ tito (عبارت tito نام بسته است).
نصب یک فایل محلی rpm با نام tito-0.6.2-1.fc22.noarch.rpm از دایرکتوری ~/Downloads/.
نصب بسته با یک نسخهٔ مشخص. اگر بسته از قبل نصب شده باشد، به‌طور خودکار تلاش می‌کند تا به آن نسخهٔ خاص ارتقا یا تنزل نسخه یابد.
نصب جدیدترین نسخهٔ موجود از بسته. اگر بسته از قبل نصب شده باشد، تلاش می‌کند تا به‌طور خودکار به جدیدترین نسخه ارتقا یابد. اگر جدیدترین نسخهٔ بسته قابل نصب نباشد، فرآیند نصب با شکست مواجه خواهد شد.
ابزار DNF به‌طور خودکار تشخیص می‌دهد که vim نام بسته نیست، بلکه بسته‌ای را که ارائه‌دهندهٔ vim است به همراه تمام وابستگی‌های مورد نیازش جستجو و نصب می‌کند. نکته: تطابق نام بسته بر تطابق ارائه‌دهندهٔ بسته اولویت دارد.
نصب یک بسته مستقیماً از یک نشانی اینترنتی (URL).
نصب تمام پروفایل‌های پیش‌فرض ماژول 'docker' و بسته‌های RPM آن‌ها. جریان‌های ماژول متناسب با آن فعال می‌شوند.
نصب گروه محیطی 'Web Server'.
نصب بسته‌ای که ارائه‌دهندهٔ فایل /usr/bin/rpmsign است.
نصب بستهٔ tito (عبارت tito نام بسته است) بدون وابستگی‌های ضعیف. وابستگی‌های ضعیف برای کارکرد اصلی بسته الزامی نیستند، اما بستهٔ اصلی را بهبود می‌بخشند (مانند مستندات گسترده، افزونه‌ها، توابع اضافی و غیره).
نصب تمام بسته‌هایی که متعلق به توصیه‌نامهٔ "FEDORA-2018-b7b99fe852" هستند.

دستور: list
نام‌های مستعار: ls

فهرستی از بسته‌ها را بسته به ارتباط آن‌ها با سیستم چاپ می‌کند. یک بسته نصب‌شده است اگر در RPMDB موجود باشد، و در دسترس است اگر نصب نشده باشد اما در مخزنی که DNF از آن آگاه است وجود داشته باشد.

دستور list همچنین بسته‌های نمایش‌داده‌شده را طبق معیارهای مشخصی محدود می‌کند، مثلاً تنها به بسته‌هایی که یک بستهٔ نصب‌شده را به‌روزرسانی می‌کنند (با رعایت اولویت مخزن <#repo-priority-label>). گزینهٔ exclude <#exclude-label> در فایل پیکربندی می‌تواند بر نتیجه تأثیر بگذارد، اما اگر از گزینهٔ خط فرمان --disableexcludes استفاده شود، اطمینان حاصل می‌کند که تمام بسته‌های نصب‌شده فهرست خواهند شد.

تمام بسته‌های موجود در RPMDB، در یک مخزن یا هر دو را فهرست می‌کند.
بسته‌های نصب‌شده را فهرست می‌کند.
بسته‌های در دسترس را فهرست می‌کند.
بسته‌های اضافی را فهرست می‌کند، یعنی بسته‌های نصب‌شده روی سیستم که در هیچ مخزن شناخته‌شده‌ای موجود نیستند.
بسته‌های نصب‌شده روی سیستم را که توسط بسته‌های موجود در هر یک از مخازن شناخته‌شده منسوخ شده‌اند فهرست می‌کند.
بسته‌هایی را که اخیراً به مخازن اضافه شده‌اند فهرست می‌کند.
ارتقاهای در دسترس برای بسته‌های نصب‌شده را فهرست می‌کند.
بسته‌هایی را که توسط دستور dnf autoremove حذف خواهند شد فهرست می‌کند.

این دستور به‌طور پیش‌فرض همگام‌سازی متاداده‌های منقضی‌شده را تحمیل نمی‌کند. همچنین بخش Metadata Synchronization را ببینید.

دستور: makecache
نام‌های مستعار: mc
متاداده‌ها را برای مخازن فعال بارگیری و کش می‌کند. تا جای ممکن تلاش می‌کند از بارگیری مجدد خودداری کند (مثلاً زمانی که متاداده‌های محلی هنوز منقضی نشده‌اند یا برچسب زمانی متاداده تغییر نکرده است).
مشابه makecache ساده است، اما به DNF دستور می‌دهد که نسبت به مصرف منابع آگاه‌تر باشد؛ بدین معنا که در صورت کارکرد روی باتری کاری انجام نمی‌دهد، اگر زمان خیلی کمی از آخرین اجرای موفق makecache گذشته باشد بلافاصله پایان می‌یابد (به dnf.conf(5)، گزینهٔ metadata_timer_sync <#metadata-timer-sync-label> مراجعه کنید)، و اگر نخستین آینه در mirrorlist یک مخزن با خطا مواجه شود، تلاشی برای همگام‌سازی متاداده از آینه‌های دیگر آن مخزن نخواهد کرد.

دستور: mark
بسته‌های مشخص‌شده را به‌عنوان نصب‌شده توسط کاربر علامت‌گذاری می‌کند. این گزینه زمانی مفید است که بسته‌ای به‌عنوان وابستگی نصب شده باشد و بخواهید هنگام اجرای Autoremove Command یا Remove Command همراه با تنظیم بودن گزینهٔ پیکربندی clean_requirements_on_remove روی True، روی سیستم باقی بماند.
علامت بسته‌های مشخص‌شده را از حالت نصب‌شده توسط کاربر برمی‌دارد. هر زمان که به‌عنوان کاربر به بستهٔ خاصی نیاز نداشته باشید، می‌توانید آن را برای حذف علامت‌گذاری کنید. بسته روی سیستم نصب باقی می‌ماند اما زمانی که Autoremove Command یا Remove Command همراه با تنظیم بودن گزینهٔ پیکربندی clean_requirements_on_remove روی True اجرا شود، حذف خواهد شد. اگر مطمئن نیستید که بسته پیش‌نیاز بسته‌های دیگر نصب‌شده توسط کاربر روی سیستم است یا خیر، باید از این عملیات به‌جای Remove Command استفاده کنید.
بسته‌های مشخص‌شده را به‌عنوان نصب‌شده توسط گروه علامت‌گذاری می‌کند. این گزینه زمانی مفید است که بسته‌ای به‌عنوان وابستگی یا توسط کاربر نصب شده باشد و بخواهید مانند زمان حذف گروهی، محافظت شده و به‌عنوان عضوی از گروه مدیریت شود.

دستور: module

هشدار:

قابلیت ماژولار بودن (Modularity) منسوخ شده است و این قابلیت در نسخهٔ آیندهٔ DNF5 حذف خواهد شد.

نمای کلی Modularity در صفحهٔ راهنمای dnf.modularity(7) <#modularity-label> در دسترس است. زیردستورهای ماژول آرگومان‌های <module-spec>... را می‌پذیرند که ماژول‌ها یا پروفایل‌ها را مشخص می‌کنند.

نصب پروفایل‌های ماژول، شامل بسته‌های آن‌ها. در صورتی که هیچ پروفایلی مشخص نشود، تمام پروفایل‌های پیش‌فرض نصب می‌شوند. جریان‌های ماژول متناسب با آن فعال می‌شوند.

این دستور نمی‌تواند برای تعویض جریان‌های ماژول استفاده شود. برای این منظور از دستور dnf module switch-to استفاده کنید.

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

این دستور می‌تواند به‌عنوان نسخهٔ قوی‌تری از دستور dnf module enable استفاده شود که نه تنها ماژول‌ها را فعال می‌کند، بلکه یک distrosync روی تمام بسته‌های ماژولار در ماژول‌های فعال‌شده انجام می‌دهد.

همچنین می‌تواند به‌عنوان نسخهٔ قوی‌تری از دستور dnf module install استفاده شود، اما نیازمند مشخص کردن پروفایل‌هایی است که قرار است نصب شوند، زیرا دستور switch-to از default profiles استفاده نمی‌کند. دستور switch-to نه تنها پروفایل‌ها را نصب می‌کند، بلکه یک distrosync روی تمام بسته‌های ماژولار در ماژول نصب‌شده انجام می‌دهد.

حذف پروفایل‌های ماژول نصب‌شده، شامل بسته‌هایی که با دستور dnf module install نصب شده‌اند. بسته‌های مورد نیاز سایر پروفایل‌های ماژول نصب‌شده یا سایر بسته‌های نصب‌شده توسط کاربر حذف نخواهند شد. در صورتی که هیچ پروفایلی مشخص نشده باشد، تمام پروفایل‌های نصب‌شده حذف می‌شوند.
حذف پروفایل‌های ماژول نصب‌شده، شامل بسته‌هایی که با دستور dnf module install نصب شده‌اند. با گزینهٔ --all علاوه‌بر این تمام بسته‌هایی که نام آن‌ها توسط ماژول‌های مشخص‌شده ارائه شده است نیز حذف می‌شوند. بسته‌های مورد نیاز سایر پروفایل‌های ماژول نصب‌شده و بسته‌هایی که نام آن‌ها توسط هر ماژول دیگری نیز ارائه شده باشد، حذف نخواهند شد.
فعال‌سازی یک جریان ماژول و در دسترس قرار دادن بسته‌های RPM آن جریان در مجموعه بسته‌ها.

وابستگی‌های ماژولار حل می‌شوند، وابستگی‌ها بررسی شده و همچنین به‌صورت بازگشتی فعال می‌شوند. در صورت بروز مشکل در وابستگی‌های ماژولار، عملیات رد خواهد شد. برای انجام عملیات در هر صورت، لطفاً از گزینهٔ --skip-broken استفاده کنید.

این دستور نمی‌تواند برای تعویض جریان‌های ماژول استفاده شود. برای این منظور از دستور dnf module switch-to استفاده کنید.

غیرفعال‌سازی یک ماژول. تمام جریان‌های ماژول مربوطه غیرقابل دسترس خواهند شد. در نتیجه، تمام پروفایل‌های نصب‌شده حذف شده و بسته‌های RPM ماژول در مجموعه بسته‌ها غیرقابل دسترس می‌شوند. در صورت بروز مشکل در وابستگی‌های ماژولار، عملیات رد خواهد شد. برای انجام عملیات در هر صورت، لطفاً از گزینهٔ --skip-broken استفاده کنید.
بازنشانی وضعیت ماژول به‌گونه‌ای که دیگر فعال یا غیرفعال نباشد. در نتیجه، تمام پروفایل‌های نصب‌شده حذف خواهند شد و تنها بسته‌های RPM مربوط به جریان پیش‌فرض در مجموعه بسته‌ها در دسترس خواهند بود.
تمام بسته‌های ماژولار منطبق با <package-name-spec> را از همهٔ ماژول‌ها (شامل غیرفعال)، به همراه ماژول‌ها و جریان‌هایی که به آن‌ها تعلق دارند فهرست می‌کند.
تمام جریان‌های ماژول، پروفایل‌ها و وضعیت‌های آن‌ها (فعال، غیرفعال، پیش‌فرض) را فهرست می‌کند.
جریان‌های ماژولی را که فعال هستند فهرست می‌کند.
جریان‌های ماژولی را که غیرفعال هستند فهرست می‌کند.
جریان‌های ماژول دارای پروفایل‌های نصب‌شده را فهرست می‌کند.
چاپ اطلاعات دقیق دربارهٔ جریان ماژول ارائه‌شده.
چاپ اطلاعات دقیق دربارهٔ پروفایل‌های ماژول ارائه‌شده.
فهرست کردن تمام بسته‌های موجود متعلق به ماژول‌های انتخاب‌شده.
فهرست کردن تمام بسته‌های موجود متعلق به ماژول‌های انتخاب‌شده.
فهرست کردن تمام بسته‌های نصب‌شده با نام مشابه بسته‌های متعلق به ماژول‌های انتخاب‌شده.

دستور: provides
نام‌های مستعار: prov, whatprovides, wp
بسته‌های ارائه‌دهندهٔ <provide-spec> داده‌شده را پیدا می‌کند. این قابلیت زمانی مفید است که نام فایلی را می‌دانید و می‌خواهید بدانید چه بسته‌ای (نصب‌شده یا خیر) این فایل را ارائه می‌دهد. عبارت <provide-spec> به‌ترتیب در مکان‌های زیر جستجو می‌شود:
1.
عبارت <provide-spec> با تمام ارائه‌دهنده‌های فایل در هر بستهٔ موجود مطابقت داده می‌شود:
$ dnf provides /usr/bin/gzip
gzip-1.9-9.fc29.x86_64 : The GNU data compression program
Matched from:
Filename    : /usr/bin/gzip
2.
سپس تمام ارائه‌دهنده‌های همهٔ بسته‌های موجود جستجو می‌شوند:
$ dnf provides "gzip(x86-64)"
gzip-1.9-9.fc29.x86_64 : The GNU data compression program
Matched from:
Provide     : gzip(x86-64) = 1.9-9.fc29
3.
ابزار DNF فرض می‌کند که <provide-spec> یک دستور سیستمی است، پیشوندهای /usr/bin/ و /usr/sbin/ را (یکی‌یکی) به ابتدای آن اضافه می‌کند و جستجوی ارائه‌دهنده‌های فایل را دوباره انجام می‌دهد. به دلایل سازگاری با گذشته (بسته‌هایی که انتقال به UsrMove را انجام نداده‌اند)، پیشوندهای /bin و /sbin نیز جستجو می‌شوند:
$ dnf provides zless
gzip-1.9-9.fc29.x86_64 : The GNU data compression program
Matched from:
Filename    : /usr/bin/zless
4.
اگر این مرحلهٔ آخر نیز با شکست مواجه شود، DNF عبارت "Error: No Matches found" را برمی‌گرداند.

این دستور به‌طور پیش‌فرض همگام‌سازی متاداده‌های منقضی‌شده را تحمیل نمی‌کند. همچنین بخش Metadata Synchronization را ببینید.

دستور: reinstall
نام‌های مستعار: rei
بسته‌های مشخص‌شده را مجدداً نصب می‌کند؛ در صورتی که برخی از بسته‌ها نصب نشده باشند یا در دسترس نباشند (یعنی مخزنی برای بارگیری همان RPM وجود نداشته باشد) با شکست مواجه می‌شود.

دستور: remove
نام‌های مستعار: rm
نام‌های مستعار برای تطابق صریح NEVRA: remove-n, remove-na, remove-nevra
نام‌های مستعار منسوخ‌شده: erase, erase-n, erase-na, erase-nevra
بسته‌های مشخص‌شده را به همراه هر بسته‌ای که به بسته‌های در حال حذف وابسته است از سیستم حذف می‌کند. هر <spec> می‌تواند یک <package-spec> باشد که مستقیماً یک بسته را مشخص می‌کند، یا یک @<group-spec> که یک گروه (محیطی) شامل آن را مشخص می‌نماید. اگر clean_requirements_on_remove فعال باشد (حالت پیش‌فرض)، وابستگی‌هایی را که دیگر مورد نیاز نیستند نیز حذف می‌کند.
نسخه‌های قدیمی‌تر بسته‌های تکراری را حذف می‌کند. برای اطمینان از یکپارچگی سیستم، جدیدترین بسته را مجدداً نصب می‌کند. در برخی موارد دستور نمی‌تواند تداخل‌ها را حل کند. در چنین شرایطی، دستور dnf shell همراه با زیردستورهای remove --duplicates و upgrade در dnf-shell می‌تواند کمک‌کننده باشد.
بسته‌های قدیمی installonly را حذف می‌کند و تنها آخرین نسخه‌ها و نسخهٔ کرنل در حال اجرا را نگه می‌دارد.

همچنین چند دستور حذف ویژه مانند remove-n، remove-na و remove-nevra وجود دارند که امکان تعیین یک آرگومان دقیق در قالب NEVRA را فراهم می‌کنند. در نتیجه، <spec> با ارائه‌دهنده‌ها و ارائه‌دهنده‌های فایل تطبیق داده نخواهد شد.

حذف بسته‌های acpi و tito.
حذف بسته‌هایی که در هیچ مخزنی وجود ندارند، اما بسته‌های tito و acpi را حذف نکن (اگر به برخی از بسته‌های حذف‌شده وابسته باشند، ممکن است همچنان حذف شوند).
حذف نسخه‌های قدیمی‌تر بسته‌های تکراری (معادل package-cleanup --cleandups در yum).

دستور: repoinfo

نام مستعاری برای دستور repolist که اطلاعات دقیق‌تری مانند dnf repolist -v ارائه می‌دهد.

دستور: repolist
بسته به دستور دقیق، مخازن فعال، غیرفعال یا همهٔ مخازن شناخته‌شده را فهرست می‌کند. به‌طور پیش‌فرض همهٔ مخازن فعال را فهرست می‌کند. هنگام استفاده از گزینهٔ -v اطلاعات دقیق‌تری ارائه می‌دهد.

این دستور به‌طور پیش‌فرض همگام‌سازی متاداده‌های منقضی‌شده را تحمیل نمی‌کند. همچنین بخش Metadata Synchronization را ببینید.

دستور: repoquery
نام‌های مستعار: rq
نام‌های مستعار برای تطابق صریح NEVRA: repoquery-n، repoquery-na، repoquery-nevra
جستجوی مخازن در دسترس DNF برای بسته‌های انتخاب‌شده و نمایش اطلاعات درخواست‌شده درباره آن‌ها. این دستور معادل rpm -q برای مخازن راه دور است.
فهرست کردن گروه‌هایی که شامل <package-spec> هستند.
ارائه فهرست برچسب‌های شناخته‌شده توسط گزینه repoquery با نام --queryformat.

همچنین چند دستور repoquery خاص دیگر شامل repoquery-n، repoquery-na و repoquery-nevra وجود دارند که امکان تعیین دقیق آرگومان در قالب NEVRA را فراهم می‌کنند (بر آرگومان‌های گزینه‌هایی مانند --whatprovides <arg> و... تأثیری ندارد). در نتیجه، <spec> با ارائه‌دهنده‌های فایل مطابقت داده نخواهد شد.

همراه با <package-file-spec>، تعیین می‌کنند چه بسته‌هایی در خروجی نمایش داده شوند. اگر <package-file-spec> مشخص شده باشد، مجموع بسته‌های حاصل را به مواردی که با مشخصات مطابقت دارند محدود می‌کند. اگر هیچ <package-file-spec> مشخص نشده باشد، تمام بسته‌ها در نظر گرفته می‌شوند.

<package-file-spec>
مشخصات بسته در قالب NEVRA (name[-[epoch:]version[-release]][.arch]) یا یک ارائه‌دهنده فایل. بخش Specifying Packages را ببینید.
پرس‌وجوی تمام بسته‌ها (برای سازگاری با rpmquery، همچنین میانبری برای repoquery '*' یا repoquery بدون آرگومان).
محدود کردن مجموعه حاصل فقط به بسته‌های معماری‌های انتخاب‌شده (پیش‌فرض تمام معماری‌ها است). در برخی موارد نتیجه تحت تأثیر basearch سیستم در حال اجرا قرار می‌گیرد، بنابراین برای اجرای repoquery برای معماری ناسازگار با سیستم خود از گزینه --forcearch=<arch> برای تغییر basearch استفاده کنید.
محدود کردن مجموعه حاصل به بسته‌های تکراری نصب‌شده (یعنی چند نسخه بسته برای یک نام و معماری یکسان). بسته‌های installonly از این مجموعه مستثنی هستند.
محدود کردن مجموعه حاصل به بسته‌های برگی (leaves) که به عنوان وابستگی نصب شده بودند و دیگر نیازی به آن‌ها نیست. این سوئیچ بسته‌هایی را فهرست می‌کند که پس از اجرای دستور dnf autoremove حذف خواهند شد.
محدود کردن مجموعه حاصل تنها به بسته‌های در دسترس (تنظیم‌شده به عنوان پیش‌فرض).
غیرفعال کردن فیلتر بسته‌های ماژولار، به طوری که بسته‌های جریان‌های ماژول غیرفعال در نتیجه گنجانده شوند.
محدود کردن مجموعه حاصل به بسته‌هایی که در هیچ‌یک از مخازن در دسترس موجود نیستند.
محدود کردن مجموعه حاصل تنها به بسته‌ای که مالک <file> است.
محدود کردن مجموعه حاصل تنها به بسته‌های نصب‌شده. گزینه exclude <#exclude-label> در فایل پیکربندی ممکن است بر نتیجه تأثیر بگذارد، اما اگر از گزینه خط فرمان --disableexcludes استفاده شود، تضمین می‌کند تمام بسته‌های نصب‌شده فهرست شوند.
محدود کردن مجموعه حاصل به بسته‌های installonly نصب‌شده.
محدود کردن مجموعه حاصل به <number> مورد از جدیدترین بسته‌ها برای هر نام بسته و معماری. اگر <number> منفی باشد، از <number> بسته جدیدتر صرف‌نظر می‌شود. برای یک <number> منفی از ساختار --latest-limit=<number> استفاده کنید.
محدود کردن مجموعه حاصل به بسته‌هایی که اخیراً ویرایش شده‌اند.
محدود کردن مجموعه حاصل فقط به بسته‌های مخزنی که با <repoid> مشخص شده است. با اثر تجمیعی می‌تواند چندین بار استفاده شود.
گزارش وابستگی‌های برآورده‌نشده میان بسته‌های نصب‌شده (یعنی نیازمندی‌های مفقود و تعارض‌های موجود).
محدود کردن مجموعه حاصل به بسته‌هایی که ارتقایی برای بسته نصب‌شده فعلی ارائه می‌دهند.
محدود کردن مجموعه حاصل به بسته‌های نصب‌شده توسط کاربر. گزینه exclude <#exclude-label> در فایل پیکربندی ممکن است بر نتیجه تأثیر بگذارد، اما اگر از گزینه خط فرمان --disableexcludes استفاده شود، تضمین می‌کند تمام بسته‌های نصب‌شده فهرست شوند.
محدود کردن مجموعه حاصل فقط به بسته‌هایی که به هر یک از <capabilities> نیازمندند، آن را بهبود می‌دهند، توصیه می‌کنند، پیشنهاد می‌دهند یا تکمیل می‌کنند.
محدود کردن مجموعه حاصل فقط به بسته‌هایی که با هر یک از <capabilities> تعارض دارند.
محدود کردن مجموعه حاصل فقط به بسته‌هایی که هر یک از <capabilities> را بهبود می‌دهند. اگر می‌خواهید تمام بسته‌های وابسته را فهرست کنید از --whatdepends استفاده کنید.
محدود کردن مجموعه حاصل فقط به بسته‌هایی که هر یک از <capabilities> را منسوخ می‌کنند.
محدود کردن مجموعه حاصل فقط به بسته‌هایی که هر یک از <capabilities> را ارائه می‌دهند.
محدود کردن مجموعه حاصل فقط به بسته‌هایی که هر یک از <capabilities> را توصیه می‌کنند. اگر می‌خواهید تمام بسته‌های وابسته را فهرست کنید از --whatdepends استفاده کنید.
محدود کردن مجموعه حاصل فقط به بسته‌هایی که به هر یک از <capabilities> نیاز دارند. اگر می‌خواهید تمام بسته‌های وابسته را فهرست کنید از --whatdepends استفاده کنید.
محدود کردن مجموعه حاصل فقط به بسته‌هایی که هر یک از <capabilities> را پیشنهاد می‌دهند. اگر می‌خواهید تمام بسته‌های وابسته را فهرست کنید از --whatdepends استفاده کنید.
محدود کردن مجموعه حاصل فقط به بسته‌هایی که هر یک از <capabilities> را تکمیل می‌کنند. اگر می‌خواهید تمام بسته‌های وابسته را فهرست کنید از --whatdepends استفاده کنید.
این گزینه فقط با --whatrequires یا --whatdepends قابل ترکیب است. علاوه بر این، تمام بسته‌های نیازمند ویژگی‌های بسته را به مجموعه نتایج اضافه می‌کند (به صورت پیش‌فرض استفاده می‌شود).
این گزینه فقط با --whatrequires یا --whatdepends قابل ترکیب است. محدود کردن مجموعه حاصل فقط به بسته‌هایی که دقیقاً به <capability> مشخص‌شده توسط --whatrequires نیاز دارند.
عملیات روی بسته RPM سورس متناظر.

تنظیم اطلاعاتی که درباره هر بسته نمایش داده می‌شود.

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

نمایش اطلاعات دقیق درباره بسته.
نمایش فهرست فایل‌های موجود در بسته.
نمایش نام RPM سورس بسته.
چاپ تاریخچه تغییرات (changelog) بسته.
نمایش قابلیت‌هایی که بسته با آن‌ها تعارض دارد. معادل --qf "%{conflicts}.
نمایش قابلیت‌هایی که بسته به آن‌ها وابسته است، آن‌ها را بهبود می‌دهد، توصیه می‌کند، پیشنهاد می‌دهد یا تکمیل می‌کند.
نمایش قابلیت‌های بهبودیافته توسط بسته. معادل --qf "%{enhances}"".
نمایش مکانی که بسته می‌تواند از آنجا دریافت شود.
نمایش قابلیت‌هایی که بسته منسوخ می‌کند. معادل --qf "%{obsoletes}".
نمایش قابلیت‌های ارائه‌شده توسط بسته. معادل --qf "%{provides}".
نمایش قابلیت‌های توصیه‌شده توسط بسته. معادل --qf "%{recommends}".
نمایش قابلیت‌هایی که بسته به آن‌ها وابسته است. معادل --qf "%{requires}".
نمایش قابلیت‌هایی که بسته برای اجرای یک اسکریپت %pre به آن‌ها وابسته است. معادل --qf "%{requires-pre}".
نمایش قابلیت‌های پیشنهادی توسط بسته. معادل --qf "%{suggests}".
نمایش قابلیت‌های تکمیل‌شده توسط بسته. معادل --qf "%{supplements}".
نمایش ساختار درختی بازگشتی از بسته‌ها با قابلیت‌های مشخص‌شده توسط یکی از گزینه‌های تکمیلی زیر: --whatrequires، --requires، --conflicts، --enhances، --suggests، --provides، --supplements، --recommends.
تولید فهرستی از تمام وابستگی‌های مستقیم و بسته‌هایی که آن وابستگی‌ها را برای بسته‌های داده‌شده ارائه می‌کنند. نتیجه تنها جدیدترین ارائه‌دهندگان را نشان می‌دهد (که با استفاده از --verbose قابل تغییر است).
نمایش بسته‌های پیداشده در قالب name-version-release. معادل --qf "%{name}-%{version}-%{release}".
نمایش بسته‌های پیداشده در قالب name-epoch:version-release.architecture. معادل --qf "%{name}-%{epoch}:%{version}-%{release}.%{arch}" (پیش‌فرض).
نمایش بسته‌های پیداشده در قالب epoch:name-version-release.architecture. معادل --qf "%{epoch}:%{name}-%{version}-%{release}.%{arch}"
قالب نمایش سفارشی. <format> رشته‌ای است که برای هر بسته منطبق خروجی داده می‌شود. هر رخداد %{<tag>} در آن با مشخصه متناظر بسته جایگزین می‌شود. فهرست برچسب‌های شناخته‌شده را می‌توان با اجرای dnf repoquery --querytags مشاهده کرد.
پرس‌وجوی بازگشتی بسته‌ها. باید همراه با --whatrequires <REQ> (اختیاراً با --alldeps، اما نه با --exactdeps) یا با --requires <REQ> --resolve استفاده شود.
حل وابستگی‌های قابلیت‌ها به بسته(های) منشأ.

نمایش NEVRA تمام بسته‌های در دسترس منطبق با light*
نمایش NEVRA تمام بسته‌های در دسترس منطبق با نام light* و معماری noarch (فقط آرگومان‌ها را در قالب "<name>.<arch>" می‌پذیرد)
نمایش نیازمندی‌های تمام بسته‌های lighttpd
نمایش بسته‌های ارائه‌دهنده نیازمندی‌های بسته‌های python
نمایش rpm سورس بسته lighttpd
نمایش نام بسته‌ای که مالک فایل مشخص‌شده است
نمایش نام، معماری و مخزن حاوی تمام بسته‌های lighttpd
نمایش تمام بسته‌های در دسترس ارائه‌دهنده "webserver"
نمایش تمام بسته‌های در دسترس ارائه‌دهنده "webserver" ولی فقط برای معماری "i686"
نمایش بسته‌های تکراری
نمایش بسته‌های سورسی که برای ساخت به یک <provide> نیاز دارند

دستور: repository-packages
نام‌های مستعار منسوخ‌شده: repo-pkgs، repo-packages، repository-pkgs

دستور repository-packages به کاربر اجازه می‌دهد دستورها را روی تمام بسته‌های مخزن با نام <repoid> اجرا کند. با این حال، هرگونه حل وابستگی، بسته‌های تمام مخازن فعال را در نظر می‌گیرد. مشخصات <package-file-spec> و <package-spec> نامزدها را بیش از پیش تنها به بسته‌هایی محدود می‌کنند که حداقل با یکی از آن‌ها مطابقت دارند.

زیردستور info توضیحات و اطلاعات خلاصه‌ای را درباره بسته‌ها بر اساس رابطه بسته‌ها با مخزن فهرست می‌کند. زیردستور list صرفاً فهرستی از آن بسته‌ها را چاپ می‌کند.

بررسی غیرتعاملی اینکه آیا به‌روزرسانی برای بسته‌های مشخص‌شده در مخزن در دسترس است یا خیر. در صورت وجود به‌روزرسانی، کد خروج DNF برابر ۱۰۰ خواهد بود و فهرستی از به‌روزرسانی‌ها چاپ خواهد شد.
فهرست کردن تمام بسته‌های مرتبط.
فهرست کردن بسته‌های نصب‌شده از مخزن.
فهرست کردن بسته‌های در دسترس در مخزن که در حال حاضر روی سیستم نصب نیستند.
فهرست کردن بسته‌های نصب‌شده از مخزن که در هیچ مخزنی در دسترس نیستند.
فهرست کردن بسته‌های موجود در مخزن که بسته‌های نصب‌شده روی سیستم را منسوخ می‌کنند.
فهرست کردن بسته‌هایی که اخیراً به مخزن افزوده شده‌اند.
فهرست کردن بسته‌های موجود در مخزن که بسته‌های نصب‌شده روی سیستم را ارتقا می‌دهند.
نصب بسته‌های منطبق با <package-spec> از مخزن. اگر <package-spec> اصلاً مشخص نشده باشد، تمام بسته‌ها را از مخزن نصب می‌کند.
فهرست کردن تمام بسته‌های مرتبط.
فهرست کردن بسته‌های نصب‌شده از مخزن.
فهرست کردن بسته‌های در دسترس در مخزن که در حال حاضر روی سیستم نصب نیستند.
فهرست کردن بسته‌های نصب‌شده از مخزن که در هیچ مخزنی در دسترس نیستند.
فهرست کردن بسته‌های موجود در مخزن که بسته‌های نصب‌شده روی سیستم را منسوخ می‌کنند.
فهرست کردن بسته‌هایی که اخیراً به مخزن افزوده شده‌اند.
فهرست کردن بسته‌های موجود در مخزن که بسته‌های نصب‌شده روی سیستم را ارتقا می‌دهند.
نصب مجدد تمام بسته‌هایی که در مخزن در دسترس هستند.
اجرای زیردستور reinstall-old. در صورت ناموفق بودن، اجرای زیردستور move-to.
نصب مجدد تمام بسته‌هایی که از مخزن نصب شده بودند و هم‌زمان در مخزن در دسترس هستند.
حذف تمام بسته‌های نصب‌شده از مخزن به همراه هر بسته‌ای که به بسته‌های در حال حذف وابسته است. اگر clean_requirements_on_remove فعال باشد (پیش‌فرض)، هر وابستگی که دیگر نیازی به آن نیست نیز حذف می‌شود.
انتخاب تمام بسته‌های نصب‌شده از مخزن. ارتقا، تنزل نسخه یا نگه‌داشتن آن‌هایی که در مخزن دیگری در دسترس هستند تا با آخرین نسخه موجود در آنجا مطابقت داده شوند، و حذف سایرین به همراه هر بسته‌ای که به بسته‌های در حال حذف وابسته است. اگر clean_requirements_on_remove فعال باشد (پیش‌فرض)، هر وابستگی که دیگر نیازی به آن نیست نیز حذف می‌شود.
انتخاب تمام بسته‌های نصب‌شده از مخزن. نصب مجدد آن‌هایی که در مخزن دیگری در دسترس هستند و حذف سایرین به همراه هر بسته‌ای که به بسته‌های در حال حذف وابسته است. اگر clean_requirements_on_remove فعال باشد (پیش‌فرض)، هر وابستگی که دیگر نیازی به آن نیست نیز حذف می‌شود.
به‌روزرسانی تمام بسته‌ها به بالاترین نسخه قابل‌حل موجود در مخزن. هنگامی که نسخه‌ها در <package-spec> مشخص شده باشند، به‌روزرسانی به این نسخه‌ها انجام می‌شود.
نام مستعار منسوخ‌شده برای زیردستور upgrade.

دستور: search
نام‌های مستعار: se
جستجوی فراداده بسته برای کلیدواژه‌ها. کلیدواژه‌ها به صورت زیررشته‌های غیرحساس به بزرگی و کوچکی حروف مطابقت داده می‌شوند و globbing نیز پشتیبانی می‌شود. به طور پیش‌فرض بسته‌هایی را فهرست می‌کند که با تمام کلیدهای درخواستی مطابقت دارند (عملگر AND). کلیدها در نام بسته‌ها و خلاصه‌ها جستجو می‌شوند. اگر از گزینه --all استفاده شود، بسته‌هایی را که حداقل با یکی از کلیدها مطابقت دارند فهرست می‌کند (عملگر OR). علاوه بر این، کلیدها در توضیحات بسته و URLها نیز جستجو می‌شوند. خروجی از مرتبط‌ترین نتایج به کم‌ارتباط‌ترین مرتب می‌شود.

این دستور به طور پیش‌فرض همگام‌سازی فراداده‌های منقضی‌شده را اجباری نمی‌کند. همچنین بخش Metadata Synchronization را ببینید.

دستور: shell
نام‌های مستعار: sh
باز کردن یک پوسته تعاملی برای اجرای چندین دستور در طول یک بار اجرای DNF. این دستورها می‌توانند به صورت دستی صادر شده یا از یک فایل به DNF فرستاده شوند. این دستورها بسیار شبیه به گزینه‌های خط فرمان معمول DNF هستند. چند دستور اضافی نیز وجود دارند که در زیر مستند شده‌اند.
•
تنظیم یک گزینه پیکربندی به مقدار درخواستی. اگر مقداری داده نشود، مقدار فعلی چاپ می‌شود.
  • list: فهرست کردن مخازن و وضعیت آن‌ها
  • enable: فعال‌سازی مخزن
  • disable: غیرفعال‌سازی مخزن
  • list: حل وابستگی و فهرست کردن محتوای تراکنش
  • reset: بازنشانی تراکنش
  • run: حل وابستگی و اجرای تراکنش

توجه داشته باشید که تمام بسته‌های محلی باید در اولین زیردستور تراکنش shell استفاده شوند (مانند install /tmp/nodejs-1-1.x86_64.rpm /tmp/acpi-1-1.noarch.rpm)؛ در غیر این صورت خطا رخ خواهد داد. هرگونه عملیات ماژول disable، enable و reset (مانند module enable nodejs) نیز باید پیش از استفاده از هر زیردستور تراکنش دیگر shell انجام شود.

دستور: swap

dnf [options] swap <remove-spec> <install-spec>

حذف remove-spec و نصب install-spec در یک تراکنش واحد. هر <spec> می‌تواند یک <package-spec> باشد که مستقیماً بسته را مشخص می‌کند، یا یک @<group-spec> که گروه (محیطی) حاوی آن را مشخص می‌نماید. حل خودکار تداخل‌ها در DNF از طریق گزینهٔ --allowerasing فراهم شده است که عملکرد دستور swap را به صورت خودکار ارائه می‌دهد.

دستور: updateinfo
نام‌های مستعار: upif
نام‌های مستعار منسوخ‌شده: list-updateinfo, list-security, list-sec, info-updateinfo, info-security, info-sec, summary-updateinfo
نمایش اطلاعات دربارهٔ توصیه‌نامه‌های به‌روزرسانی.

بسته به نوع خروجی، DNF تنها تعداد انواع توصیه‌نامه (در صورت حذف یا با --summary)، فهرست توصیه‌نامه‌ها (--list) یا اطلاعات دقیق (--info) را نمایش می‌دهد. گزینهٔ -v خروجی را گسترش می‌دهد. هنگام استفاده همراه با --info، اطلاعات با جزئیات بیشتری نمایش داده می‌شود. هنگام استفاده همراه با --list، یک ستون اضافی با تاریخ آخرین به‌روزرسانی توصیه‌نامه اضافه می‌گردد.

<availability> مشخص می‌کند که آیا توصیه‌نامه‌های مربوط به نسخه‌های جدیدتر بسته‌های نصب‌شده (در صورت حذف یا با --available)، توصیه‌نامه‌های مربوط به نسخه‌های یکسان و قدیمی‌تر بسته‌های نصب‌شده (--installed)، توصیه‌نامه‌های مربوط به نسخه‌های جدیدتر آن دسته از بسته‌های نصب‌شده که نسخهٔ جدیدتری برای آن‌ها موجود است (--updates)، یا توصیه‌نامه‌های مربوط به هر نسخه‌ای از بسته‌های نصب‌شده (--all) در نظر گرفته شوند. در اغلب موارد، --available و --updates خروجی یکسانی را نمایش می‌دهند. تفاوت خروجی‌ها تنها در مواردی است که یک توصیه‌نامه به نسخهٔ جدیدتری اشاره دارد اما هیچ مخزن فعالی شامل نسخهٔ جدیدتر وجود ندارد.

توجه داشته باشید که --available تنها آخرین نسخه‌های نصب‌شدهٔ بسته‌ها را لحاظ می‌کند. در مورد بسته‌های هسته (kernel) (که چندین نسخه می‌توانند به‌طور هم‌زمان نصب باشند)، بسته‌های نسخهٔ فعلی هستهٔ در حال اجرا نیز افزوده می‌شوند.

برای چاپ صرفاً توصیه‌نامه‌هایی که به یک CVE یا bugzilla ارجاع دارند، از گزینه‌های --with-cve یا --with-bz استفاده کنید. با استفاده از این سوئیچ‌ها خروجی --list نیز تغییر می‌کند - به جای شناسهٔ توصیه‌نامه، شناسهٔ CVE یا bugzilla چاپ می‌شود.

در صورت تعیین، چنانچه هیچ‌یک از شناسه، نوع (bugfix، enhancement، security/sec) یا نام بستهٔ یک توصیه‌نامه با <spec> مطابقت نداشته باشد، توصیه‌نامه لحاظ نمی‌شود. این تطابق حساس به حروف بزرگ و کوچک است و در مورد شناسه‌های توصیه‌نامه و نام بسته‌ها، الگوهای تطابق (globbing) پشتیبانی می‌شود.

خروجی گزینهٔ --summary تحت تأثیر گزینهٔ پیکربندی autocheck_running_kernel <#autocheck-running-kernel-label> قرار می‌گیرد.

دستور: upgrade
نام‌های مستعار: up
نام‌های مستعار منسوخ‌شده: update, upgrade-to, update-to, localupdate
ارتقای هر بسته به آخرین نسخه‌ای که هم در دسترس و هم قابل حل باشد.
ارتقای هر بستهٔ مشخص‌شده به آخرین نسخهٔ موجود. وابستگی‌ها در صورت نیاز به‌روزرسانی می‌شوند. در صورت مشخص شدن نسخه‌ها در <package-spec>، به همان نسخه‌ها ارتقا می‌یابد.
نام مستعار برای دستور dnf module update.

اگر گزینهٔ پیکربندی اصلی obsoletes فعال باشد یا فلگ --obsoletes تعیین شده باشد، dnf منسوخ‌سازی بسته‌ها را در محاسبات خود لحاظ می‌کند. برای اطلاعات بیشتر obsoletes <#obsoletes-conf-option-label> را ببینید.

همچنین بخش «سیاست جایگزینی فایل‌های پیکربندی» را ببینید.

دستور: upgrade-minimal
نام‌های مستعار: up-min
نام‌های مستعار منسوخ‌شده: update-minimal
ارتقای هر بسته به نزدیک‌ترین نسخهٔ موجود که ارائه‌دهندهٔ یک رفع اشکال (bugfix)، بهبود (enhancement) یا رفع مشکل امنیتی (security) باشد.
ارتقای هر بستهٔ مشخص‌شده به نزدیک‌ترین نسخهٔ موجود که ارائه‌دهندهٔ یک رفع اشکال (bugfix)، بهبود (enhancement) یا رفع مشکل امنیتی (security) باشد. وابستگی‌ها در صورت نیاز به‌روزرسانی می‌شوند.

بسیاری از دستورها یک پارامتر <package-spec> را می‌پذیرند که بسته‌ای را برای عملیات انتخاب می‌کند. آرگومان <package-spec> با NEVRAها، ارائه‌دهنده‌ها (provides) و فایل‌های ارائه‌دهندهٔ بسته تطبیق داده می‌شود.

<package-file-spec> مشابه <package-spec> است، با این تفاوت که تطابق provides انجام نمی‌شود. بنابراین، <package-file-spec> تنها با NEVRAها و فایل‌های ارائه‌دهنده تطبیق داده می‌شود.

<package-name-spec> فقط با NEVRAها تطبیق داده می‌شود.

مشخص‌سازی بسته از همان تطابق الگوی glob که شل استفاده می‌کند پشتیبانی می‌کند، در هر سه مورد ذکرشده در بالا که بسته با آن‌ها تطبیق داده می‌شود (NEVRAها، provides و فایل‌های ارائه‌دهنده).

الگوهای زیر پشتیبانی می‌شوند:

*
با هر تعداد نویسه تطابق می‌یابد.
?
با هر تک‌نویسه تطابق می‌یابد.
[]
با هر یک از نویسه‌های محصور تطابق می‌یابد. یک جفت نویسه که با خط تیره از هم جدا شده‌اند، بیانگر یک عبارت بازه‌ای است؛ هر نویسه‌ای که بین آن دو نویسه قرار گیرد (شامل خود آن‌ها) تطبیق داده می‌شود. اگر نخستین نویسهٔ پس از [ علامت ! یا ^ باشد، هر نویسه‌ای که محصور نشده باشد تطبیق می‌یابد.

نکته: آکولادها ({}) پشتیبانی نمی‌شوند. همچنان می‌توانید از آن‌ها در شل‌هایی که پشتیبانی می‌کنند استفاده کنید و اجازه دهید شل عمل بسط را انجام دهد، اما در صورت نقل‌قول شدن یا استفاده از نویسهٔ گریز، dnf آن‌ها را بسط نخواهد داد.

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

  • name-[epoch:]version-release.arch
  • name.arch
  • name
  • name-[epoch:]version-release
  • name-[epoch:]version

توجه داشته باشید که name به‌طور کلی می‌تواند حاوی خط تیره باشد (مانند package-with-dashes).

نخستین قالبی که با هر بسته‌ای تطابق یابد استفاده می‌شود و سایر قالب‌ها آزمایش نخواهند شد. اگر هیچ‌یک از قالب‌ها با هیچ بسته‌ای تطابق نداشته باشد، تلاشی برای تطبیق <package-spec> با NEVRAهای کامل بسته انجام می‌شود. این موضوع تنها در صورتی مرتبط است که الگوهای glob در <package-spec> حضور داشته باشند.

<package-spec> به همان شیوه‌ای با NEVRAها تطابق می‌یابد که <package-name-spec> عمل می‌کند، اما در صورتی که تطابق NEVRAها ناموفق باشد، تلاش می‌کند تا با provides و فایل‌های ارائه‌دهندهٔ بسته‌ها نیز تطابق یابد.

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

برخی دستورها (autoremove، install، remove و repoquery) همچنین دارای نام‌های مستعاری با پسوندهای -n، -na و -nevra هستند که امکان تعیین صریح نحوهٔ تجزیهٔ آرگومان‌ها را فراهم می‌کنند:

  • دستور install-n تنها با name تطبیق می‌یابد.
  • دستور install-na تنها با name.arch تطبیق می‌یابد.
  • دستور install-nevra تنها با name-[epoch:]version-release.arch تطبیق می‌یابد.

عبارت <provide-spec> در توضیحات دستور بدین معناست که دستور روی بسته‌های ارائه‌دهندهٔ مشخصهٔ داده‌شده عمل می‌کند. این می‌تواند یک ارائه‌دهندهٔ صریح، یک ارائه‌دهندهٔ ضمنی (مانند نام بسته) یا یک فایل ارائه‌دهنده باشد. این انتخاب حساس به حروف بزرگ و کوچک است و الگوهای تطابق (globbing) پشتیبانی می‌شود.

اگر یک مشخصه با / یا */ آغاز شود، به عنوان یک فایل ارائه‌دهندهٔ بالقوه در نظر گرفته می‌شود.

<group-spec> امکان انتخاب گروه‌های (محیطی) مورد نظر برای یک عملیات خاص را فراهم می‌کند. این یک رشتهٔ غیرحساس به حروف بزرگ و کوچک است (با پشتیبانی از نویسه‌های globbing) که با شناسهٔ گروه، نام رسمی و نام ترجمه‌شده به زبان محلی فعلی LC_MESSAGES (در صورت امکان) تطبیق داده می‌شود.

<module-spec> امکان انتخاب ماژول‌ها یا پروفایل‌های مورد نظر برای یک عملیات خاص را فراهم می‌کند.

این مشخصه در قالب NAME:STREAM:VERSION:CONTEXT:ARCH/PROFILE است و قالب‌های جزئی پشتیبانی‌شده به شرح زیر هستند:

  • NAME
  • NAME:STREAM
  • NAME:STREAM:VERSION
  • NAME:STREAM:VERSION:CONTEXT
  • تمام ترکیب‌های بالا به همراه ::ARCH (مانند NAME::ARCH)
  • NAME:STREAM:VERSION:CONTEXT:ARCH
  • تمام ترکیب‌های بالا به همراه /PROFILE (مانند NAME/PROFILE)

در صورتی که stream مشخص نشده باشد، به ترتیب جریان فعال یا پیش‌فرض استفاده می‌شود. در صورتی که profile مشخص نشده باشد، پروفایل پیش‌فرض سیستم یا پروفایل 'default' استفاده خواهد شد.

<transaction-spec> می‌تواند به یکی از چندین قالب باشد. اگر یک عدد صحیح باشد، یک شناسهٔ تراکنش را مشخص می‌کند. مشخص کردن last معادل مشخص کردن شناسهٔ آخرین تراکنش است. آخرین قالب last-<offset> است که در آن <offset> یک عدد صحیح مثبت است. این قالب، تراکنش شمارهٔ offset قبل از آخرین تراکنش را مشخص می‌کند.

فیلتر کردن بسته‌ها، بسته‌ها را از مجموعه بسته‌های در دسترس خارج می‌کند و آن‌ها را برای اکثر دستورهای dnf غیرقابل مشاهده می‌سازد. از آن‌ها نمی‌توان در یک تراکنش استفاده کرد. بسته‌ها می‌توانند از طریق «فیلتر کردن حذفی» یا «فیلتر کردن ماژولار» فیلتر شوند.

فیلتر کردن حذفی سازوکاری است که توسط کاربر یا توسط یک پلاگین DNF برای تغییر مجموعهٔ بسته‌های در دسترس استفاده می‌شود. فیلتر کردن حذفی می‌تواند با گزینه‌های پیکربندی includepkgs <#include-label> یا excludepkgs <#exclude-label> در فایل‌های پیکربندی <#conf-ref-label> تغییر یابد. گزینهٔ خط فرمان --disableexcludes می‌تواند برای نادیده گرفتن موارد حذفی از فایل‌های پیکربندی استفاده شود. علاوه بر موارد حذفی پیکربندی‌شده توسط کاربر، پلاگین‌ها نیز می‌توانند مجموعهٔ بسته‌های مستثنی‌شده را گسترش دهند. برای غیرفعال کردن موارد حذفی از یک پلاگین DNF می‌توانید از گزینهٔ خط فرمان --disableplugin استفاده کنید.

برای غیرفعال کردن تمام موارد حذفی، مثلاً برای دستور install، می‌توانید از ترکیب زیر در گزینه‌های خط فرمان استفاده کنید:

dnf --disableexcludes=all --disableplugin="*" install bash

لطفاً برای جزئیات نحوهٔ عملکرد فیلتر کردن ماژولار، به مستندات ماژولاریتی <#modularity-label> مراجعه کنید.

با ماژولاریتی، تنها بسته‌های RPM مربوط به جریان‌های ماژول active در مجموعهٔ بسته‌های در دسترس گنجانده می‌شوند. بسته‌های RPM مربوط به جریان‌های ماژول inactive، و همچنین بسته‌های غیرماژولار با همان نام یا provides مشابه با بسته‌ای از یک جریان ماژول active، فیلتر می‌شوند. فیلتر کردن ماژولار روی بسته‌های اضافه‌شده از خط فرمان، بسته‌های نصب‌شده، یا بسته‌های مربوط به مخازنی با module_hotfixes=true در فایل .repo اعمال نمی‌شود.

غیرفعال کردن فیلتر ماژولار توصیه نمی‌شود، زیرا ممکن است باعث شود سیستم در وضعیت معیوب قرار گیرد. برای غیرفعال کردن فیلتر ماژولار در یک مخزن خاص، عبارت module_hotfixes=true را در فایل .repo مشخص کنید یا از --setopt=<repo_id>.module_hotfixes=true استفاده نمایید.

برای یافتن ماژولی که حاوی یک بستهٔ مستثنی‌شده است، از dnf module provides استفاده کنید.

عملکرد صحیح DNF به دسترسی به داده‌های به‌روز از تمام مخازن فعال وابسته است، اما تماس با آینه‌های راه دور در هر عملیات، سرعت آن را به‌طور چشمگیری کاهش داده و برای کاربر و ارائه‌دهندهٔ مخزن هزینهٔ پهنای باند دارد. گزینهٔ پیکربندی مخزن metadata_expire <#metadata-expire-label> (نگاه کنید به dnf.conf(5)) توسط DNF استفاده می‌شود تا مشخص کند آیا نسخهٔ محلی داده‌های یک مخزن نیاز به همگام‌سازی مجدد دارد یا خیر. بسیار مهم است که ارائه‌دهندگان مخزن این گزینه را به‌درستی تنظیم کنند، به این معنی که روی مقداری تنظیم شود که تضمین نماید اگر متادیتای خاصی در زمان T روی سرور در دسترس بود، تمام بسته‌های مورد ارجاع آن همچنان در زمان T + metadata_expire برای دانلود از سرور در دسترس خواهند بود.

برای کاهش بیشتر بار پهنای باند، برخی از دستورها که داشتن متادیتای به‌روز در آن‌ها حیاتی نیست (مانند دستور list) بررسی نمی‌کنند که آیا یک مخزن منقضی شده است یا خیر، و هر زمان که نسخه‌ای از آن به‌طور محلی برای حساب کاربر موجود باشد، از آن استفاده می‌شود. برای استفاده توسط کاربران غیر root، به سوئیچ --cacheonly نیز مراجعه کنید. توجه داشته باشید که در همهٔ شرایط، کاربر می‌تواند همگام‌سازی تمام مخازن فعال را با سوئیچ --refresh اجبار کند.

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

فایل‌های کش (Cache Files)
/var/cache/dnf
پیکربندی اصلی (Main Configuration)
/etc/dnf/dnf.conf
مخزن (Repository)
/etc/yum.repos.d/

فایل AUTHORS را در توزیع سورس DNF ببینید.

2012-2020, Red Hat, تحت مجوز GPLv2+

December 17, 2025 4.24.0