apt.conf - فایل
پیکربندی
برای بسته
نرمافزاری
APT
فایل /etc/apt/apt.conf
فایل
پیکربندی
اصلی مشترک
میان تمامی
ابزارهای
مجموعه APT
است، هرچند
بههیچوجه
تنها مکانی
نیست که
گزینهها
میتوانند
در آن تنظیم
شوند. این
مجموعه
همچنین از
یک
تجزیهکننده
مشترک خط
فرمان برای
فراهم
ساختن
محیطی
یکپارچه
بهره
میبرد.
هنگامی که
ابزاری از
مجموعه APT
شروع به کار
میکند،
فایلهای
پیکربندی
را به ترتیب
زیر
میخواند:
1.فایلی
که توسط
متغیر
محیطی APT_CONFIG
مشخص شده
است (در صورت
وجود)
2.تمام
فایلهای
موجود در
Dir::Etc::Parts به
ترتیب
صعودی
الفبایی-عددی
که بدون
پسوند نام
فایل هستند
یا پسوند
آنها "conf"
است و فقط
شامل
نویسههای
الفبایی-عددی،
خط تیره (-)،
زیرخط (_) و
نقطه (.)
میباشند.
در غیر این
صورت، APT
اعلانی
مبنی بر
نادیده
گرفته شدن
فایل چاپ
خواهد کرد،
مگر اینکه
آن فایل با
الگویی در
فهرست
پیکربندی
Dir::Ignore-Files-Silently
مطابقت
داشته باشد -
که در این
صورت بی سر و
صدا نادیده
گرفته
خواهد شد.
3.فایل
پیکربندی
اصلی که
توسط Dir::Etc::main
مشخص شده
است
4.تمام
گزینههای
تنظیمشده
در زیردرخت
پیکربندی
مختص به
باینری، به
ریشه درخت
منتقل
میشوند.
5.گزینههای
خط فرمان
اعمال
میشوند تا
دستورالعملهای
پیکربندی
را
بازنویسی
کنند یا
فایلهای
پیکربندی
بیشتری را
بارگذاری
نمایند.
فایل
پیکربندی
به صورت یک
درخت
سازماندهی
شده است که
در آن
گزینهها
در
گروههای
کاربردی
دستهبندی
شدهاند.
مشخص کردن
گزینهها
با
نمادگذاری
دو نقطه
مضاعف (::)
انجام
میشود؛ به
عنوان مثال
APT::Get::Assume-Yes
گزینهای
درون گروه
ابزار APT و
برای ابزار
Get است.
گزینهها
از
گروههای
والد خود
ارثبری
نمیکنند.
از نظر
نحوی، زبان
پیکربندی
از الگوی
مورد
استفاده در
ابزارهای ISC
نظیر bind و dhcp
پیروی
میکند.
خطوطی که با
// شروع
میشوند به
عنوان
کامنت
(نادیده
گرفته شده)
تلقی
میگردند،
و همچنین
تمام متون
میان /* و */،
درست
همانند
کامنتهای
C/C++ محسوب
میشوند.
خطوطی که با #
شروع
میشوند
نیز کامنت
به حساب
میآیند. هر
خط به شکل
APT::Get::Assume-Yes "true";.
علامتهای
نقل قول و
نقطه
ویرگول
پایانی
الزامی
هستند.
مقدار باید
در یک خط
باشد و
هیچگونه
الحاق
رشتهای
وجود ندارد.
مقادیر
نباید شامل
بکاسلش یا
علامتهای
نقلقول
اضافه
باشند. نام
گزینهها
از
نویسههای
الفبایی-عددی
و
نویسههای
"/-:._+" ساخته
میشود. یک
دامنه (scope)
جدید
میتواند
با استفاده
از آکولاد
باز شود،
مانند این:
APT {
Get {
Assume-Yes "true";
Fix-Broken "true";
};
};
که خطوط
جدید برای
خواناتر
شدن آن قرار
داده
شدهاند.
فهرستها
را میتوان
با باز کردن
یک دامنه و
گنجاندن یک
رشته منفرد
درون
نقلقول به
همراه یک
نقطه
ویرگول
ایجاد کرد.
چندین
ورودی
میتوانند
با تفکیک
توسط نقطه
ویرگول در
آن گنجانده
شوند.
DPkg::Pre-Install-Pkgs {"/usr/sbin/dpkg-preconfigure --apt";};
به طور کلی
فایل
پیکربندی
نمونه
/usr/share/doc/apt/examples/configure-index
راهنمای
خوبی برای
چگونگی
ساختار
ظاهری آن
است.
بزرگی و
کوچکی حروف
در نامهای
موارد
پیکربندی
اهمیتی
ندارد،
بنابراین
در مثال
قبلی
میتوانستید
از dpkg::pre-install-pkgs
استفاده
کنید.
اگر
فهرستی
تعریف شود،
نامگذاری
برای موارد
پیکربندی
اختیاری
است،
همانطور
که در مثال
DPkg::Pre-Install-Pkgs در
بالا دیده
میشود. اگر
نامی مشخص
نکنید، یک
ورودی جدید
صرفاً یک
گزینه جدید
به فهرست
اضافه
میکند. اگر
نامی را
مشخص کنید،
میتوانید
همانند هر
گزینه
دیگری با
بازتعریف
یک مقدار
جدید برای
آن گزینه،
مقدار قبلی
را
بازنویسی
کنید.
دو دستور
ویژه تعریف
شدهاند: #include
(که منسوخ
شده است و
توسط
پیادهسازیهای
جایگزین
پشتیبانی
نمیشود) و
#clear. دستور #include
فایل
ارائهشده
را درج
میکند،
مگر اینکه
نام فایل به
یک اسلش ختم
شود که در
این حالت کل
دایرکتوری
درج میشود.
#clear برای پاک
کردن بخشی
از درخت
پیکربندی
استفاده
میشود.
عنصر
مشخصشده و
تمام
زیرمجموعههای
آن پاک
میشوند.
(توجه داشته
باشید که
این خطوط
نیز باید به
یک نقطه
ویرگول ختم
شوند.)
دستور #clear
تنها راه
برای حذف یک
فهرست یا یک
دامنه کامل
است. باز
کردن مجدد
یک دامنه (یا
استفاده از
نحو شرح
داده شده در
زیر با
الحاق ::)
ورودیهای
نوشتهشده
قبلی را
بازنویسی
نخواهد
کرد.
گزینهها
را فقط
میتوان با
انتساب
مقدار جدید
به آنها
بازنویسی
کرد -
فهرستها و
دامنهها
قابل
بازنویسی
نیستند،
بلکه فقط
میتوان
آنها را
پاک کرد.
تمامی
ابزارهای APT
گزینه -o را
میپذیرند
که اجازه
میدهد یک
دستورالعمل
پیکربندی
دلخواه در
خط فرمان
مشخص شود.
نحو آن شامل
نام کامل یک
گزینه (به
عنوان مثال
APT::Get::Assume-Yes) است که
به دنبال آن
یک علامت
مساوی و سپس
مقدار جدید
گزینه
میآید.
برای اضافه
کردن یک
عنصر جدید
به یک
فهرست، یک ::
پایانی به
انتهای نام
فهرست
اضافه کنید.
(همانطور
که
احتمالاً
حدس
میزنید،
نحو دامنه
را
نمیتوان
در خط فرمان
به کار برد.)
توجه
داشته
باشید که
افزودن
موارد به یک
فهرست با
استفاده از ::
تنها برای
یک مورد در
هر خط کار
میکند، و
نباید از آن
در ترکیب با
نحو دامنه
(که :: را به
صورت ضمنی
اضافه
میکند)
استفاده
کنید.
استفاده
همزمان از
هر دو نحو،
خطایی را
فعال
میکند که
متأسفانه
برخی
کاربران به
آن وابسته
شدهاند:
گزینهای
با نام
غیرمعمول
"::" که مانند
هر گزینه
نامدار
دیگری عمل
میکند. این
امر مشکلات
بسیاری به
همراه
دارد؛ به
عنوان
مثال،
کاربرانی
که چندین خط
را با این
نحو
اشتباه به
امید اضافه
کردن به یک
فهرست
مینویسند
به نتیجه
برعکس
میرسند،
زیرا تنها
آخرین
مقداردهی
برای این
گزینه "::"
استفاده
خواهد شد.
نسخههای
آینده APT در
صورت
مواجهه با
این
سوءاستفاده،
خطا صادر
کرده و از
کار خواهند
افتاد،
بنابراین
لطفاً
اکنون که APT
صراحتاً در
مورد آنها
اخطار
نمیدهد،
این عبارات
را اصلاح
کنید.
این گروه
از
گزینهها
رفتار
عمومی APT را
کنترل کرده
و همچنین
شامل
گزینههای
مربوط به
تمام
ابزارهای
آن است.
Architecture
معماری
سیستم؛
معماری
مورد
استفاده
هنگام
دریافت
فایلها و
تجزیه
فهرست
بستهها را
تعیین
میکند.
مقدار
پیشفرض
داخلی،
همان
معماریای
است که apt برای
آن کامپایل
شده است.
Architectures
تمام
معماریهایی
که سیستم
پشتیبانی
میکند.
برای
نمونه،
پردازندههایی
که مجموعه
دستورالعملهای
amd64 (که x86-64 نیز
نامیده
میشود) را
پیادهسازی
کردهاند،
قادر به
اجرای
باینریهای
کامپایلشده
برای
مجموعه
دستورالعملهای
i386 (یا x86) نیز
هستند. این
فهرست
هنگام
واکشی
فایلها و
تجزیه
فهرست
بستهها به
کار میرود.
پیشفرض
اولیه
همواره
معماری
بومی سیستم
(APT::Architecture) است، و
معماریهای
خارجی
هنگامی که
از طریق dpkg
--add-architecture ثبت
شوند به این
فهرست
پیشفرض
اضافه
میگردند.
Color
این
محدوده
رنگها و
سبکها را
تعریف
میکند.
رنگهای
پایهای که
پشتیبانی
میشوند
عبارتند از
red،
green،
yellow،
blue،
magenta،
cyan و
white.
زیرمحدوده
action رنگهای
مربوط به
فهرست
بستهها را
در دستور install
و دستورات
مشابه مشخص
میکند.
گزینههای
زیر
میتوانند
تنظیم شوند:
APT::Color::Action::Upgrade،
APT::Color::Action::Install،
APT::Color::Action::Install-Dependencies،
APT::Color::Action::Downgrade،
APT::Color::Action::Remove؛ که
متناظر با
فهرستهای
مربوط به
آنها در
خروجی apt(8)
هستند.
هر رنگ
میتواند
با نام و به
صورت نسبی
به APT::Color به یک
یا چند
گزینه رنگ
دیگر ارجاع
دهد.
توالیهای
فرار (escape sequences)
آنها با
یکدیگر
ترکیب
خواهند شد.
APT::Color::Bold "\x1B[1m";
APT::Color::Action::Install "cyan";
APT::Color::Action::Upgrade "bold action::install";
رنگها را
میتوان با
تنظیم
APT::Color
روی
yes یا
no،
با
بهرهگیری
از
متغیرهای
محیطی
NO_COLOR یا
APT_NO_COLOR، یا با
استفاده از
گزینههای
خط فرمان
--color
و
--no-color بهطور
کامل فعال
یا غیرفعال
کرد.
Compressor
این
محدوده
مشخص
میکند که
چه
قالبهای
فشردهسازی
پشتیبانی
میشوند،
در صورتی که
پشتیبانی
از این قالب
مستقیماً
در apt تعبیه
نشده باشد
فشردهسازی
و استخراج
چگونه
انجام
میگیرد، و
یک مقدار
هزینه (cost) که
نشان
میدهد
فشردهسازی
در این قالب
چقدر هزینه
دارد. به
عنوان
مثال، قطعه
پیکربندی
زیر به apt
اجازه
میدهد تا
فایلهایی
با پسوند
کمهزینه
.reversed را
بارگیری و
استخراج
کند و
همچنین
بسازد و
ذخیره
نماید، که
آن را بدون
پارامترهای
خط فرمان
اضافی برای
فشردهسازی
و خارج کردن
از فشردگی
به دستور
rev
ارسال
خواهد کرد:
APT::Compressor::rev {
Name "rev";
Extension ".reversed";
Binary "rev";
CompressArg {};
UncompressArg {};
Cost "10";
};
Build-Profiles
فهرست
تمام نمایه
(پروفایل)های
ساخت
فعالشده
برای حل
وابستگیهای
ساخت، بدون
پیشوند
فضای نام
"profile.". این
فهرست به
طور
پیشفرض
خالی است.
متغیر
DEB_BUILD_PROFILES
همانطور
که توسط
dpkg-buildpackage(1)
استفاده
میشود، بر
این شیوه
نشانهگذاری
فهرست
ارجحیت
دارد.
Default-Release
انتشار
پیشفرض
برای نصب
بستهها در
صورتی که
بیش از یک
نسخه در
دسترس باشد.
شامل نام
انتشار،
نام رمزی (codename)
یا نسخه
انتشار است.
مثالها: 'stable'،
'testing'، 'unstable'، 'trixie'، 'forky'،
'
4.0'، '
5.0*'. همچنین
ببینید
apt_preferences(5).
Snapshot
تصویر
وضعیت (Snapshot)
مورد
استفاده
برای تمامی
مخازنی که
با
Snapshot: yes
پیکربندی
شدهاند.
همچنین
ببینید
sources.list(5)، گزینه
--snapshot که این
مقدار را
تنظیم
میکند، و
Acquire::Snapshots::URI در
زیر.
Ignore-Hold
نادیده
گرفتن
بستههای
نگهداشتهشده؛
این گزینه
سراسری
باعث
میشود که
حلکننده
مشکل (problem resolver)
بستههای
نگهداشتهشده
را در
تصمیمگیریهای
خود نادیده
بگیرد.
Clean-Installed
به طور
پیشفرض
فعال (on) است.
هنگام فعال
بودن،
ویژگی autoclean هر
بستهای را
که دیگر
نمیتوان
بارگیری
کرد از
حافظه
پنهان حذف
میکند. در
صورت
غیرفعال
بودن،
بستههایی
که به صورت
محلی نصب
شدهاند
نیز از
پاکسازی
مستثنی
میشوند -
اما توجه
داشته
باشید که APT
هیچ روش
مستقیمی
برای نصب
مجدد آنها
ارائه
نمیدهد.
Immediate-Configure
به طور
پیشفرض
فعال (on) است،
که باعث
میشود APT
بستههای
حیاتی و مهم
را در طی
عملیات
نصب/ارتقا
در
سریعترین
زمان ممکن
نصب کند تا
اثر شکست
احتمالی در
فراخوانی
dpkg(1) محدود
شود. اگر این
گزینه
غیرفعال
شود، APT با یک
بسته مهم
همانند یک
بسته اضافی
(extra) رفتار
میکند: بین
باز کردن
بسته A و
پیکربندی
آن ممکن است
فراخوانیهای
متعدد
دیگری برای
باز کردن یا
پیکربندی
بستههای
نامرتبط
دیگر مانند B
و C و غیره رخ
دهد. اگر این
موارد منجر
به شکست
فراخوانی
dpkg(1) شوند
(برای
نمونه، به
دلیل این که
اسکریپتهای
نگهدارنده
بسته B خطایی
ایجاد
کنند)،
سیستم به
وضعیتی
دچار
میشود که
در آن بسته A
باز شده اما
پیکربندی
نشده است -
بنابراین
عملکرد هیچ
بستهای که
به A وابسته
باشد دیگر
تضمین
نمیشود،
چرا که
وابستگی آن
به A برآورده
نشده است.
نشانگر
پیکربندی
فوری در
موارد
بالقوه
مشکلساز
وابستگیهای
چرخهای (circular
dependencies) نیز
اعمال
میشود،
زیرا
وابستگی با
فلگ فوری
معادل یک
پیشوابستگی
(Pre-Dependency) است. در
تئوری، این
امر به APT
امکان
میدهد
وضعیتی را
تشخیص دهد
که در آن
قادر به
انجام
پیکربندی
فوری نیست،
عملیات را
متوقف کند و
به کاربر
پیشنهاد
دهد که این
گزینه به
طور موقت
غیرفعال
شود تا
عملیات
بتواند
ادامه یابد.
به استفاده
از واژه «در
تئوری» در
اینجا دقت
کنید؛ در
دنیای
واقعی، این
مشکل به
ندرت، آن هم
در
نسخههای
توزیع
غیرپایدار
رخ داده است
و ناشی از
وابستگیهای
اشتباه
بسته
مربوطه یا
سیستمی در
وضعیت از
قبل خراب
بوده است؛
بنابراین
نباید
کورکورانه
این گزینه
را غیرفعال
کنید، زیرا
سناریوی
ذکر شده در
بالا تنها
مشکلی نیست
که این
گزینه
میتواند
در وهله اول
از وقوع آن
جلوگیری
کند.
پیش از
اجرای یک
عملیات
بزرگ مانند
dist-upgrade در حالی
که این
گزینه
غیرفعال
است، باید
سعی کنید
بستهای را
که APT قادر به
پیکربندی
فوری آن
نیست
صریحاً install
کنید؛ اما
لطفاً
مطمئن شوید
که مشکل خود
را به توزیع
خود و تیم APT
با پیوند
باگ زیر
گزارش دهید
تا آنها
بتوانند
روی بهبود
یا اصلاح
فرآیند
ارتقا کار
کنند.
Force-LoopBreak
هرگز این
گزینه را
فعال نکنید
مگر اینکه
واقعاً
بدانید چه
کاری انجام
میدهید.
این گزینه
به APT اجازه
میدهد تا
یک بسته
حیاتی را
موقتاً حذف
کند تا حلقه
Conflicts/Conflicts یا Conflicts/Pre-Depends
میان دو
بسته حیاتی
شکسته شود.
چنین
حلقهای
هرگز نباید
وجود داشته
باشد و یک
باگ وخیم
است. این
گزینه
زمانی عمل
خواهد کرد
که
بستههای
حیاتی شامل
tar، gzip، libc، dpkg،
dash یا هر چیزی
که آن
بستهها به
آن وابسته
هستند
نباشند.
Cache-Start, Cache-Grow, Cache-Limit
برنامه APT
از نسخه 0.7.26 از
یک فایل
حافظه
پنهان
نگاشتهشده
در حافظه (memory mapped
cache) با اندازه
متغیر برای
ذخیره
اطلاعات
موجود
استفاده
میکند.
گزینه Cache-Start به
عنوان
نشانهای
از
اندازهای
که حافظه
پنهان به آن
رشد خواهد
کرد عمل
میکند و
بنابراین
مقدار
حافظهای
است که APT در
زمان
راهاندازی
درخواست
خواهد کرد.
مقدار
پیشفرض آن
20971520 بایت (~20
مگابایت)
است. توجه
داشته
باشید که
این میزان
فضا باید
برای APT در
دسترس
باشد؛ در
غیر این
صورت
احتمالاً
بدون پیامی
مناسب با
خطا متوقف
میشود،
بنابراین
برای
دستگاههایی
با حافظه
محدود این
مقدار باید
کاهش یابد
در حالی که
در
سیستمهایی
با مخازن
پیکربندیشده
زیاد باید
افزایش
یابد. Cache-Grow بر
حسب بایت و
با پیشفرض
1048576 (~1 مگابایت)
مشخص
میکند که
در صورت
ناکافی
بودن فضای
تعیینشده
توسط Cache-Start
اندازه
حافظه
پنهان چه
مقدار
افزایش
یابد. این
مقدار
بارها و
بارها
اعمال
خواهد شد تا
زمانی که
حافظه
پنهان به
اندازه
کافی برای
ذخیره تمام
اطلاعات
بزرگ شود یا
اندازه
حافظه
پنهان به Cache-Limit
برسد. مقدار
پیشفرض Cache-Limit
برابر با 0
است که به
معنای بدون
محدودیت
است. اگر Cache-Grow
روی 0 تنظیم
شود، رشد
خودکار
حافظه
پنهان
غیرفعال
میگردد.
Build-Essential
مشخص
میکند چه
بستههایی
به عنوان
وابستگیهای
ساخت حیاتی
در نظر
گرفته
میشوند.
Get
زیربخش Get
ابزار
apt-get(8) را
کنترل
میکند؛
لطفاً برای
اطلاعات
بیشتر
درباره
گزینههای
موجود در
اینجا به
مستندات آن
مراجعه
کنید.
Cache
زیربخش Cache
ابزار
apt-cache(8) را
کنترل
میکند؛
لطفاً برای
اطلاعات
بیشتر
درباره
گزینههای
موجود در
اینجا به
مستندات آن
مراجعه
کنید.
CDROM
زیربخش CDROM
ابزار
apt-cdrom(8) را
کنترل
میکند؛
لطفاً برای
اطلاعات
بیشتر
درباره
گزینههای
موجود در
اینجا به
مستندات آن
مراجعه
کنید.
NeverAutoRemove
بستههایی
که با
عبارت(های)
باقاعده
مطابقت
دارند را
هرگز به
صورت
خودکار حذف
نکنید.
Protect-Kernels
این
گزینه به apt autoremove
اعلام
میکند که
هستهها
محافظتشده
هستند و
مقدار
پیشفرض آن true
است. در
صورتی که
هستهها
محافظت
نشده
باشند،
مانند هر
بسته دیگری
با آنها
رفتار
میشود.
VersionedKernelPackages
عبارت(های)
باقاعده را
برای
بستههای
نگارشدار
هسته تعریف
میکند. بر
اساس این
عبارتها،
مجموعهای
از قوانین
مشابه
عبارتهای
باقاعده APT::NeverAutoRemove
به apt تزریق
میشود.
NeverAutoRemove::KernelCount
تعداد
سفارشی
هستهها را
هنگام حذف
خودکار نگه
میدارد و
پیشفرض آن 2
است، به این
معنی که دو
هسته نگه
داشته
میشوند.
برنامه Apt
همواره
هسته در حال
اجرا و
آخرین هسته
را نگه
خواهد داشت.
اگر آخرین
هسته همان
هسته در حال
اجرا باشد،
دومین هسته
آخر نگه
داشته
میشود. به
همین دلیل،
هر مقداری
کمتر از 2
نادیده
گرفته
خواهد شد.
اگر فقط
آخرین هسته
را
میخواهید،
باید APT::Protect-Kernels را
روی false تنظیم
کنید.
گروه
گزینههای
Acquire دانلود
بستهها و
همچنین
«روشهای
دریافت» (acquire methods)
مختلف را که
مسئول خود
فرایند
دانلود
هستند،
کنترل
میکند
(همچنین
ببینید
sources.list(5)).
Check-Date
گزینهای
امنیتی با
مقدار
پیشفرض true که
بررسیهای
مربوط به
زمان را
فعال
میکند.
غیرفعال
کردن آن به
این معنی
است که
نمیتوان
به زمان
دستگاه
اعتماد کرد
و بنابراین APT
تمام
بررسیهای
وابسته به
زمان را
غیرفعال
خواهد کرد،
از جمله Check-Valid-Until
و تأیید
اینکه فیلد Date
یک فایل Release در
آینده قرار
نداشته
باشد.
Max-FutureTime
حداکثر
زمان (به
ثانیه) پیش
از ایجاد
فایل
(همانطور
که توسط
سرآیند Date
مشخص شده
است) که طی آن
فایل Release
معتبر در
نظر گرفته
میشود.
مقدار
پیشفرض 10
است.
تنظیمات
مختص به یک
مخزن را
میتوان با
افزودن
برچسب مخزن
به انتهای
نام گزینه
اعمال کرد.
ترجیحاً،
همین کار را
میتوان
برای
ورودیهای
خاص در
sources.list(5)
با استفاده
از گزینه
Date-Max-Future در آنجا
انجام داد.
Check-Valid-Until
گزینهای
امنیتی با
مقدار
پیشفرض true؛
از آنجا که
تعیین
تاریخ
انقضا برای
اعتبارسنجی
فایل Release از
حملات
بازپخش (replay attacks)
در درازمدت
جلوگیری
میکند و
همچنین
میتواند
به عنوان
مثال به
کاربران در
شناسایی
آینههایی
که دیگر
بهروزرسانی
نمیشوند
کمک کند - اما
این قابلیت
به صحت ساعت
سیستم
کاربر
وابسته است.
نگهدارندگان
مخازن
تشویق
میشوند
فایلهای Release
را با
سرآیند Valid-Until
ایجاد
کنند، اما
اگر این کار
را انجام
ندهند یا
مقدار
سختگیرانهتری
مورد نیاز
باشد،
میتوان از
گزینه
Max-ValidTime در
زیر
استفاده
کرد. گزینه
Check-Valid-Until در
ورودیهای
sources.list(5) باید
برای
غیرفعال
کردن
گزینشی این
بررسی، به
جای
استفاده از
این
بازنویسی
سراسری،
ترجیح داده
شود.
Max-ValidTime
حداکثر
زمان (به
ثانیه) پس از
ایجاد فایل
(همانطور
که توسط
سرآیند Date
مشخص شده
است) که طی آن
فایل Release
معتبر در
نظر گرفته
میشود. اگر
خود فایل Release
شامل
سرآیند Valid-Until
باشد،
تاریخ
زودتر میان
این دو به
عنوان
تاریخ
انقضا
استفاده
میشود.
مقدار
پیشفرض 0
است که به
معنای
«اعتبار
همیشگی»
است.
تنظیمات
مختص به یک
مخزن را
میتوان با
افزودن
برچسب مخزن
به انتهای
نام گزینه
اعمال کرد.
ترجیحاً،
همین کار را
میتوان
برای
ورودیهای
خاص در
sources.list(5)
با استفاده
از گزینه
Valid-Until-Max در آنجا
انجام داد.
Min-ValidTime
حداقل
زمان (به
ثانیه) پس از
ایجاد فایل
(همانطور
که توسط
سرآیند Date
مشخص شده
است) که طی آن
فایل Release
معتبر در
نظر گرفته
میشود. اگر
نیاز به
استفاده از
یک آینه
(محلی) دارید
که به ندرت
بهروزرسانی
میشود و
مخزن اصلی
متناظر آن
دارای
سرآیند Valid-Until
بوده و با
دفعات
بیشتری
بهروز
میگردد،
به جای
غیرفعال
کردن کامل
بررسی
تاریخ
انقضا، از
این گزینه
استفاده
کنید.
تنظیمات
مختص به یک
مخزن را
میتوان و
باید با
افزودن
برچسب مخزن
به انتهای
نام گزینه
اعمال کرد.
ترجیحاً،
همین کار را
میتوان
برای
ورودیهای
خاص در
sources.list(5)
با استفاده
از گزینه
Valid-Until-Min در آنجا
انجام داد.
AllowTLS
اجازه
استفاده از
پشتیبانی
داخلی TLS در
روش http. اگر
روی false تنظیم
شود، این
کار
پشتیبانی
از TLS را در
روشهای
اختصاصی apt (به
استثنای
روش https مبتنی
بر curl) به طور
کامل
غیرفعال
میکند. هیچ
تابع مرتبط
با TLS دیگری
فراخوانی
نخواهد شد.
PDiffs
تلاش
برای
دانلود
تفاوتها
موسوم به PDiffs
برای
نمایهها
(مانند
فایلهای Packages )
به جای
دانلود
کامل آنها.
مقدار
پیشفرض true
است.
ترجیحاً،
این تنظیم
میتواند
برای
ورودیهای
خاص در
sources.list(5)
یا
فایلهای
نمایه با
استفاده از
گزینه
PDiffs در
آنجا انجام
شود.
دو
زیرگزینه
برای محدود
کردن
استفاده از
PDiffs نیز در
دسترس است:
FileLimit
میتواند
برای مشخص
کردن
حداکثر
تعداد
فایلهای PDiff
که باید
برای
بهروزرسانی
یک فایل
دانلود
شوند،
استفاده
شود. از سوی
دیگر SizeLimit
حداکثر
درصد حجم
تمام
وصلهها در
مقایسه با
حجم فایل
مقصد است.
اگر یکی از
این
محدودیتها
فراتر رود،
فایل کامل
به جای
وصلهها
دانلود
خواهد شد.
By-Hash
تلاش
برای
دانلود
نمایهها
از طریق یک URI
ساختهشده
از
حاصلجمع
درهمسازی
(hashsum) فایل مورد
انتظار، به
جای دانلود
از طریق یک
نام فایل
پایدار و
شناختهشده.
مقدار
پیشفرض true
است، اما
اگر منبع
نشان دهد که
از آن
پشتیبانی
نمیکند،
به صورت
خودکار
غیرفعال
میشود.
استفاده از
آن را
میتوان با
مقدار ویژه
"force" اجباری
کرد.
ترجیحاً،
این تنظیم
میتواند
برای
ورودیهای
خاص در
sources.list(5)
یا
فایلهای
نمایه با
استفاده از
گزینه
By-Hash در
آنجا انجام
شود.
Queue-Mode
حالت
صفبندی؛
Queue-Mode
میتواند
یکی از
مقادیر host یا access
باشد که
نحوه
موازیسازی
اتصالات
خروجی توسط APT
را تعیین
میکند.
مقدار host به
این معناست
که برای هر
میزبان
مقصد یک
اتصال باز
خواهد شد، و
access به این
معناست که
برای هر نوع URI
یک اتصال
باز
میشود.
Mirror
گزینههای
موجود در
این دامنه
رفتار URIهایی
را که از روش
mirror استفاده
میکنند
پیکربندی
مینمایند؛
روشی که هر
درخواست را
به یک آینه
انتخابشده
از یک فهرست
هدایت
میکند.
گزینه
Mirror::Fanout
تعداد
آینههای
مورد
استفاده به
صورت موازی
را کنترل
میکند: sqrt
(پیشفرض) در
صورت در
دسترس بودن
به تعداد
کافی،
حداقل از سه
آینه
استفاده
میکند و
تعداد
آنها را بر
اساس جذر
تعداد
فایلهای
دریافتشده
تا کنون
افزایش
میدهد، و
هر فایل را
به آینهای
که در حال
حاضر کمتر
از همه
استفاده
شده اختصاص
میدهد، در
حالی که none
برای هر
فایل به طور
مستقل یک
آینه
تصادفی
انتخاب
میکند.
Mirror::Fanout-Limit
یک حد بالا
برای تعداد
آینههای
فعال تعیین
میکند؛
پیشفرض 0 به
معنای
نامحدود
است. تنها
آینههایی
با کمترین
مقدار priority
کاندیدا
هستند؛
سایر
آینهها در
صورت بروز
خرابی به
عنوان
جایگزین
پشتیبان
امتحان
میشوند،
همانطور
که در
apt-transport-mirror(1)
توضیح داده
شده است.
Retries
تعداد
تلاشهای
مجدد برای
انجام کار.
اگر این
مقدار
غیرصفر
باشد، APT
فایلهای
ناموفق را
به تعداد
دفعات
مشخصشده
مجدداً
امتحان
خواهد کرد.
Source-Symlinks
استفاده
از
پیوندهای
نمادین
برای
آرشیوهای
مبدأ. اگر
روی true تنظیم
شود، در
صورت امکان
برای
آرشیوهای
مبدأ به جای
نسخهبرداری
از پیوند
نمادین
استفاده
خواهد شد.
مقدار
پیشفرض true
است.
http https
cdrom
برای
URIهایی که از
روش cdrom
استفاده
میکنند،
تنها گزینه
قابلپیکربندی
نقطه اتصال
(mount point) است:
cdrom::Mount،
که باید
نقطه اتصال
برای درایو
CD-ROM (یا DVD یا
موارد دیگر)
مطابق آنچه
در /etc/fstab مشخص
شده باشد. در
صورتی که
نقطه اتصال
شما
نمیتواند
در fstab فهرست
شود، ارائه
دستورات
جایگزین
سوار کردن (mount)
و پیاده
کردن (unmount)
امکانپذیر
است. نحو آن
به این صورت
است که
عبارت
درون بلوک
cdrom قرار گیرد.
وجود اسلش
پایانی در
اینجا
بسیار مهم
است.
دستورات
پیاده کردن
را میتوان
با استفاده
از UMount مشخص
کرد.
gpgv
برای
URIهای GPGV تنها
گزینه
قابلپیکربندی
gpgv::Options است که
پارامترهای
اضافی را به
gpgv ارسال
میکند.
CompressionTypes
فهرستی
از انواع
فشردهسازی
که توسط
متدهای
دریافت (acquire)
پشتیبانی و
درک
میشوند.
فایلهایی
مانند
Packages
میتوانند
در
قالبهای
فشردهسازی
مختلفی در
دسترس
باشند.
بهطور
پیشفرض،
متدهای
دریافت
میتوانند
بسیاری از
قالبهای
متداول
مانند
xz و
gzip
را از حالت
فشرده خارج
کرده و
مجدداً
فشردهسازی
کنند؛ با
استفاده از
این حوزه
میتوان
قالبهای
پشتیبانیشده
را بررسی یا
دستکاری
کرد و
همچنین
امکان
پشتیبانی
از
قالبهای
بیشتری را
افزود
(همچنین
ببینید:
APT::Compressor).
ساختار
نحوی این
تنظیم به
صورت زیر
است:
Acquire::CompressionTypes::FileExtension "Methodname";
همچنین،
میتوان از
زیرگروه Order
برای تعیین
ترتیبی که
سیستم
دریافت
برای
دانلود
فایلهای
فشرده تلاش
میکند،
استفاده
کرد. سیستم
دریافت
ابتدا
نخستین نوع
فشردهسازی
را امتحان
کرده و در
صورت بروز
خطا به سراغ
نوع بعدی در
این فهرست
میرود؛
بنابراین
برای ترجیح
دادن یک نوع
بر نوعی
دیگر، کافی
است نوع
مورد نظر را
در ابتدا
اضافه کنید -
نوعهایی
که قبلاً
اضافه
نشدهاند
به صورت
ضمنی به
انتهای
فهرست
افزوده
میشوند،
بنابراین
برای
نمونه:
Acquire::CompressionTypes::Order:: "gz";
میتواند
برای ترجیح
دادن
فایلهای
فشردهشده
با gzip بر
تمام
قالبهای
فشردهسازی
دیگر به کار
رود. اگر xz
باید بر gzip و
bzip2 ترجیح
داده شود،
تنظیمات
پیکربندی
باید به شکل
زیر باشد:
Acquire::CompressionTypes::Order { "xz"; "gz"; };
نیازی به
افزودن
صریح bz2 به
این فهرست
نیست زیرا
به طور
خودکار
اضافه
خواهد شد.
توجه
داشته
باشید که
Dir::Bin::Methodname در
زمان اجرا
بررسی
خواهد شد.
اگر این
گزینه
تنظیم شده
باشد و
پشتیبانی
از این قالب
مستقیماً
درون apt
تعبیه نشده
باشد، متد
تنها در
صورتی
استفاده
خواهد شد که
این فایل
وجود داشته
باشد؛ برای
نمونه برای
متد bzip2،
تنظیمات
توکار
(پیشفرض) به
صورت زیر
است:
Dir::Bin::bzip2 "/bin/bzip2";
همچنین
توجه داشته
باشید که
ورودیهای
فهرستی که
در خط فرمان
مشخص
میشوند،
به انتهای
فهرست
مشخصشده
در
فایلهای
پیکربندی،
اما پیش از
ورودیهای
پیشفرض
اضافه
خواهند شد.
برای
اولویت
دادن به یک
نوع در این
حالت نسبت
به موارد
مشخصشده
در
فایلهای
پیکربندی،
میتوانید
گزینه را
مستقیماً -
نه به سبک
فهرست -
تنظیم کنید.
این کار
فهرست
تعریفشده
را
بازنویسی
نخواهد
کرد؛ بلکه
تنها این
نوع را در
ابتدای
فهرست قرار
میدهد.
نوع ویژه
uncompressed
میتواند
برای
اولویت
دادن به
فایلهای
فشردهنشده
به کار رود،
اما توجه
داشته
باشید که
بیشتر
آرشیوها
فایلهای
فشردهنشده
ارائه
نمیدهند،
بنابراین
این مورد
عمدتاً
تنها برای
آینههای
محلی
کاربرد
دارد.
GzipIndexes
هنگام
دانلود
نمایههای
فشردهشده
با gzip (مانند
Packages، Sources یا Translations)،
به جای
استخراج
آنها،
آنها را به
صورت فشرده
با gzip در
سیستم محلی
نگهداری
کن. این کار
با هزینه
مصرف
پردازنده (CPU)
بیشتر
هنگام ساخت
حافظه
پنهان محلی
بستهها،
مقدار قابل
توجهی از
فضای دیسک
را ذخیره
میکند.
مقدار
پیشفرض false
است.
Languages
زیربخش
Languages کنترل
میکند که
کدام
فایلهای
Translation دانلود
شوند و با چه
ترتیبی APT
برای نمایش
ترجمههای
توضیحات
بستهها
تلاش کند.
برنامه APT
تلاش خواهد
کرد نخستین
توضیحات در
دسترس را به
زبانی که در
ابتدای
فهرست آمده
است نمایش
دهد.
زبانها را
میتوان با
کدهای
کوتاه یا
طولانی
زبان تعریف
کرد. توجه
داشته
باشید که
تمام
آرشیوها
فایلهای
Translation را برای
همه
زبانها
ارائه
نمیدهند -
کدهای زبان
طولانی
بهویژه
بسیار نادر
هستند.
فهرست
پیشفرض
شامل "environment" و
"en" است.
مقدار "environment"
در اینجا
معنای
ویژهای
دارد: در
زمان اجرا
با کدهای
زبان
استخراجشده
از متغیر
محیطی LC_MESSAGES
جایگزین
خواهد شد.
همچنین
تضمین
میکند که
این کدها
دوبار در
فهرست درج
نشوند. اگر
LC_MESSAGES روی "C"
تنظیم شده
باشد، تنها
فایل Translation-en (در
صورت در
دسترس بودن)
استفاده
خواهد شد.
برای اجبار
APT به عدم
استفاده از
هیچ فایل
Translation، از
تنظیم Acquire::Languages=none
استفاده
کنید. مقدار
"none" کد ویژه
دیگری است
که جستجو
برای یافتن
یک فایل Translation
مناسب را
متوقف
میکند. این
به APT
میگوید که
این
ترجمهها
را نیز
دانلود
کند، بدون
اینکه
عملاً از
آنها
استفاده
نماید مگر
اینکه
متغیرهای
محیطی
زبانها را
مشخص کنند.
بنابراین،
پیکربندی
نمونه زیر
منجر به
ترتیب "en, de" در
یک محیط
محلی (locale)
انگلیسی یا
"de, en" در یک
محیط
آلمانی
خواهد شد.
توجه داشته
باشید که "fr"
دانلود
میشود،
اما
استفاده
نخواهد شد
مگر اینکه APT
در یک محیط
فرانسوی
اجرا شود (که
در آن حالت
ترتیب "fr, de, en"
خواهد بود).
Acquire::Languages { "environment"; "de"; "en"; "none"; "fr"; };
نکته: برای
جلوگیری از
بروز
مشکلات
ناشی از
اجرای APT در
محیطهای
گوناگون
(مثلاً توسط
کاربران
مختلف یا
سایر
برنامهها)،
تمام
فایلهای Translation
که در پوشه
/var/lib/apt/lists/ یافت
شوند به
انتهای
فهرست (پس از
یک "none" ضمنی)
اضافه
خواهند شد.
ForceIPv4
هنگام
دانلود،
استفاده از
پروتکل IPv4 را
اجباری
میکند.
ForceIPv6
هنگام
دانلود،
استفاده از
پروتکل IPv6 را
اجباری
میکند.
MaxReleaseFileSize
حداکثر
اندازه
مجاز
فایلهای
Release/Release.gpg/InRelease. مقدار
پیشفرض 10MB
است.
EnableSrvRecords
این
گزینه
کنترل
میکند که
آیا apt از
رکورد سرور DNS
SRV مطابق با RFC 2782
برای
انتخاب
سرور
جایگزین
جهت
برقراری
اتصال
استفاده
کند یا خیر.
مقدار
پیشفرض "true"
است.
AllowInsecureRepositories
به
عملیات
بهروزرسانی
اجازه
میدهد
فایلهای
داده را از
مخازن بدون
اطلاعات
امنیتی
کافی
بارگیری
کند. مقدار
پیشفرض "false"
است.
مفاهیم،
پیامدها و
همچنین
جایگزینها
به تفصیل در
apt-secure(8) شرح داده
شدهاند.
AllowWeakRepositories
به
عملیات
بهروزرسانی
اجازه
میدهد
فایلهای
داده را از
مخازنی که
اطلاعات
امنیتی
ارائه
میدهند
اما این
اطلاعات از
نظر
رمزنگاری
دیگر به
اندازه
کافی قوی
تلقی
نمیشوند،
بارگیری
کند. مقدار
پیشفرض "false"
است.
مفاهیم،
پیامدها و
همچنین
جایگزینها
به تفصیل در
apt-secure(8) شرح داده
شدهاند.
AllowDowngradeToInsecureRepositories
اجازه
میدهد
مخزنی که
قبلاً با gpg
امضا شده
بود، در حین
عملیات
بهروزرسانی
به یک مخزن
بدون امضا
تبدیل شود.
هنگامی که
هیچ امضای
معتبری
برای یک
مخزن که
قبلاً مورد
اعتماد
بوده است
وجود
نداشته
باشد، apt از
بهروزرسانی
خودداری
خواهد کرد.
این گزینه
میتواند
برای
نادیده
گرفتن این
محافظت
استفاده
شود.
تقریباً با
قطعیت هرگز
مایل به
فعال کردن
این گزینه
نخواهید
بود. مقدار
پیشفرض
false
است.
مفاهیم،
پیامدها و
همچنین
جایگزینها
به تفصیل در
apt-secure(8) شرح داده
شدهاند.
حوزه Changelogs::URI
دریافت
لاگ
تغییرات (changelogs)
تنها در
صورتی
امکانپذیر
است که یک
نشانی URI مشخص
باشد که
بتوان
آنها را از
آنجا
دریافت کرد.
ترجیحاً
فایل Release این
مورد را در
فیلد 'Changelogs' مشخص
میکند. اگر
این فیلد در
دسترس
نباشد، از
فیلد Label/Origin در
فایل Release
استفاده
میشود تا
بررسی شود
آیا گزینه
Acquire::Changelogs::URI::Label::LABEL یا
Acquire::Changelogs::URI::Origin::ORIGIN
وجود دارد
یا خیر و در
این صورت
این مقدار
برداشته
میشود.
مقدار
موجود در
فایل Release را
میتوان با
Acquire::Changelogs::URI::Override::Label::LABEL
یا
Acquire::Changelogs::URI::Override::Origin::ORIGIN
بازنویسی
کرد. این
مقدار باید
یک URI
استاندارد
به یک فایل
متنی باشد،
به جز اینکه
دادههای
مربوط به
بسته خاص با
عبارت
جایگزین @CHANGEPATH@
جایگزین
میشوند.
مقدار آن به
این صورت
است: ۱. اگر
بسته از یک
مؤلفه
(مثلاً main)
باشد، این
بخش نخست
است، در غیر
این صورت
حذف
میشود؛ ۲.
نخستین حرف
از نام بسته
مبدأ، مگر
در حالتی که
نام بسته
مبدأ با 'lib'
آغاز شود که
در این صورت
چهار حرف
نخست خواهد
بود؛ ۳. نام
کامل بسته
مبدأ؛ ۴.
مجدداً نام
کامل و ۵.
نگارش (نسخه)
مبدأ.
بخشهای
اول (در صورت
وجود)، دوم،
سوم و چهارم
با یک اسلش ('/')
از هم جدا
میشوند و
میان
بخشهای
چهارم و
پنجم یک
زیرخط ('_')
قرار
میگیرد.
مقدار ویژه 'no'
برای این
گزینه در
دسترس است
که نشان
میدهد
نمیتوان
از این منبع
برای
دریافت
فایلهای
گزارش
تغییرات
استفاده
کرد. در این
حالت در
صورت در
دسترس
بودن، منبع
دیگری
امتحان
خواهد شد.
حوزه Snapshots::URI
همانند
گزارشهای
تغییرات،
اسنپشاتها
نیز تنها در
صورتی قابل
دریافت
هستند که یک
نشانی URI مشخص
باشد که
بتوان
آنها را از
آنجا
دریافت کرد.
ترجیحاً
فایل Release این
مورد را در
فیلد 'Snapshots' مشخص
میکند. اگر
این فیلد در
دسترس
نباشد، از
فیلد Label/Origin در
فایل Release
استفاده
میشود تا
بررسی شود
آیا گزینه
Acquire::Snapshots::URI::Label::LABEL یا
Acquire::Snapshots::URI::Origin::ORIGIN
وجود دارد
یا خیر و در
صورت وجود،
این مقدار
برداشته
میشود.
مقدار
موجود در
فایل Release را
میتوان با
Acquire::Snapshots::URI::Override::Label::LABEL یا
Acquire::Snapshots::URI::Override::Origin::ORIGIN
بازنویسی
کرد. مقدار
باید یک URI
استاندارد
به یک پوشه
(دایرکتوری)
باشد، به جز
اینکه
شناسه
اسنپشات
با متغیر
جایگزین @SNAPSHOTID@
جایگزین
میشود.
مقدار ویژه 'no'
برای این
گزینه در
دسترس است
که نشان
میدهد
نمیتوان
از این منبع
برای
دریافت
اسنپشاتها
استفاده
کرد. در این
حالت در
صورت در
دسترس
بودن، منبع
دیگری
امتحان
خواهد شد.
بهویژه
با معرفی
باینری apt
تنظیم برخی
گزینهها
تنها برای
یک باینری
خاص
میتواند
مفید باشد،
زیرا حتی
گزینههایی
که به نظر
میرسد
تنها بر یک
باینری
مشخص تأثیر
میگذارند،
مانند APT::Get::Show-Versions
هم بر apt-get و هم
بر apt تأثیر
میگذارند.
تنظیم یک
گزینه
صرفاً برای
یک باینری
خاص، با
قرار دادن
آن گزینه
درون دامنه
Binary::specific-binary
امکانپذیر
است. به
عنوان
مثال،
تنظیم
گزینه APT::Get::Show-Versions
تنها برای apt
میتواند
با تعیین
مقدار
Binary::apt::APT::Get::Show-Versions به
جای آن
انجام شود.
توجه
داشته
باشید
همانطور
که در بخش
«توضیحات
(DESCRIPTION)» در بالا
اشاره شد،
نمیتوانید
گزینههای
مختص
باینری را
در خود خط
فرمان یا در
فایلهای
پیکربندی
بارگذاریشده
از طریق خط
فرمان
تنظیم
کنید.
بخش Dir::State
شامل
دایرکتوریهایی
است که به
اطلاعات
وضعیت محلی
مربوط
میشوند. lists
دایرکتوری
قرارگیری
فهرستهای
بستههای
دانلودشده
است و status نام
فایل وضعیت
dpkg(1) میباشد.
preferences نام فایل
preferences در APT است. Dir::State
شامل
دایرکتوری
پیشفرضی
است که در
ابتدای
مسیر تمام
زیرآیتمها
قرار
میگیرد،
در صورتی که
با / یا ./ شروع
نشده
باشند.
Dir::Cache شامل
مسیرهای
مربوط به
اطلاعات
حافظه موقت
(کَش) محلی
است، مانند
دو کَش بسته
srcpkgcache و pkgcache و
همچنین محل
قرارگیری
بایگانیهای
دانلودشده،
Dir::Cache::archives. تولید
کَشها را
میتوان با
قرار دادن
pkgcache یا srcpkgcache بر
روی ""
غیرفعال
کرد. این کار
زمان
راهاندازی
را کند
میکند اما
باعث
صرفهجویی
در فضای
دیسک
میشود.
احتمالاً
غیرفعال
کردن pkgcache نسبت
به srcpkgcache ارجح
است. همانند
Dir::State
دایرکتوری
پیشفرض در
Dir::Cache قرار
دارد.
Dir::Etc شامل
مسیر
فایلهای
پیکربندی
است، sourcelist
مسیر sourcelist را
تعیین
میکند و main
فایل
پیکربندی
پیشفرض
است (تنظیم
آن تأثیری
ندارد، مگر
اینکه از
فایل
پیکربندی
مشخصشده
توسط APT_CONFIG
انجام شود).
تنظیم Dir::Parts
تمام قطعات
پیکربندی
را به ترتیب
الفبایی از
دایرکتوری
مشخصشده
میخواند.
پس از اتمام
این کار،
فایل
پیکربندی
اصلی
بارگذاری
میشود.
برنامههای
باینری
توسط Dir::Bin
مشخص
میشوند.
Dir::Bin::Methods محل
کنترلکنندههای
روش (method handlers) را
تعیین
میکند و
gzip، bzip2، lzma،
dpkg، apt-get، dpkg-source،
dpkg-buildpackage و apt-cache محل
برنامههای
مربوطه را
مشخص
میکنند.
آیتم
پیکربندی
RootDir معنای
ویژهای
دارد. اگر
تنظیم شود،
تمامی
مسیرها
نسبت به RootDir
خواهند
بود، حتی
مسیرهایی
که به صورت
مطلق مشخص
شدهاند.
بنابراین،
به عنوان
مثال، اگر
RootDir روی /tmp/staging و
Dir::State::status روی /var/lib/dpkg/status
تنظیم شده
باشد،
آنگاه فایل
وضعیت در
/tmp/staging/var/lib/dpkg/status جستجو
خواهد شد.
اگر
میخواهید
پیشوند
تنها به
مسیرهای
نسبی اضافه
شود، به جای
آن Dir را
تنظیم
کنید.
فهرست
Ignore-Files-Silently
میتواند
برای مشخص
کردن
فایلهایی
استفاده
شود که APT
باید در
هنگام
تجزیه
فایلها در
دایرکتوریهای
قطعات
پیکربندی،
بدون اعلام
هشدار (در
سکوت) از
آنها
چشمپوشی
کند. به طور
پیشفرض
فایلی که با
.disabled, ~, .bak یا .dpkg-[a-z]+
خاتمه
مییابد،
در سکوت
نادیده
گرفته
میشود.
همانطور
که در آخرین
مقدار
پیشفرض
دیده
میشود،
این الگوها
میتوانند
از نحو
عبارت
باقاعده (regular
expression) استفاده
کنند.
هنگامی که
APT به عنوان
یک روش در dselect(1)
استفاده
میشود،
چندین
دستورالعمل
پیکربندی
رفتار
پیشفرض را
کنترل
میکنند.
این موارد
در بخش DSelect
قرار
دارند.
Clean
حالت
پاکسازی
حافظه موقت
(کَش)؛ این
مقدار
میتواند
یکی از
گزینههای
always, prompt, auto, pre-auto و never
باشد.
مقادیر always و prompt
تمام
بستهها را
پس از ارتقا
از حافظه
موقت حذف
خواهند
کرد؛ prompt
(پیشفرض)
این کار را
به صورت
مشروط
انجام
میدهد. auto
تنها
بستههایی
را حذف
میکند که
دیگر قابل
دانلود
نیستند
(برای مثال
با یک نسخه
جدیدتر
جایگزین
شدهاند). pre-auto
این عمل را
پیش از
دانلود
بستههای
جدید انجام
میدهد.
options
محتوای
این متغیر
هنگام
اجرای
apt-get(8)
برای مرحله
نصب، به
عنوان
گزینههای
خط فرمان به
آن ارسال
میشود.
Updateoptions
محتوای
این متغیر
هنگام
اجرای
apt-get(8)
برای مرحله
بهروزرسانی،
به عنوان
گزینههای
خط فرمان به
آن ارسال
میشود.
PromptAfterUpdate
اگر درست
(true) باشد،
عملیات [U]pdate در
dselect(1) همیشه
برای ادامه
کار
تأییدیه
میخواهد.
مقدار
پیشفرض
درخواست
تأیید تنها
در صورت
بروز خطا
است.
چندین
دستورالعمل
پیکربندی،
نحوه
فراخوانی
dpkg(1) توسط APT را
کنترل
میکنند.
این
گزینهها
در بخش DPkg
قرار
دارند.
options
این
فهرستی از
گزینهها
برای ارسال
به
dpkg(1) است.
گزینهها
باید با
نشانهگذاری
فهرست (list notation)
مشخص شوند و
هر آیتم از
فهرست به
عنوان یک
آرگومان
مجزا به
dpkg(1)
ارسال
میشود.
Path
این یک
رشته است که
متغیر
محیطی PATH
مورد
استفاده
هنگام
اجرای dpkg را
تعریف
میکند. این
متغیر
میتواند
روی هر
مقدار
معتبری از
آن متغیر
محیطی
تنظیم شود؛
یا یک رشته
خالی که در
این صورت
متغیر بدون
تغییر باقی
میماند.
Pre-Invoke, Post-Invoke
این
فهرستی از
دستورات شل
برای اجرا
قبل/بعد از
فراخوانی
dpkg(1) است.
همانند
options
این مورد
نیز باید با
نشانهگذاری
فهرست مشخص
شود.
دستورات به
ترتیب با
استفاده از
/bin/sh فراخوانی
میشوند؛
در صورت
شکست هر یک، APT
متوقف
خواهد شد.
Pre-Install-Pkgs
این
فهرستی از
دستورات شل
برای اجرا
قبل از
فراخوانی
dpkg(1) است.
همانند
options
این مورد
نیز باید با
نشانهگذاری
فهرست مشخص
شود.
دستورات به
ترتیب با
استفاده از
/bin/sh فراخوانی
میشوند؛
در صورت
شکست هر یک، APT
متوقف
خواهد شد.
ابزار APT نام
فایلهای
تمام
فایلهای .deb
را که قصد
نصب آنها
را دارد،
سطر به سطر
روی
توصیفگر
فایل
درخواستی
که به طور
پیشفرض
ورودی
استاندارد
است، به
دستورات
ارسال
میکند.
نسخه ۲ از
این پروتکل
اطلاعات
بیشتری را
از طریق
توصیفگر
فایل
درخواستی
ارسال
میکند: خطی
با متن VERSION 2،
فضای
پیکربندی APT،
و فهرستی از
اقدامات
بسته به
همراه نام
فایل و
اطلاعات
نسخه.
هر خط از
دستورالعملهای
پیکربندی
ساختار key=value
دارد.
نویسههای
خاص (علامت
مساوی،
خطوط جدید،
نویسههای
غیرقابلچاپ،
علامت
نقلقول و
علامتهای
درصد در key و
خطوط جدید،
نویسههای
غیرقابلچاپ
و
علامتهای
درصد در value) به
صورت
رمزگذاری
درصدی (%-encoded)
هستند.
فهرستها
با چندین خط
به شکل key::=value با
همان کلید
نشان داده
میشوند.
بخش
پیکربندی
با یک خط
خالی پایان
مییابد.
خطوط
اقدامات
بسته در
نسخه ۲ از
پنج فیلد
تشکیل
شدهاند:
نام بسته
(بدون مشخصه
معماری،
حتی اگر foreign
باشد)، نسخه
قدیمی، جهت
تغییر نسخه
(< برای
ارتقا، >
برای تنزل
نسخه، = برای
بدون
تغییر)،
نسخه جدید،
اقدام.
فیلدهای
نسخه برای
حالتی که
اصلاً
نسخهای
وجود ندارد
(برای مثال
هنگام نصب
یک بسته
برای اولین
بار؛ نبود
نسخه به
عنوان
نسخهای
قدیمیتر
از هر نسخه
واقعی در
نظر گرفته
میشود،
بنابراین
یک ارتقا
است که به
صورت - < 1.23.4)
نمایش داده
میشود) به
صورت "-"
هستند. فیلد
اقدام در
صورتی که
بسته در حال
پیکربندی
باشد برابر
با "**CONFIGURE**"، اگر
در حال حذف
باشد برابر
با "**REMOVE**"، یا
در صورتی که
در حال
استخراج
باشد نام
فایل یک
فایل .deb
خواهد بود.
در نسخه ۳
پس از هر
فیلد نسخه،
معماری آن
نسخه
میآید که
در صورت عدم
وجود نسخه
برابر با "-"
است، و
فیلدی که
نوع MultiArch را با
مقادیر "same"
،"foreign" ،"allowed" یا
"none" نشان
میدهد.
توجه داشته
باشید که "none"
یک نام نوع
نادرست است
که صرفاً
جهت حفظ
سازگاری
نگه داشته
شده است؛
این مقدار
باید به
عنوان "no"
خوانده شود
و کاربران
تشویق
میشوند از
هر دو
پشتیبانی
کنند.
نسخه
پروتکل
مورد
استفاده
برای دستور
cmd میتواند
با تنظیم
DPkg::Tools::options::cmd::Version
انتخاب شود
که پیشفرض
آن نسخه ۱
است. اگر APT از
نسخه
درخواستی
پشتیبانی
نکند، در
عوض
اطلاعات را
با
بالاترین
نسخهای که
از آن
پشتیبانی
میکند
ارسال
خواهد کرد.
توصیفگر
فایلی که
برای ارسال
اطلاعات
استفاده
میشود
میتواند
با DPkg::Tools::options::cmd::InfoFD
درخواست
شود که
پیشفرض آن 0
برای ورودی
استاندارد
است و از
نسخه 0.9.11 در
دسترس قرار
دارد.
پشتیبانی
از این
گزینه را
میتوان با
بررسی
متغیر
محیطی APT_HOOK_INFO_FD
شناسایی
کرد که حاوی
شماره
توصیفگر
فایل
استفادهشده
به عنوان
تأییدیه
است.
Run-Directory
ابزار APT
قبل از
فراخوانی
dpkg(1), به این
دایرکتوری
تغییر مسیر
میدهد (chdir)،
پیشفرض /
است.
Build-options
این
گزینهها
به
dpkg-buildpackage(1)
هنگام
کامپایل
بستهها
ارسال
میشوند؛
پیشفرض
این است که
امضا
غیرفعال
شده و تمام
باینریها
تولید
شوند.
DPkg::ConfigurePending
اگر این
گزینه
تنظیم شود، APT
دستور
dpkg --configure --pending
را
فراخوانی
میکند تا
به
dpkg(1) اجازه
دهد تمام
پیکربندیها
و تریگرهای
(triggers) مورد نیاز
را مدیریت
کند. این
گزینه به
طور
پیشفرض
فعال است،
اما
غیرفعال
کردن آن در
صورتی که
بخواهید APT را
چندین بار
متوالی
اجرا کنید -
مثلاً در یک
نصاب -
میتواند
مفید باشد.
در این
سناریو
میتوانید
این گزینه
را در تمام
دفعات به جز
آخرین بار
غیرفعال
کنید.
ابزار APT با
systemd ارتباط
برقرار
میکند تا
عملیاتهای
متداخل
سیستم را در
حین اجرای
dpkg(1) مهار
کند، تا از
قرار گرفتن
سیستمها
در وضعیت
ارتقای
ناقص و
بستههای
خراب
جلوگیری
شود.
DPkg::Inhibit-Shutdown
این
گزینه بولی
(boolean) که به طور
پیشفرض
فعال است،
باعث
میشود apt
مانع خاموش
شدن سیستم (shutdown)
شود.
DPkg::Inhibit-Sleep
این
گزینه بولی
(boolean) که به طور
پیشفرض
فعال است،
باعث
میشود apt
مانع به
خواب رفتن
سیستم (sleep)
شود.
برای
اطلاعات
بیشتر به
https://systemd.io/INHIBITOR_LOCKS
مراجعه
کنید.
گروههای
گزینههای
APT::Periodic و APT::Archives
رفتار
بهروزرسانیهای
دورهای apt
را
پیکربندی
میکنند که
توسط
اسکریپت
/usr/lib/apt/apt.systemd.daily انجام
میشود.
برای
مستندات
مختصر این
گزینهها،
به ابتدای
این
اسکریپت
مراجعه
کنید.
فعال کردن
گزینهها
در بخش Debug::
باعث ارسال
اطلاعات
اشکالزدایی
به جریان
خطای
استاندارد
برنامهای
میشود که
از
کتابخانههای
apt استفاده
میکند، یا
حالتهای
ویژهای از
برنامه را
فعال
میسازد که
عمدتاً
برای
اشکالزدایی
از رفتار apt
مفید هستند.
بیشتر این
گزینهها
برای یک
کاربر
معمولی
جالب توجه
نیستند،
اما چند
مورد از
آنها ممکن
است
کاربردی
باشند:
•Debug::pkgProblemResolver
خروجی
مربوط به
تصمیمات
اتخاذشده
توسط dist-upgrade،
upgrade، install، remove و
purge را فعال
میکند.
•Debug::NoLocking
تمام
قفلگذاریهای
فایل را
غیرفعال
میکند. این
گزینه
میتواند
برای اجرای
برخی
عملیات
(برای
نمونه، apt-get -s install)
به عنوان یک
کاربر
غیرریشه
استفاده
شود.
•
Debug::pkgDPkgPM هر
بار که
apt
برنامه
dpkg(1)
را
فراخوانی
میکند، خط
فرمان
واقعی را
چاپ
میکند.
•Debug::IdentCdrom
گنجاندن
دادههای statfs
در
شناسههای
CD-ROM را
غیرفعال
میکند.
فهرست
کامل
گزینههای
اشکالزدایی
apt در ادامه
آمده است.
Debug::Acquire::cdrom
اطلاعات
مربوط به
دسترسی به
منابع cdrom:// را
چاپ
میکند.
Debug::Acquire::http
اطلاعات
مربوط به
بارگیری
بستهها با
استفاده از HTTP
را چاپ
میکند.
Debug::Acquire::https
اطلاعات
مربوط به
بارگیری
بستهها با
استفاده از
HTTPS را چاپ
میکند.
Debug::Acquire::gpgv
اطلاعات
مربوط به
اعتبارسنجی
امضاهای
رمزنگاریشده
با استفاده
از gpg را چاپ
میکند.
Debug::aptcdrom
اطلاعات
مربوط به
فرآیند
دسترسی به
مجموعههای
بستههای
ذخیرهشده
روی CD-ROM را
نمایش
میدهد.
Debug::Hashes
هر هش
رمزنگاری
که توسط
کتابخانههای
apt تولید
میشود را
در خروجی
نمایش
میدهد.
Debug::IdentCDROM
هنگام
تولید
شناسه برای
یک CD-ROM،
اطلاعات
حاصل از statfs،
یعنی تعداد
بلوکهای
استفادهشده
و آزاد در
سیستمفایل
CD-ROM را نادیده
میگیرد.
Debug::NoLocking
تمام
قفلگذاریهای
فایل را
غیرفعال
میکند.
برای
نمونه، این
کار اجازه
میدهد دو
نمونه از “apt-get
update” بهطور
همزمان
اجرا شوند.
Debug::pkgAcquire
هنگام
افزوده شدن
یا حذف
موارد از صف
سراسری
بارگیری،
آن را ثبت
(لاگ)
میکند.
Debug::pkgAcquire::Auth
پیامهای
وضعیت و
خطاهای
مربوط به
اعتبارسنجی
چکسامها و
امضاهای
رمزنگاری
فایلهای
بارگیریشده
را در خروجی
نمایش
میدهد.
Debug::pkgAcquire::Diffs
اطلاعات
مربوط به
بارگیری و
اعمال
تفاضلهای
فهرست
نمایه بسته
(diffs)، و خطاهای
مربوط به
تفاضلهای
نمایه بسته
را نمایش
میدهد.
Debug::pkgAcquire::RRed
اطلاعات
مربوط به
وصله زدن (patching)
لیستهای
بستههای apt
هنگام
بارگیری
تفاضلهای
نمایه
بهجای
نمایههای
کامل را در
خروجی
نمایش
میدهد.
Debug::pkgAcquire::Worker
تمام
تعاملات با
زیرپردازشهایی
که عملاً
بارگیریها
را انجام
میدهند
ثبت (لاگ)
میکند.
Debug::pkgAutoRemove
رویدادهای
مربوط به
وضعیت نصب
خودکار
بستهها و
حذف
بستههای
استفادهنشده
را ثبت
میکند.
Debug::pkgDepCache::AutoInstall
پیامهای
اشکالزدایی
تولید
میکند که
توصیف
میکنند چه
بستههایی
برای حل
وابستگیها
بهطور
خودکار در
حال نصب
هستند. این
به مرحله
اولیه نصب
خودکار
انجامشده
در مثلاً apt-get
install مربوط است
و نه به
حلکننده
کامل
وابستگی apt؛
برای آن به
Debug::pkgProblemResolver
مراجعه
کنید.
Debug::pkgDepCache::Marker
پیامهای
اشکالزدایی
تولید
میکند که
نشان
میدهند در
حین کار ProblemResolver
کدام
بستهها به
صورت
نگهداری/نصب/حذف
(keep/install/remove)
نشانهگذاری
میشوند. هر
افزودن یا
حذف ممکن
است
اقدامات
بیشتری را
ایجاد کند؛
این
اقدامات با
دو فاصله
اضافی زیر
مدخل اصلی
دندانهدار
نشان داده
میشوند.
قالب هر خط
به صورت MarkKeep،
MarkDelete یا MarkInstall است
که به دنبال
آن package-name <a.b.c -> d.e.f | x.y.z> (section)
میآید که
در آن a.b.c نسخه
فعلی بسته
است، d.e.f
نسخهای
است که برای
نصب در نظر
گرفته شده و
x.y.z نسخهای
جدیدتر
است، اما
برای نصب در
نظر گرفته
نشده است (به
دلیل
امتیاز
پایین
سنجاقگذاری
/ pin score). اگر این
دو مورد آخر
وجود
نداشته
باشند یا با
نسخه
نصبشده
یکسان
باشند،
میتوان
آنها را
حذف کرد. section
نام بخشی
است که بسته
در آن ظاهر
میشود.
Debug::pkgDPkgPM
هنگام
فراخوانی
dpkg(1)، خط
فرمان
دقیقی را که
با آن
فراخوانی
میشود، با
آرگومانهایی
که با یک
کاراکتر
فاصله تکی
جدا
شدهاند،
در خروجی
نمایش
میدهد.
Debug::pkgDPkgProgressReporting
تمام
دادههای
دریافت شده
از
dpkg(1) روی
توصیفگر
فایل وضعیت
(status file descriptor) و
هرگونه
خطای رخ
داده هنگام
تجزیه آن را
در خروجی
نمایش
میدهد.
Debug::pkgOrderList
ردیابی (trace)
الگوریتمی
را ایجاد
میکند که
ترتیب
ارسال
بستهها
توسط
apt به
dpkg(1)
را تعیین
میکند.
Debug::pkgPackageManager
پیامهای
وضعیتی را
که مراحل
انجامشده
هنگام
فراخوانی
dpkg(1) را
ردیابی
میکنند در
خروجی
نمایش
میدهد.
Debug::pkgPolicy
اولویت
هر فهرست
بسته را در
هنگام
راهاندازی
خروجی
میدهد.
Debug::pkgProblemResolver
اجرای
حلکننده
وابستگی را
ردیابی
میکند (این
مورد فقط
زمانی
اعمال
میشود که
یک مشکل
وابستگی
پیچیده رخ
دهد).
Debug::pkgProblemResolver::ShowScores
فهرستی
از تمام
بستههای
نصبشده را
به همراه
امتیاز
محاسبهشده
آنها که
توسط pkgProblemResolver
استفاده
میشود،
نمایش
میدهد.
توضیحات
بسته
همانند
مورد
بیانشده
در Debug::pkgDepCache::Marker
است.
Debug::sourceList
اطلاعات
مربوط به
توزیعکنندگان
(vendors)
خواندهشده
از /etc/apt/vendors.list را
چاپ
میکند.
Debug::RunScripts
دستورات
خارجی
فراخوانیشده
توسط
قلابهای (hooks) apt
را نمایش
میدهد. این
شامل
مواردی چون
گزینههای
پیکربندی
DPkg::{Pre,Post}-Invoke یا
APT::Update::{Pre,Post}-Invoke است.
فایل
/usr/share/doc/apt/examples/configure-index یک
فایل
پیکربندی
است که
مقادیر
نمونه را
برای تمام
گزینههای
ممکن نشان
میدهد.
/etc/apt/apt.conf
فایل
پیکربندی APT.
مورد
پیکربندی:
Dir::Etc::Main.
/etc/apt/apt.conf.d/
قطعات
فایل
پیکربندی APT.
مورد
پیکربندی:
Dir::Etc::Parts.
صفحه
اشکالات APT[1].
اگر مایل به
گزارش یک
اشکال در APT
هستید،
لطفاً
/usr/share/doc/debian/bug-reporting.txt یا
دستور reportbug(1)
را بررسی
کنید.
Jason Gunthorpe
تیم APT
Daniel Burrows <dburrows@debian.org>
مستندسازی
اولیه Debug::*.