dpkg-split(1) dpkg suite dpkg-split(1)

dpkg-split - ابزار تقسیم و اتصال آرشیو بسته‌های دبیان

dpkg-split [گزینه...] دستور

دستور dpkg-split فایل‌های بسته باینری دبیان را به بخش‌های کوچکتری تقسیم کرده و آنها را مجدداً به هم متصل (سرهم) می‌کند تا از ذخیره‌سازی فایل‌های بسته حجیم بر روی رسانه‌های کوچک مانند فلاپی‌دیسک‌ها پشتیبانی کند.

این ابزار می‌تواند به‌صورت دستی با استفاده از گزینه‌های --split، --join و --info به‌کار گرفته شود.

همچنین دارای یک حالت خودکار است که با استفاده از گزینه --auto فراخوانی می‌شود؛ در این حالت صفی از بخش‌های دیده‌شده ولی هنوز سرهم‌نشده را نگهداری کرده و هنگامی که تمام بخش‌های یک فایل بسته را مشاهده کرد، آن را بازسازی می‌کند. گزینه‌های --listq و --discard امکان مدیریت این صف را فراهم می‌کنند.

تمامی عملیات تقسیم، اتصال و صف‌بندی، پیام‌های اطلاع‌رسانی روی خروجی استاندارد تولید می‌کنند؛ این پیام‌ها را می‌توان با خیال راحت نادیده گرفت.

یک بسته باینری منفرد دبیان را به چندین بخش تقسیم می‌کند.

نام‌گذاری بخش‌ها به‌صورت prefix.NofM.deb خواهد بود که در آن N شماره بخش (با شروع از ۱) و M تعداد کل بخش‌ها است (هر دو در مبنای ده).

اگر هیچ prefix (پیشوندی) ارائه نشود، نام فایل complete-archive (آرشیو کامل)، از جمله مسیر دایرکتوری آن، با حذف پسوند انتهایی .deb در نظر گرفته می‌شود.

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

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

البته تمام بخش‌ها باید با اندازه بخش یکسانی که در زمان تقسیم مشخص شده بود ایجاد شده باشند، به این معنی که معمولاً باید توسط یک بار اجرای یکسان dpkg-split --split تولید شده باشند.

نام فایل بخش‌ها برای فرآیند بازسازی و سرهم‌بندی اهمیتی ندارد.

به‌طور پیش‌فرض، نام فایل خروجی به‌صورت package_version_arch.deb خواهد بود.

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

بخش part مشخص‌شده بررسی شده و با سایر بخش‌های همان بسته (در صورت وجود) در صف بخش‌های فایل بسته‌ها مقایسه می‌شود.

اگر تمام بخش‌های فایل بسته‌ای که part بخشی از آن است موجود باشند، بسته سرهم شده و در complete-output نوشته می‌شود (که معمولاً نباید از قبل وجود داشته باشد، هرچند وجود آن خطا محسوب نمی‌شود).

در غیر این صورت، part در صف کپی شده و complete-output ایجاد نمی‌شود.

اگر part یک بخش از بسته باینری تقسیم‌شده نباشد، dpkg-split با وضعیت خروج 1 خارج می‌شود؛ اگر مشکل دیگری رخ دهد، با وضعیت 2 خارج خواهد شد.

هنگام استفاده از --auto باید گزینه --output یا -o ارائه شود. (اگر این امر اجباری نبود، برنامه فراخواننده نمی‌دانست چه فایل خروجی را انتظار داشته باشد.)

محتویات صف بسته‌های در انتظار بازسازی را فهرست می‌کند.

برای هر فایل بسته‌ای که بخش‌هایی از آن در صف قرار دارند، خروجی نام بسته، بخش‌های موجود در صف و تعداد کل بایت‌های ذخیره‌شده در صف را نشان می‌دهد.

بخش‌هایی را که در صف منتظر بخش‌های باقیمانده بسته‌های خود هستند دور می‌ریزد (حذف می‌کند).

اگر هیچ package (بسته‌ای) مشخص نشود، صف به‌طور کامل پاک می‌شود؛ اگر بسته‌ای مشخص شود، فقط بخش‌های بسته(های) مربوطه حذف می‌شوند.

-?, --help
پیام راهنمای نحوه استفاده را نمایش داده و خارج می‌شود.
نسخه برنامه را نمایش داده و خارج می‌شود.

یک دایرکتوری جایگزین برای صف بخش‌های در انتظار بازسازی خودکار مشخص می‌کند. مقدار پیش‌فرض /var/lib/dpkg/parts است.
دایرکتوری مدیریتی را روی directory تنظیم می‌کند (از dpkg 1.21.10). این مکان جایی است که فایل statoverride ذخیره می‌شود. در صورتی که DPKG_ADMINDIR تنظیم نشده باشد، مقدار پیش‌فرض «/var/lib/dpkg» خواهد بود.
دایرکتوری ریشه را روی directory تنظیم می‌کند (از dpkg 1.21.10)، که در صورت تنظیم نشدن DPKG_ROOT، دایرکتوری نصب را روی «directory» و دایرکتوری مدیریتی را روی «directory/var/lib/dpkg» تنظیم می‌کند.
حداکثر اندازه هر بخش را هنگام تقسیم، بر حسب کیبی‌بایت (۱۰۲۴ بایت) مشخص می‌کند. مقدار پیش‌فرض 450 KiB است.
نام فایل خروجی را برای بازسازی مشخص می‌کند.

