deb-symbols(5) dpkg suite deb-symbols(5)

deb-symbols - فایل اطلاعات گسترش‌یافته کتابخانه مشترک دبیان

DEBIAN/symbols

فایل‌های نماد (symbols files) در بسته‌های باینری دبیان عرضه می‌شوند و قالب آن‌ها زیرمجموعه‌ای از فایل‌های الگوی نماد است که توسط dpkg-gensymbols(1) در بسته‌های منبع دبیان استفاده می‌شود؛ به deb-src-symbols(5) مراجعه کنید.

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


library-soname main-dependency-template
[| alternative-dependency-template]
[...]
[* field-name: field-value]
[...]
symbol minimal-version [id-of-dependency-template]

مقدار library-soname دقیقاً همان مقدار فیلد SONAME است که توسط objdump(1) صادر (export) شده است. یک dependency-template یک وابستگی است که در آن #MINVER# به صورت پویا با یک بررسی نسخه مانند “(>= minimal-version)” یا با هیچ‌چیز (در صورتی که وابستگی بدون نسخه کافی تشخیص داده شود) جایگزین می‌شود.

هر symbol صادرشده (که به صورت name@version فهرست می‌شود، و اگر کتابخانه نسخه‌بندی نشده باشد version برابر “Base” خواهد بود) با یک minimal-version از الگوی وابستگی‌اش مرتبط است (الگوی وابستگی اصلی همیشه استفاده می‌شود و در صورت وجود با الگوی وابستگی ارجاع‌شده توسط id-of-dependency-template ترکیب خواهد شد). نخستین الگوی وابستگی جایگزین با شماره ۱، دومی با ۲ و به همین ترتیب شماره‌گذاری می‌شود. هر ستون دقیقاً با یک نویسه فاصله جدا شده است.

هر مدخل برای یک کتابخانه همچنین می‌تواند فیلدهایی از فراداده (meta-information) داشته باشد. این فیلدها در خطوطی که با علامت ستاره آغاز می‌شوند ذخیره می‌گردند. در حال حاضر، تنها فیلدهای معتبر عبارتند از:

نام بسته “-dev” مرتبط با کتابخانه را مشخص می‌کند و توسط dpkg-shlibdeps استفاده می‌شود تا اطمینان حاصل شود وابستگی تولیدشده حداقل به اندازه وابستگی ساخت (build dependency) متناظر سخت‌گیرانه است (از dpkg 1.14.13 به بعد).
مشابه Build-Depends-Package است اما فهرستی از نام‌های بسته‌ها را که با کاما از هم جدا شده‌اند می‌پذیرد (از dpkg 1.20.0 به بعد). این فیلد هر فیلد Build-Depends-Package موجود را بازنویسی (override) خواهد کرد و بیشتر برای بسته‌های “-dev” و فرابسته‌هایی (metapackages) که به آن‌ها وابسته هستند، مثلاً در طول یک دوره گذار، کاربرد دارد.
مشخص می‌کند که کدام گروه‌های نماد داخلی باید نادیده گرفته شوند، به صورت فهرستی که با فاصله از هم جدا شده‌اند، تا نمادهای موجود در آن گروه‌ها در فایل خروجی گنجانده شوند (از dpkg 1.20.1 به بعد). این مورد تنها باید برای بسته‌های زنجیره ابزار (toolchain) که آن نمادهای داخلی را ارائه می‌دهند ضروری باشد. گروه‌های موجود وابسته به سیستم هستند؛ برای سیستم‌های مبتنی بر ELF و GNU این گروه‌ها شامل aeabi و gomp می‌شوند.

libftp.so.3 libftp3 #MINVER#
 DefaultNetbuf@Base 3.1-1-6
 FtpAccess@Base 3.1-1-6
 [...]

libGL.so.1 libgl1
| libgl1-mesa-glx #MINVER#
* Build-Depends-Package: libgl1-mesa-dev
 publicGlSymbol@Base 6.3-1
 [...]
 implementationSpecificSymbol@Base 6.5.2-7 1
 [...]

https://wiki.debian.org/Projects/ImprovedDpkgShlibdeps, deb-src-symbols(5), dpkg-shlibdeps(1), dpkg-gensymbols(1).

2026-03-06 1.23.7-dirty