dpkg-divert(1) dpkg suite dpkg-divert(1) نام (NAME) dpkg-divert - جایگزینی و تغییر مسیر نسخه بسته از یک فایل خلاصه دستور (SYNOPSIS) dpkg-divert [گزینه...] دستور توضیحات (DESCRIPTION) dpkg-divert ابزاری است که برای برپایی و به‌روزرسانی فهرست تغییر مسیرها (انحراف‌ها) استفاده می‌شود. تغییر مسیر فایل‌ها روشی است برای وادار کردن dpkg(1) به نصب نکردن یک فایل در مکان اصلی آن، بلکه در یک مکان منحرف‌شده. تغییر مسیرها می‌توانند توسط اسکریپت‌های نگه‌دارنده بسته جهت کنار گذاشتن یک فایل هنگام بروز تداخل به کار روند. همچنین مدیران سیستم می‌توانند از آن برای جایگزینی فایل پیکربندی یک بسته، یا در هر زمانی که لازم است برخی فایل‌ها (که به عنوان “conffiles” علامت‌گذاری نشده‌اند) در حین نصب نسخه جدیدتری از بسته حاوی آن فایل‌ها توسط dpkg دست‌نخورده حفظ شوند، استفاده کنند. دستورات (COMMANDS) [--add] file افزودن یک تغییر مسیر برای file. در حال حاضر نام فایل تغییر داده نمی‌شود، گزینه --rename را ببینید. --remove file حذف یک تغییر مسیر برای file. در حال حاضر نام فایل تغییر داده نمی‌شود، گزینه --rename را ببینید. --list [glob-pattern] فهرست کردن تمام تغییر مسیرها، یا مواردی که با الگوی glob-pattern مطابقت دارند. --listpackage file چاپ نام بسته‌ای که file را تغییر مسیر می‌دهد (از dpkg 1.15.0 به بعد). اگر file به‌صورت محلی تغییر مسیر یافته باشد عبارت LOCAL و اگر فایل تغییر مسیر نیافته باشد هیچ چیزی چاپ نمی‌کند. --truename file چاپ نام واقعی یک فایل تغییرمسیریافته. گزینه‌ها (OPTIONS) --admindir directory تنظیم دایرکتوری مدیریتی به directory. در صورتی که DPKG_ADMINDIR مقداردهی نشده باشد، مقدار پیش‌فرض «/var/lib/dpkg» خواهد بود. --instdir directory تنظیم دایرکتوری نصب، که به دایرکتوری محل نصب بسته‌ها اشاره دارد (از dpkg 1.19.2 به بعد). در صورتی که DPKG_ROOT مقداردهی نشده باشد، مقدار پیش‌فرض «/» خواهد بود. --root directory تنظیم دایرکتوری ریشه به directory، که در صورت تعیین نشدن DPKG_ROOT دایرکتوری نصب را روی «directory» و دایرکتوری مدیریتی را روی «directory/var/lib/dpkg» تنظیم می‌کند (از dpkg 1.19.2 به بعد). --divert divert-to divert-to مکانی است که نسخه‌های file، آن‌چنان که توسط بسته‌های دیگر ارائه می‌شوند، به آنجا تغییر مسیر داده خواهند شد. --local مشخص می‌کند که نسخه‌های تمام بسته‌ها از این فایل تغییر مسیر داده شوند. این بدان معناست که هیچ استثنایی وجود ندارد و هر بسته‌ای نصب شود، این فایل منحرف خواهد شد. مدیر سیستم می‌تواند از این گزینه برای نصب نسخه اصلاح‌شده محلی استفاده کند. --package package package نام بسته‌ای است که نسخه آن از file تغییر مسیر داده نخواهد شد؛ به این معنی که file برای تمام بسته‌ها به جز package تغییر مسیر می‌یابد. --quiet حالت بی‌صدا؛ یعنی خروجی پرگویی تولید نشود. --rename فایل را واقعاً به کناری (یا به جای قبلی‌اش) منتقل می‌کند. در صورتی که فایل مقصد از قبل وجود داشته باشد، dpkg-divert عملیات را لغو خواهد کرد. این رفتار رایجی است که برای تغییر مسیر فایل‌های مربوط به مجموعه بسته‌های غیرضروری (غیر-Essential) به کار می‌رود (برای جزئیات بیشتر گزینه --no-rename را ببینید). --no-rename مشخص می‌کند که هنگام افزودن یا حذف تغییر مسیر در پایگاه‌داده، نام فایل نباید تغییر داده شود (از dpkg 1.19.1 به بعد). این گزینه برای تغییر مسیر فایل‌های مجموعه بسته‌های ضروری (Essential) در نظر گرفته شده است، جایی که ناپدید شدن موقت فایل اصلی غیرقابل‌قبول است چرا که می‌تواند سیستم را از کار بیندازد. این رفتار پیش‌فرض است، که پس از پایان استفاده کاربران شناخته‌شده تغییر خواهد کرد، اما زودتر از چرخه انتشار dpkg 1.23.x نخواهد بود. --test حالت آزمایشی؛ تغییری در عمل اعمال نمی‌شود و فقط مراحل به نمایش درمی‌آیند. -?, --help نمایش پیام راهنمای نحوه استفاده و خروج. --version نمایش نگارش و خروج. وضعیت خروج (EXIT STATUS) 0 عملیات درخواستی با موفقیت انجام شد. 2 خطای مهلک یا غیرقابل‌جبران به دلیل استفاده نادرست در خط فرمان، یا برهم‌کنش با سیستم مانند دسترسی به پایگاه‌داده، تخصیص حافظه و غیره. محیط (ENVIRONMENT) DPKG_ROOT در صورت تنظیم شدن و مشخص نشدن گزینه‌های --instdir یا --root، به عنوان دایرکتوری ریشه سیستم‌فایل استفاده می‌شود (از dpkg 1.19.2 به بعد). DPKG_ADMINDIR در صورت تنظیم شدن و مشخص نشدن گزینه‌های --admindir یا --root، به عنوان دایرکتوری داده‌های dpkg استفاده خواهد شد. DPKG_MAINTSCRIPT_PACKAGE در صورت تنظیم شدن و مشخص نشدن گزینه‌های --local و --package، برنامه dpkg-divert از آن به عنوان نام بسته استفاده خواهد کرد. DPKG_DEBUG ماسک اشکال‌زدایی را از روی یک مقدار در مبنای هشت تنظیم می‌کند (از dpkg 1.21.10 به بعد). فلگ‌های پذیرفته‌شده فعلی در توضیحات گزینه dpkg --debug آمده‌اند، اما ممکن است همه این فلگ‌ها روی این برنامه تأثیرگذار نباشند. DPKG_COLORS حالت رنگی را تنظیم می‌کند (از dpkg 1.18.5 به بعد). مقادیر پذیرفته‌شده فعلی عبارتند از: auto (پیش‌فرض)، always و never. DPKG_NLS در صورت تنظیم، برای تصمیم‌گیری در مورد فعال‌سازی پشتیبانی از زبان بومی (Native Language Support) که با عنوان بین‌المللی‌سازی (یا i18n) نیز شناخته می‌شود به کار می‌رود (از dpkg 1.22.7 به بعد). مقادیر پذیرفته‌شده عبارتند از: 0 و 1 (پیش‌فرض). فایل‌ها (FILES) /var/lib/dpkg/diversions فایلی که حاوی فهرست کنونی تغییر مسیرهای سیستم است. این فایل در دایرکتوری مدیریتی dpkg، همراه با دیگر فایل‌های مهم برای dpkg نظیر status یا available قرار دارد. نکته: dpkg-divert پیش از جایگزینی این فایل با نسخه جدید، نسخه پیشین را با پسوند -old نگه‌داری می‌کند. نکات (NOTES) هنگام افزودن، حالت پیش‌فرض --local و --divert original.distrib است. هنگام حذف، در صورت مشخص شدن --package یا --local و --divert، مقادیر آن‌ها باید مطابقت داشته باشند. دایرکتوری‌ها نمی‌توانند توسط dpkg-divert تغییر مسیر داده شوند. هنگام تغییر مسیر کتابخانه‌های مشترک (shared libraries) باید دقت شود؛ چرا که ldconfig(8) پیوند نمادین را بر اساس فیلد DT_SONAME تعبیه‌شده در کتابخانه ایجاد می‌کند. از آنجا که ldconfig به تغییر مسیرها اهمیتی نمی‌دهد (فقط dpkg از آن‌ها تبعیت می‌کند)، اگر یک کتابخانه تغییرمسیریافته دارای همان SONAME کتابخانه تغییرمسیرنیافته باشد، ممکن است در نهایت پیوند نمادین به کتابخانه تغییرمسیریافته اشاره کند. مثال‌ها (EXAMPLES) برای تغییر مسیر تمام نسخه‌های /usr/bin/example به /usr/bin/example.foo، یعنی هدایت تمام بسته‌های ارائه‌دهنده /usr/bin/example به نصب آن به عنوان /usr/bin/example.foo، با تغییر نام در صورت نیاز: dpkg-divert --divert /usr/bin/example.foo --rename /usr/bin/example برای حذف آن تغییر مسیر: dpkg-divert --rename --remove /usr/bin/example برای تغییر مسیر هر بسته‌ای که قصد نصب /usr/bin/example را دارد به /usr/bin/example.foo، به جز بسته اختصاصی خودتان به نام wibble: dpkg-divert --package wibble --divert /usr/bin/example.foo \ --rename /usr/bin/example برای حذف آن تغییر مسیر: dpkg-divert --package wibble --rename --remove /usr/bin/example همچنین ببینید (SEE ALSO) dpkg(1). 1.23.7-dirty 2026-03-06 dpkg-divert(1)