این گزینه مقدار پیش‌فرض را برای بازسازی دستی (--join) بازنویسی کرده و برای صف‌بندی یا بازسازی خودکار (--auto) اجباری است.

هنگام انجام صف‌بندی یا بازسازی خودکار، dpkg-split معمولاً در صورتی که فایلی به آن داده شود که بخشی از یک بسته باینری نباشد، پیامی را چاپ می‌کند. این گزینه این پیام را بی‌صدا (سرکوب) می‌کند تا برنامه‌هایی مانند dpkg بتوانند بدون تولید پیام‌های اضافی و ناخواسته، با هر دو نوع بسته‌های تقسیم‌شده و تقسیم‌نشده کار کنند.
گزینه منسوخ‌شده و بدون اثر (از dpkg 1.23.0).

0
تقسیم، ادغام یا دستور درخواستی دیگر با موفقیت انجام شد. دستورهای --info حتی اگر فایل‌ها بخش‌های بسته باینری نباشند نیز موفقیت‌آمیز محسوب می‌شوند.
1
فقط با --auto رخ می‌دهد و نشان می‌دهد که فایل part بخشی از یک بسته باینری نبوده است.
2
خطای مهلک یا غیرقابل برگشت به دلیل استفاده نادرست از خط فرمان، فایلی که شبیه به فایل بخش بسته بود اما خراب شده بود، یا تداخل در تعامل با سیستم، مانند دسترسی به پایگاه‌داده، تخصیص حافظه و غیره.

اگر تنظیم شده باشد و گزینه --root مشخص نشده باشد، به‌عنوان دایرکتوری ریشه سیستم فایل استفاده خواهد شد (از dpkg 1.21.10).
اگر تنظیم شده باشد و گزینه‌های --admindir یا --root مشخص نشده باشند، به‌عنوان دایرکتوری داده‌های dpkg استفاده خواهد شد (از dpkg 1.21.10).
ماسک اشکال‌زدایی را از یک مقدار هشت‌هشتی (octal) تنظیم می‌کند (از dpkg 1.21.10). فلگ‌های پذیرفته‌شده کنونی در گزینه dpkg --debug شرح داده شده‌اند، اما ممکن است همه این فلگ‌ها روی این برنامه تأثیری نداشته باشند.
حالت رنگی را تنظیم می‌کند (از dpkg 1.18.5). مقادیر پذیرفته‌شده کنونی عبارتند از: auto (پیش‌فرض)، always و never.
اگر تنظیم شده باشد، برای تصمیم‌گیری در مورد فعال‌سازی پشتیبانی از زبان بومی (Native Language Support)، که به‌عنوان پشتیبانی بین‌المللی‌سازی (یا i18n) نیز شناخته می‌شود، استفاده خواهد شد (از dpkg 1.22.7). مقادیر پذیرفته‌شده عبارتند از: 0 و 1 (پیش‌فرض).
اگر تنظیم شده باشد، به‌عنوان برچسب زمان (به‌صورت ثانیه‌ها از مبدا epoch) در کانتینر ar(5) مربوط به deb-split(5) استفاده خواهد شد.

از dpkg 1.18.11.

/var/lib/dpkg/parts
دایرکتوری پیش‌فرض صف برای فایل‌های بخش در انتظار بازسازی خودکار.

نام‌فایل‌های استفاده‌شده در این دایرکتوری در قالبی هستند که برای dpkg-split داخلی است و بعید است برای سایر برنامه‌ها مفید باشد، و در هر صورت نباید به قالب نام‌فایل‌ها اتکا کرد.

بررسی یا اتصال آرشیو بسته‌های تقسیم‌شده غیرقابل اعتماد باید یک مرز امنیتی در نظر گرفته شود، و هرگونه شکستن این مرز ناشی از این عملیات باید یک آسیب‌پذیری امنیتی تلقی شود. انجام این عملیات روی داده‌های غیرقابل اعتماد با کاربر ریشه (root) اکیداً منع می‌شود.

انباشت خودکار و دور ریختن بخش‌های بسته تقسیم‌شده عملیات ممتاز (دارای سطح دسترسی بالا) در نظر گرفته می‌شوند که ممکن است امکان ارتقای دسترسی به ریشه را فراهم کنند. این عملیات هرگز نباید به یک کاربر غیرقابل اعتماد واگذار شود یا روی بسته‌های غیرقابل اعتماد انجام گیرد، زیرا ممکن است امکان دسترسی ریشه به سیستم را بدهد.

تقسیم آرشیو بسته‌ها باید فقط روی داده‌های قابل اعتماد انجام شود.

دریافت جزئیات کامل بسته‌های موجود در صف، بدون کاوش مستقیم در دایرکتوری صف غیرممکن است.

هیچ روش آسانی برای آزمایش این که آیا فایلی که ممکن است بخشی از یک بسته باینری باشد واقعاً چنین است یا خیر، وجود ندارد.

deb(5), deb-control(5), dpkg-deb(1), dpkg(1).

2026-03-06 1.23.7-dirty