PACMAN.CONF(5) راهنمای Pacman PACMAN.CONF(5)

pacman.conf - فایل پیکربندی مدیر بسته pacman

/etc/pacman.conf

دستور pacman با استفاده از libalpm(3)، در هر بار فراخوانی تلاش می‌کند فایل pacman.conf را بخواند. این فایل پیکربندی به بخش‌ها یا مخازن تقسیم شده است. هر بخش یک مخزن بسته را تعریف می‌کند که pacman می‌تواند هنگام جستجوی بسته‌ها در حالت --sync از آن استفاده کند. استثنای این قاعده، بخش options است که گزینه‌های عمومی را مشخص می‌سازد.

کامنت‌ها تنها با شروع خط با علامت هش (#) پشتیبانی می‌شوند. کامنت‌ها نمی‌توانند در میانه یک خط آغاز شوند.

#
# pacman.conf
#
[options]
NoUpgrade = etc/passwd etc/group etc/shadow
NoUpgrade = etc/fstab
[core]
Include = /etc/pacman.d/core
[custom]
Server = file:///home/pkgs

یادداشت

هر دستورالعمل باید به صورت CamelCase باشد. اگر این حالت نوشتاری رعایت نشود، دستورالعمل شناسایی نخواهد شد. برای نمونه، noupgrade یا NOUPGRADE کار نخواهند کرد.

RootDir = /path/to/root/dir

دایرکتوری ریشه پیش‌فرض را برای نصب بسته‌ها توسط pacman تنظیم می‌کند. این گزینه زمانی استفاده می‌شود که بخواهید بسته‌ای را روی یک پارتیشن موقتاً مانت‌شده نصب کنید که متعلق به سیستم دیگری است، یا برای نصب درون یک chroot کاربرد دارد. یادداشت: اگر مسیر پایگاه‌داده یا فایل لاگ در خط فرمان یا در pacman.conf(5) مشخص نشده باشند، مکان پیش‌فرض آن‌ها درون این مسیر ریشه خواهد بود.

DBPath = /path/to/db/dir

مکان پیش‌فرض دایرکتوری پایگاه‌داده سطح بالا را بازنویسی می‌کند. مقدار پیش‌فرض /var/lib/pacman/ است. بیشتر کاربران نیازی به تنظیم این گزینه نخواهند داشت. یادداشت: در صورت تعیین، این یک مسیر مطلق است و مسیر ریشه به طور خودکار به ابتدای آن افزوده نمی‌شود.

CacheDir = /path/to/cache/dir

مکان پیش‌فرض دایرکتوری کش بسته‌ها را بازنویسی می‌کند. مقدار پیش‌فرض /var/cache/pacman/pkg/ است. می‌توان چندین دایرکتوری کش را مشخص کرد، و آن‌ها به ترتیبی که در فایل پیکربندی فهرست شده‌اند بررسی می‌شوند. اگر فایلی در هیچ‌یک از دایرکتوری‌های کش پیدا نشود، در نخستین دایرکتوری کشی که دسترسی نوشتن داشته باشد دانلود خواهد شد. یادداشت: این یک مسیر مطلق است، مسیر ریشه به طور خودکار به ابتدای آن افزوده نمی‌شود.

HookDir = /path/to/hook/dir

دایرکتوری‌هایی را برای جستجوی قلاب‌های (hooks) alpm علاوه بر دایرکتوری قلاب سیستم (/usr/share/libalpm/hooks/) می‌افزاید. مقدار پیش‌فرض /etc/pacman.d/hooks است. می‌توان چندین دایرکتوری را مشخص کرد که در آن قلاب‌های موجود در دایرکتوری‌های بعدی بر قلاب‌های دایرکتوری‌های قبلی اولویت خواهند داشت. یادداشت: این یک مسیر مطلق است، مسیر ریشه به طور خودکار به ابتدای آن افزوده نمی‌شود. برای اطلاعات بیشتر درباره قلاب‌های alpm، به alpm-hooks(5) مراجعه کنید.

GPGDir = /path/to/gpg/dir

مکان پیش‌فرض دایرکتوری شامل فایل‌های پیکربندی GnuPG را بازنویسی می‌کند. مقدار پیش‌فرض /etc/pacman.d/gnupg/ است. این دایرکتوری باید شامل دو فایل باشد: pubring.gpg و trustdb.gpg. فایل pubring.gpg کلیدهای عمومی تمام بسته‌بندها را نگه می‌دارد. فایل trustdb.gpg شامل یک پایگاه‌داده اعتماد است که مشخص می‌کند کلیدها معتبر و مورد اعتماد هستند. یادداشت: این یک مسیر مطلق است، مسیر ریشه به طور خودکار به ابتدای آن افزوده نمی‌شود.

LogFile = /path/to/log/file

مکان پیش‌فرض فایل لاگ pacman را بازنویسی می‌کند. مقدار پیش‌فرض /var/log/pacman.log است. این یک مسیر مطلق است و دایرکتوری ریشه به ابتدای آن افزوده نمی‌شود.

HoldPkg = package ...

اگر کاربری تلاش کند بسته‌ای را که در HoldPkg فهرست شده است با --remove حذف کند، pacman پیش از اقدام تاییدیه خواهد خواست. الگوهای سراسری (glob) به سبک شل مجاز هستند.

IgnorePkg = package ...

به pacman دستور می‌دهد که هنگام اجرای --sysupgrade از هرگونه ارتقای این بسته چشم‌پوشی کند. الگوهای سراسری (glob) به سبک شل مجاز هستند.

IgnoreGroup = group ...

به pacman دستور می‌دهد که هنگام اجرای --sysupgrade از هرگونه ارتقای تمامی بسته‌های این گروه چشم‌پوشی کند. الگوهای سراسری (glob) به سبک شل مجاز هستند.

Include = /path/to/config/file

یک فایل پیکربندی دیگر را درج می‌کند. این فایل می‌تواند شامل مخازن یا گزینه‌های عمومی پیکربندی باشد. نویسه‌های عمومی (wildcards) در مسیرهای مشخص‌شده بر اساس قوانین glob(7) گسترش می‌یابند.

Architecture = auto &| i686 &| x86_64 | ...

در صورت تنظیم، pacman تنها اجازه نصب بسته‌هایی با معماری‌های داده‌شده را می‌دهد (مانند i686، x86_64 و غیره). مقدار ویژه auto از معماری سیستم که از طریق “uname -m” ارائه می‌شود استفاده خواهد کرد. اگر تنظیم نشود، هیچ بررسی معماری انجام نمی‌گیرد. یادداشت: بسته‌هایی با معماری ویژه any همواره قابل نصب هستند، زیرا مستقل از معماری در نظر گرفته شده‌اند.

XferCommand = /path/to/command %u

در صورت تنظیم، یک برنامه خارجی برای دانلود تمامی فایل‌های راه دور استفاده خواهد شد. تمام موارد %u با نشانی URL دانلود جایگزین می‌شوند. در صورت وجود، موارد %o با نام فایل محلی به علاوه پسوند “.part” جایگزین خواهند شد، که به برنامه‌هایی مانند wget امکان می‌دهد ازسرگیری فایل را به درستی انجام دهند.

این گزینه برای کاربرانی مفید است که با پشتیبانی داخلی HTTP/FTP دچار مشکل هستند، یا به پشتیبانی پیشرفته‌تر پروکسی که با ابزارهایی مانند wget ارائه می‌شود نیاز دارند.

NoUpgrade = file ...

تمامی فایل‌های فهرست‌شده با یک دستورالعمل NoUpgrade هرگز در طول نصب/ارتقای بسته دستکاری نخواهند شد، و فایل‌های جدید با پسوند .pacnew نصب می‌شوند. این فایل‌ها به فایل‌های موجود در آرشیو بسته اشاره دارند، بنابراین هنگام تعیین آن‌ها از اسلش ابتدایی (RootDir) صرف‌نظر کنید. الگوهای سراسری (glob) به سبک شل مجاز هستند. معکوس کردن تطابق‌ها با افزودن علامت تعجب به ابتدای نام فایل امکان‌پذیر است. فایل‌های معکوس‌شده باعث می‌شوند فایل‌هایی که پیش‌تر در لیست سیاه قرار گرفته بودند، دوباره در لیست سفید قرار گیرند. تطابق‌های بعدی، موارد پیشین را بازنویسی خواهند کرد. علامت تعجب واقعی یا بک‌اسلش در ابتدای نام باید گریز داده شود (اسکیپ شود).

NoExtract = file ...

تمامی فایل‌های فهرست‌شده با یک دستورالعمل NoExtract هرگز از بسته به سیستم‌فایل استخراج نخواهند شد. این قابلیت زمانی مفید است که مایل نیستید بخشی از یک بسته نصب شود. برای نمونه، اگر ریشه وب‌سرور httpd شما از یک index.php استفاده می‌کند، ممکن است نخواهید فایل index.html از بسته apache استخراج شود. این فایل‌ها به فایل‌های موجود در آرشیو بسته اشاره دارند، بنابراین هنگام تعیین آن‌ها از اسلش ابتدایی (RootDir) صرف‌نظر کنید. الگوهای سراسری (glob) به سبک شل مجاز هستند. معکوس کردن تطابق‌ها با افزودن علامت تعجب به ابتدای نام فایل امکان‌پذیر است. فایل‌های معکوس‌شده باعث می‌شوند فایل‌هایی که پیش‌تر در لیست سیاه قرار گرفته بودند، دوباره در لیست سفید قرار گیرند. تطابق‌های بعدی، موارد پیشین را بازنویسی خواهند کرد. علامت تعجب واقعی یا بک‌اسلش در ابتدای نام باید گریز داده شود (اسکیپ شود).

CleanMethod = KeepInstalled &| KeepCurrent

اگر روی KeepInstalled (پیش‌فرض) تنظیم شود، عملیات -Sc بسته‌هایی را پاکسازی می‌کند که دیگر نصب نیستند (در پایگاه‌داده محلی وجود ندارند). اگر روی KeepCurrent تنظیم شود، -Sc بسته‌های منسوخ را پاکسازی می‌کند (بسته‌هایی که در هیچ پایگاه‌داده همگام‌سازی وجود ندارند). رفتار دوم زمانی سودمند است که کش بسته‌ها بین چند ماشین به اشتراک گذاشته شده باشد؛ جایی که معمولاً پایگاه‌های داده محلی متفاوت هستند، اما پایگاه‌های داده همگام‌سازی مورد استفاده می‌توانند یکسان باشند. اگر هر دو مقدار مشخص شوند، بسته‌ها تنها زمانی پاکسازی می‌شوند که به صورت محلی نصب نبوده و در هیچ پایگاه‌داده همگام‌سازی شناخته‌شده‌ای نیز وجود نداشته باشند.

SigLevel = ...

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

LocalFileSigLevel = ...

سطح بررسی امضا را برای نصب بسته‌ها با استفاده از عملیات "-U" روی یک فایل محلی تنظیم می‌کند. به عنوان مقدار پیش‌فرض، از مقدار SigLevel استفاده می‌کند.

RemoteFileSigLevel = ...

سطح بررسی امضا را برای نصب بسته‌ها با استفاده از عملیات "-U" روی نشانی URL یک فایل راه دور تنظیم می‌کند. به عنوان مقدار پیش‌فرض، از مقدار SigLevel استفاده می‌کند.

UseSyslog

پیام‌های اقدامات انجام‌شده را از طریق syslog() ثبت می‌کند. این کار ورودی‌های لاگ را در /var/log/messages یا معادل آن درج می‌کند.

Color

تنها زمانی که خروجی pacman روی یک tty باشد، به طور خودکار رنگ‌ها را فعال می‌کند.

NoProgressBar

نوارهای پیشرفت را غیرفعال می‌کند. این گزینه برای پایانه‌هایی که از کاراکترهای گریز (escape) پشتیبانی نمی‌کنند مناسب است.

CheckSpace

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

VerbosePkgLists

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

DisableDownloadTimeout

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

ParallelDownloads = ...

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

هر بخش مخزن، یک نام بخش و حداقل یک مکان را که بسته‌ها در آن یافت می‌شوند تعریف می‌کند. نام بخش با رشته درون براکت‌ها مشخص می‌شود (دو مورد بالا core و custom هستند). نام‌های مخازن باید یکتا باشند و نام local برای پایگاه‌داده بسته‌های نصب‌شده رزرو شده است. مکان‌ها با دستورالعمل Server تعریف شده و از ساختار نام‌گذاری URL پیروی می‌کنند. اگر می‌خواهید از یک دایرکتوری محلی استفاده کنید، می‌توانید مسیر کامل را همراه با پیشوند “file://”، مطابق آنچه در بالا نشان داده شده است، مشخص نمایید.

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

[core]
# use this server first
Server = ftp://ftp.archlinux.org/$repo/os/$arch
# next use servers as defined in the mirrorlist below
Include = {sysconfdir}/pacman.d/mirrorlist

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

Include = path

یک فایل پیکربندی دیگر را درج می‌کند. این فایل می‌تواند شامل مخازن یا گزینه‌های عمومی پیکربندی باشد. نویسه‌های عمومی (wildcards) در مسیرهای مشخص‌شده بر اساس قوانین glob(7) گسترش می‌یابند.

Server = url

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

در حین تجزیه، pacman متغیر $repo را با نام بخش جاری مقداردهی می‌کند. این متغیر اغلب در فایل‌های مشخص‌شده با دستورالعمل Include استفاده می‌شود تا همه مخازن بتوانند از یک فایل آینه‌ای (mirrorfile) یکسان استفاده کنند. همچنین pacman متغیر $arch را با نخستین (یا تنها) مقدار گزینه Architecture تعریف می‌کند، تا همان فایل آینه‌ای حتی بتواند برای معماری‌های مختلف نیز به کار رود.

SigLevel = ...

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

Usage = ...

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

Sync

تازه‌سازی‌ها (refreshes) را برای این مخزن فعال می‌کند.

Search

جستجو در این مخزن را فعال می‌کند.

Install

نصب بسته‌ها از این مخزن را در حین عملیات --sync فعال می‌کند.

Upgrade

اجازه می‌دهد این مخزن یک منبع معتبر بسته در هنگام اجرای عملیات --sysupgrade باشد.

All

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

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

دستورالعمل SigLevel هم در بخش [options] و هم در بخش‌های مخازن معتبر است. اگر در [options] استفاده شود، یک مقدار پیش‌فرض را برای هر مخزنی که این تنظیم را ارائه نداده است تعیین می‌کند.

•اگر روی Never تنظیم شود، هیچ بررسی امضایی انجام نخواهد گرفت.
•اگر روی Optional تنظیم شود، امضاها در صورت وجود بررسی می‌شوند، اما پایگاه‌های داده و بسته‌های فاقد امضا نیز پذیرفته خواهند شد.
•اگر روی Required تنظیم شود، وجود امضا بر روی تمامی بسته‌ها و پایگاه‌های داده الزامی خواهد بود.

از طرف دیگر، می‌توانید با ترکیب برخی از گزینه‌ها و پیشوندهای شرح‌داده‌شده در زیر، به کنترل دقیق‌تری دست یابید. تمام گزینه‌ها در یک فایل پیکربندی به صورت بالا به پایین و چپ به راست پردازش می‌شوند، که در آن گزینه‌های بعدی، گزینه‌های قبلی را بازنویسی یا تکمیل می‌کنند. اگر SigLevel در بخش یک مخزن مشخص شده باشد، مقدار آغازین آن از بخش [options] یا در صورت عدم تعیین، از مقدار پیش‌فرض داخلی سیستم مطابق شکل زیر گرفته می‌شود.

این گزینه‌ها به دو گروه اصلی تقسیم می‌شوند که در ادامه تشریح شده‌اند. اصطلاحات به‌کاررفته مانند “مورد اعتماد نسبی (marginally trusted)” اصطلاحاتی هستند که توسط GnuPG استفاده می‌شوند؛ برای اطلاعات بیشتر لطفاً به gpg(1) مراجعه کنید.

زمان بررسی (When to Check)

این گزینه‌ها تعیین می‌کنند که آیا و چه زمانی بررسی امضاها باید انجام شود.

Never

تمام بررسی‌های امضا متوقف می‌شود، حتی اگر امضاها موجود باشند.

Optional (پیش‌فرض)

در صورت وجود امضا، بررسی انجام می‌شود؛ عدم وجود امضا خطا محسوب نمی‌شود. امضای نامعتبر یک خطای مهلک است، همچنین امضایی از کلیدی که در دسته‌کلید (keyring) وجود ندارد.

Required

امضاها الزامی هستند؛ عدم وجود امضا یا وجود یک امضای نامعتبر خطای مهلک است، همچنین امضایی از کلیدی که در دسته‌کلید وجود ندارد.

موارد مجاز (What is Allowed)

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

TrustedOnly (پیش‌فرض)

اگر امضایی بررسی شود، باید در دسته‌کلید موجود و کاملاً مورد اعتماد باشد؛ اعتماد نسبی این شرط را برآورده نمی‌کند.

TrustAll

اگر امضایی بررسی شود، باید در دسته‌کلید باشد، اما نیازی به تخصیص سطح اعتماد به آن نیست (برای مثال، اعتماد نامشخص یا نسبی).

گزینه‌های هر دو گروه را می‌توان علاوه بر این با پیشوندهای Package یا Database ترکیب کرد، که باعث می‌شود تنها بر روی نوع شیء مشخص‌شده اثر بگذارند. برای نمونه، PackageTrustAll امضاهایی با سطح اعتماد نسبی و نامشخص را برای بسته‌ها مجاز می‌شمارد.

مقدار پیش‌فرض داخلی به صورت زیر است:

SigLevel = Optional TrustedOnly

اگر بسته‌های سفارشی متعددی از خود دارید، اغلب ایجاد یک مخزن محلی سفارشی آسان‌تر از نصب تک‌تک آن‌ها با گزینه --upgrade است. تنها کاری که باید انجام دهید این است که یک پایگاه‌داده فشرده بسته در دایرکتوری حاوی این بسته‌ها ایجاد کنید تا pacman هنگام اجرا با --refresh بتواند آن را بیابد.

repo-add /home/pkgs/custom.db.tar.gz /home/pkgs/*.pkg.tar.gz

دستور فوق یک پایگاه‌داده فشرده به نام /home/pkgs/custom.db.tar.gz تولید می‌کند. توجه داشته باشید که پایگاه‌داده باید به فرم تعریف‌شده در فایل پیکربندی باشد و {ext} یک نوع فشرده‌سازی معتبر همان‌گونه که در repo-add(8) مستند شده است باشد. همین و بس! اکنون بخش سفارشی خود را در فایل پیکربندی مطابق نمونه پیکربندی بالا تنظیم کنید. از این پس pacman از مخزن بسته شما استفاده خواهد کرد. اگر بسته‌های جدیدی به مخزن اضافه کردید، به یاد داشته باشید که پایگاه‌داده را مجدداً ایجاد کرده و از گزینه --refresh در pacman استفاده نمایید.

برای اطلاعات بیشتر درباره دستور repo-add، به “repo-add --help” یا repo-add(8) مراجعه کنید.

نگه‌دارندگان فعلی:

•Allan McRae <allan@archlinux.org>
•Andrew Gregory <andrew.gregory.8@gmail.com>
•Eli Schwartz <eschwartz@archlinux.org>
•Morgan Adamiec <morganamilo@archlinux.org>

مشارکت‌کنندگان اصلی پیشین:

•Judd Vinet <jvinet@zeroflux.org>
•Aurelien Foret <aurelien@archlinux.org>
•Aaron Griffin <aaron@archlinux.org>
•Dan McGee <dan@archlinux.org>
•Xavier Chantry <shiningxc@gmail.com>
•Nagy Gabor <ngaba@bibl.u-szeged.hu>
•Dave Reisner <dreisner@archlinux.org>

برای دسترسی به سایر مشارکت‌کنندگان، از دستور git shortlog -s در مخزن pacman.git استفاده کنید.

باگ؟ حتماً شوخی می‌کنید؛ هیچ باگی در این نرم‌افزار وجود ندارد. اما اگر احیاناً اشتباه کرده باشیم، یک گزارش باگ با بیشترین جزئیات ممکن در بخش Pacman در سامانه پیگیری اشکالات توزیع Arch Linux ارسال کنید.

حق نشر © 2006-2021 Pacman Development Team <pacman-dev@lists.archlinux.org>.
حق نشر © 2002-2006 Judd Vinet <jvinet@zeroflux.org>.

این یک نرم‌افزار آزاد است؛ برای شرایط تکثیر به سورس‌کد مراجعه فرمایید. هیچ ضمانتی وجود ندارد؛ حتی برای بازاریابی یا مناسب بودن برای یک هدف خاص.

pacman(8), libalpm(3)

برای اطلاعات به‌روز درباره pacman و ابزارهای مرتبط با آن، به وب‌سایت pacman در نشانی https://archlinux.org/pacman/ مراجعه کنید.

2022-11-21 Pacman 6.0.2