| 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)
| 2026-03-06 | 1.23.7-dirty |