.\" -*- mode: troff; coding: utf-8 -*- .\" Automatically generated by Pod::Man v6.0.2 (Pod::Simple 3.45) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>. .ie n \{\ . ds C` "" . ds C' "" 'br\} .el\{\ . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Required to disable full justification in groff 1.23.0. .if n .ds AD l .\" ======================================================================== .\" .IX Title "dpkg-shlibdeps 1" .TH dpkg-shlibdeps 1 2026-03-06 1.23.7-dirty "dpkg suite" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "نام (NAME)" dpkg\-shlibdeps \- تولیدکننده وابستگی‌های کتابخانه اشتراکی .SH "خلاصه دستور (SYNOPSIS)" .IX Header "خلاصه دستور (SYNOPSIS)" \&\fBdpkg\-shlibdeps\fR [\fIگزینه\fR...] [\fB\-e\fR] \fIفایل‌اجرایی\fR [\fIگزینه\fR...] .SH "توضیحات (DESCRIPTION)" .IX Header "توضیحات (DESCRIPTION)" دستور \&\fBdpkg\-shlibdeps\fR وابستگی‌های کتابخانه‌های اشتراکی را برای فایل‌های اجرایی مشخص‌شده در آرگومان‌هایش محاسبه می‌کند. وابستگی‌ها به فایل متغیرهای جایگزینی \&\fBdebian/substvars\fR با نام متغیرهای \&\fBshlibs:\fR\fIdependency\-field\fR اضافه می‌شوند که در آن \&\fIdependency\-field\fR نام فیلد وابستگی است. هر متغیر دیگری که با \&\fBshlibs:\fR آغاز شود از فایل حذف می‌گردد. .PP دستور \&\fBdpkg\-shlibdeps\fR دو منبع اطلاعاتی ممکن برای تولید اطلاعات وابستگی دارد: یا فایل‌های \&\fIsymbols\fR یا فایل‌های \&\fIshlibs\fR. برای هر باینری که توسط \&\fBdpkg\-shlibdeps\fR تحلیل می‌شود، فهرستی از کتابخانه‌هایی که باینری به آن‌ها پیوند (link) خورده است پیدا می‌شود. سپس برای هر کتابخانه، فایل \&\fIsymbols\fR یا فایل \&\fIshlibs\fR بررسی می‌شود (اگر فایل نخست وجود نداشته باشد یا اگر debian/shlibs.local حاوی وابستگی مربوطه باشد). انتظار می‌رود هر دو فایل توسط بستهٔ کتابخانه ارائه شوند و بنابراین باید به‌صورت /var/lib/dpkg/info/\fIpackage\fR.\fIsymbols\fR یا /var/lib/dpkg/info/\fIpackage\fR.\fIshlibs\fR در دسترس باشند. نام بسته در دو مرحله شناسایی می‌شود: یافتن فایل کتابخانه روی سیستم (جستجو در همان دایرکتوری‌هایی که \fBld.so\fR استفاده می‌کند)، و سپس استفاده از \&\fBdpkg \-S\fR \fIlibrary\-file\fR جهت جستجوی بسته‌ای که کتابخانه را ارائه می‌دهد. .SS "فایل‌های Symbols (Symbols files)" .IX Subsection "فایل‌های Symbols (Symbols files)" فایل‌های symbols با ارائه حداقل وابستگی برای هر نمادی (symbol) که کتابخانه صادر می‌کند (export)، اطلاعات وابستگی دقیق‌تری را در بر دارند. اسکریپت تلاش می‌کند فایل symbols مرتبط با یک بستهٔ کتابخانه را در مکان‌های زیر پیدا کند (اولین تطابق استفاده می‌شود): .IP debian/*/DEBIAN/symbols 4 .IX Item "debian/*/DEBIAN/symbols" اطلاعات کتابخانه اشتراکی تولیدشده توسط فرایند ساخت جاری که \&\fBdpkg\-shlibdeps\fR را نیز فراخوانی کرده است. آن‌ها توسط \&\fBdpkg\-gensymbols\fR\|(1) تولید می‌شوند. آن‌ها تنها در صورتی استفاده می‌شوند که کتابخانه در درخت ساخت یک بسته یافت شود. فایل symbols در آن درخت ساخت بر فایل‌های symbols سایر بسته‌های باینری اولویت دارد. .IP /etc/dpkg/symbols/\fIpackage\fR.symbols.\fIarch\fR 4 .IX Item "/etc/dpkg/symbols/package.symbols.arch" .PD 0 .IP /etc/dpkg/symbols/\fIpackage\fR.symbols 4 .IX Item "/etc/dpkg/symbols/package.symbols" .PD اطلاعات بازنویسی وابستگی کتابخانه اشتراکی برای کل سیستم. \&\fIarch\fR معماری سیستم جاری است (که از طریق \&\fBdpkg\-architecture \-qDEB_HOST_ARCH\fR به دست می‌آید). .IP "خروجی دستور \(lq\fBdpkg\-query \-\-control\-path\fR \fIpackage\fR symbols\(rq" 4 .IX Item "خروجی دستور \(lqdpkg-query --control-path package symbols\(rq" اطلاعات وابستگی کتابخانه اشتراکی ارائه‌شده توسط بسته. مگر اینکه توسط \&\fB\-\-admindir\fR بازنویسی شود، این فایل‌ها در /var/lib/dpkg قرار دارند. .PP هنگام پویش نمادهای استفاده‌شده توسط تمام باینری‌ها، \&\fBdpkg\-shlibdeps\fR (بزرگ‌ترین) حداقل نسخهٔ مورد نیاز برای هر کتابخانه را به خاطر می‌سپارد. در پایان فرایند، قادر است حداقل وابستگی را برای هر کتابخانهٔ استفاده‌شده بنویسد (به شرطی که اطلاعات فایل‌های \fIsymbols\fR دقیق باشند). .PP به‌عنوان یک اقدام احتیاطی، یک فایل symbols می‌تواند یک فیلد فرااطلاعاتی \&\fBBuild\-Depends\-Package\fR یا \&\fBBuild\-Depends\-Packages\fR ارائه دهد و \&\fBdpkg\-shlibdeps\fR حداقل نسخه مورد نیاز توسط بستهٔ متناظر را در فیلد \&\fBBuild\-Depends\fR استخراج کرده و در صورتی که این نسخه بالاتر از حداقل نسخهٔ محاسبه‌شده از طریق پویش نمادها باشد، از آن استفاده خواهد کرد. .SS "فایل‌های Shlibs (Shlibs files)" .IX Subsection "فایل‌های Shlibs (Shlibs files)" فایل‌های shlibs مستقیماً یک کتابخانه را به یک وابستگی مرتبط می‌کنند (بدون بررسی نمادها). بنابراین اغلب سخت‌گیرانه‌تر از نیاز واقعی است، اما بسیار ایمن بوده و مدیریت آن آسان است. .PP وابستگی‌های یک کتابخانه در چندین مکان جستجو می‌شوند. اولین فایلی که اطلاعات کتابخانهٔ مورد نظر را ارائه دهد استفاده می‌شود: .IP debian/shlibs.local 4 .IX Item "debian/shlibs.local" اطلاعات بازنویسی وابستگی کتابخانه اشتراکی محلی بسته. .IP /etc/dpkg/shlibs.override 4 .IX Item "/etc/dpkg/shlibs.override" اطلاعات بازنویسی وابستگی کتابخانه اشتراکی برای کل سیستم. .IP debian/*/DEBIAN/shlibs 4 .IX Item "debian/*/DEBIAN/shlibs" اطلاعات کتابخانه اشتراکی تولیدشده توسط فرایند ساخت جاری که \&\fBdpkg\-shlibdeps\fR را نیز فراخوانی کرده است. آن‌ها تنها در صورتی استفاده می‌شوند که کتابخانه در درخت ساخت یک بسته یافت شود. فایل shlibs در آن درخت ساخت بر فایل‌های shlibs سایر بسته‌های باینری اولویت دارد. .IP "خروجی دستور \(lq\fBdpkg\-query \-\-control\-path\fR \fIpackage\fR shlibs\(rq" 4 .IX Item "خروجی دستور \(lqdpkg-query --control-path package shlibs\(rq" اطلاعات وابستگی کتابخانه اشتراکی ارائه‌شده توسط بسته. مگر اینکه توسط \&\fB\-\-admindir\fR بازنویسی شود، این فایل‌ها در /var/lib/dpkg قرار دارند. .IP /etc/dpkg/shlibs.default 4 .IX Item "/etc/dpkg/shlibs.default" اطلاعات پیش‌فرض وابستگی کتابخانه اشتراکی برای کل سیستم. .PP وابستگی‌های استخراج‌شده سپس مستقیماً استفاده می‌شوند (مگر اینکه به دلیل شناسایی به‌عنوان تکراری یا ضعیف‌تر بودن از وابستگی دیگر فیلتر شوند). .SH "گزینه‌ها (OPTIONS)" .IX Header "گزینه‌ها (OPTIONS)" دستور \&\fBdpkg\-shlibdeps\fR آرگومان‌های غیرگزینه‌ای را به‌عنوان نام فایل‌های اجرایی تفسیر می‌کند، درست مانند اینکه با \&\fB\-e\fR\fIexecutable\fR مشخص شده باشند. .IP \fB\-e\fR\fIexecutable\fR 4 .IX Item "-eexecutable" شامل کردن وابستگی‌های متناسب با کتابخانه‌های اشتراکی مورد نیاز برای \&\fIexecutable\fR. این گزینه می‌تواند چندین بار استفاده شود. .IP \fB\-l\fR\fIdirectory\fR 4 .IX Item "-ldirectory" افزودن \&\fIdirectory\fR به ابتدای فهرست دایرکتوری‌ها جهت جستجوی کتابخانه‌های اشتراکی اختصاصی (از dpkg 1.17.0). این گزینه می‌تواند چندین بار استفاده شود. .Sp \&\fBنکته\fR: به‌جای تنظیم \&\fBLD_LIBRARY_PATH\fR از این گزینه استفاده کنید، زیرا آن متغیر محیطی برای کنترل پیونددهنده زمان اجرا استفاده می‌شود و سوءاستفاده از آن جهت تنظیم مسیرهای کتابخانه اشتراکی در زمان ساخت، مثلاً در کامپایل متقابل (cross-compiling) می‌تواند مشکل‌ساز شود. .IP \fB\-d\fR\fIdependency\-field\fR 4 .IX Item "-ddependency-field" افزودن وابستگی‌ها به فیلد وابستگی فایل کنترل \&\fIdependency\-field\fR. (وابستگی‌های این فیلد در متغیر \&\fBshlibs:\fR\fIdependency\-field\fR قرار می‌گیرند.) .Sp گزینهٔ \&\fB\-d\fR\fIdependency\-field\fR روی تمام فایل‌های اجرایی پس از این گزینه اعمال می‌شود تا زمانی که گزینهٔ \&\fB\-d\fR\fIdependency\-field\fR بعدی ظاهر گردد. مقدار پیش‌فرض \&\fIdependency\-field\fR برابر با \&\fBDepends\fR است. .Sp اگر مدخل وابستگی یکسانی (یا مجموعه‌ای از گزینه‌های جایگزین) در بیش از یکی از نام‌های فیلد وابستگی شناخته‌شده شامل \&\fBPre\-Depends\fR، \&\fBDepends\fR، \&\fBRecommends\fR، \&\fBEnhances\fR یا \&\fBSuggests\fR ظاهر شود، \&\fBdpkg\-shlibdeps\fR به‌طور خودکار وابستگی را از تمام فیلدها به‌جز فیلدی که نشان‌دهندهٔ مهم‌ترین وابستگی‌ها است، حذف می‌کند. .IP \fB\-\-package=\fR\fIpackage\fR 4 .IX Item "--package=package" تعریف نام بسته. .Sp در صورت مشخص شدن، نام بسته برای تغییر مقادیر پیش‌فرض بر اساس فرااطلاعات بستهٔ باینری در \&\fIdebian/control\fR استفاده خواهد شد. .Sp اگر بسته \&\fBEssential: yes\fR باشد، فیلد وابستگی پیش‌فرض \&\fBPre\-Depends\fR خواهد بود، در غیر این صورت \&\fBDepends\fR. نوع بسته پیش‌فرض از فیلد \&\fBPackage\-Type\fR تنظیم می‌شود. بسته به مجموعه بسته‌های مستثنی‌شده توسط \&\fB\-x\fR اضافه می‌شود. .Sp این گزینه از dpkg 1.22.7 پشتیبانی می‌شود. .IP \fB\-p\fR\fIvarname\-prefix\fR 4 .IX Item "-pvarname-prefix" آغاز متغیرهای جایگزینی با \&\fIvarname\-prefix\fR\fB:\fR به‌جای \&\fBshlibs:\fR. به همین ترتیب، هر متغیر جایگزینی موجود که با \&\fIvarname\-prefix\fR\fB:\fR (به‌جای \&\fBshlibs:\fR) آغاز شود، از فایل متغیرهای جایگزینی حذف می‌گردد. .IP \fB\-O\fR[\fIfilename\fR] 4 .IX Item "-O[filename]" چاپ تنظیمات متغیرهای جایگزینی در خروجی استاندارد (یا در صورت مشخص شدن، در \&\fIfilename\fR، از dpkg 1.17.2)، به‌جای افزوده شدن به فایل متغیرهای جایگزینی (به‌طور پیش‌فرض \&\fBdebian/substvars\fR). .IP \fB\-t\fR\fItype\fR 4 .IX Item "-ttype" اولویت دادن به اطلاعات وابستگی کتابخانه اشتراکی برچسب‌خورده برای نوع بسته داده‌شده. اگر هیچ اطلاعات برچسب‌خورده‌ای موجود نباشد، به اطلاعات بدون برچسب بازمی‌گردد. نوع بستهٔ پیش‌فرض \&\fBdeb\fR است. اطلاعات وابستگی کتابخانه اشتراکی برای یک نوع مشخص، با اضافه کردن نام نوع، یک دونقطه و فاصله خالی در ابتدای آن برچسب‌گذاری می‌شود. .IP \fB\-L\fR\fIlocal\-shlibs\-file\fR 4 .IX Item "-Llocal-shlibs-file" خواندن اطلاعات بازنویسی وابستگی کتابخانه اشتراکی از \&\fIlocal\-shlibs\-file\fR به‌جای \&\fBdebian/shlibs.local\fR. .IP \fB\-T\fR\fIsubstvars\-file\fR 4 .IX Item "-Tsubstvars-file" نوشتن متغیرهای جایگزینی در \&\fIsubstvars\-file\fR؛ پیش‌فرض \&\fBdebian/substvars\fR است. .IP \fB\-v\fR 4 .IX Item "-v" فعال کردن حالت پرگو (از dpkg 1.14.8). پیام‌های متعددی برای توضیح کارهایی که \&\fBdpkg\-shlibdeps\fR انجام می‌دهد نمایش داده می‌شود. .IP \fB\-x\fR\fIpackage\fR 4 .IX Item "-xpackage" مستثنی کردن بسته از وابستگی‌های تولیدشده (از dpkg 1.14.8). این گزینه برای جلوگیری از خودوابستگی (self-dependencies) در بسته‌هایی که باینری‌های ELF (فایل‌های اجرایی یا افزونه‌های کتابخانه) ارائه می‌دهند و از کتابخانه‌ای موجود در همان بسته استفاده می‌کنند مفید است. این گزینه می‌تواند چندین بار برای مستثنی کردن چند بسته استفاده شود. .IP \fB\-S\fR\fIpackage\-build\-dir\fR 4 .IX Item "-Spackage-build-dir" هنگام تلاش برای یافتن یک کتابخانه، ابتدا \&\fIpackage\-build\-dir\fR را بررسی می‌کند (از dpkg 1.14.15). این مورد زمانی مفید است که بستهٔ منبع، چندین نگارش (flavor) مختلف از یک کتابخانه یکسان را می‌سازد و می‌خواهید اطمینان حاصل کنید که وابستگی را از یک بسته باینری مشخص دریافت می‌کنید. می‌توانید از این گزینه چندین بار استفاده کنید: دایرکتوری‌ها به همان ترتیب قبل از دایرکتوری‌های سایر بسته‌های باینری امتحان خواهند شد. .IP \fB\-I\fR\fIpackage\-build\-dir\fR 4 .IX Item "-Ipackage-build-dir" هنگام جستجوی فایل‌های shlibs، symbols و کتابخانه‌های اشتراکی، \&\fIpackage\-build\-dir\fR نادیده گرفته می‌شود (از dpkg 1.18.5). می‌توانید چندین بار از این گزینه استفاده کنید. .IP \fB\-\-ignore\-missing\-info\fR 4 .IX Item "--ignore-missing-info" در صورتی که اطلاعات وابستگی برای یک کتابخانه اشتراکی یافت نشود، با شکست متوقف نمی‌شود (از dpkg 1.14.8). استفاده از این گزینه توصیه نمی‌شود؛ تمام کتابخانه‌ها باید اطلاعات وابستگی ارائه دهند (چه با فایل‌های shlibs، چه با فایل‌های symbols)، حتی اگر هنوز توسط بسته‌های دیگر استفاده نشده باشند. .IP \fB\-\-warnings=\fR[\fIvalue\fR|\fIstring\fR[,...]] 4 .IX Item "--warnings=[value|string[,...]]" انتخاب مجموعه‌ای از هشدارها که می‌توانند توسط \&\fBdpkg\-shlibdeps\fR صادر شوند (از dpkg 1.14.17). .Sp هشدارها را می‌توان از طریق فهرستی از نام‌های نمادین جداشده با کاما (از dpkg 1.22.12)، یا از روی یک \&\fIvalue\fR که یک فیلد بیتی را برای این هشدارها مشخص می‌کند، انتخاب کرد. .RS 4 .IP "symbol\-not\-found (بیت 0، مقدار 1)" 4 .IX Item "symbol-not-found (بیت 0، مقدار 1)" هشدار \(lqنماد \fIsym\fR استفاده‌شده توسط \fIbinary\fR در هیچ‌یک از کتابخانه‌ها یافت نشد\(rq را انتخاب می‌کند. .Sp به‌طور پیش‌فرض فعال است. .IP "avoidable\-dependency (بیت 1، مقدار 2)" 4 .IX Item "avoidable-dependency (بیت 1، مقدار 2)" هشدار \(lqبسته می‌تواند از یک وابستگی بیهوده اجتناب کند\(rq را انتخاب می‌کند. .Sp به‌طور پیش‌فرض فعال است. .IP "useless\-linkage (بیت 2، مقدار 4)" 4 .IX Item "useless-linkage (بیت 2، مقدار 4)" هشدار \(lq\fIbinary\fR نباید به \fIlibrary\fR پیوند داده شود\(rq را انتخاب می‌کند. .RE .IP \fB\-\-admindir=\fR\fIdir\fR 4 .IX Item "--admindir=dir" تغییر مکان پایگاه‌دادهٔ \&\fBdpkg\fR (از dpkg 1.14.0). مکان پیش‌فرض \&\fI/var/lib/dpkg\fR است. .IP "\fB\-?\fR, \fB\-\-help\fR" 4 .IX Item "-?, --help" نمایش پیام راهنمای نحوه استفاده و خروج. .IP \fB\-\-version\fR 4 .IX Item "--version" نمایش نسخه و خروج. .SH "محیط (ENVIRONMENT)" .IX Header "محیط (ENVIRONMENT)" .IP \fBDEB_HOST_ARCH\fR 4 .IX Item "DEB_HOST_ARCH" معماری میزبان را تنظیم می‌کند. این مورد روی اشیاء و فایل‌های symbols که جستجو می‌شوند و مسیرهای جستجوی پیش‌فرض آن‌ها تأثیر می‌گذارد. .IP \fBDPKG_COLORS\fR 4 .IX Item "DPKG_COLORS" حالت رنگ را تنظیم می‌کند (از dpkg 1.18.5). مقادیر پذیرفته‌شده در حال حاضر عبارتند از: \&\fBauto\fR (پیش‌فرض)، \&\fBalways\fR و \&\fBnever\fR. .IP \fBDPKG_NLS\fR 4 .IX Item "DPKG_NLS" در صورت تنظیم، برای تصمیم‌گیری در مورد فعال‌سازی پشتیبانی از زبان بومی (Native Language Support)، که به عنوان پشتیبانی بین‌المللی‌سازی (یا i18n) نیز شناخته می‌شود، استفاده خواهد شد (از dpkg 1.19.0). مقادیر پذیرفته‌شده عبارتند از: \&\fB0\fR و \&\fB1\fR (پیش‌فرض). .SH "خطاها و هشدارها (DIAGNOSTICS)" .IX Header "خطاها و هشدارها (DIAGNOSTICS)" .SS "هشدارها (Warnings)" .IX Subsection "هشدارها (Warnings)" از آنجایی که \&\fBdpkg\-shlibdeps\fR مجموعه نمادهای استفاده‌شده توسط هر باینری در بستهٔ تولیدشده را تحلیل می‌کند، می‌تواند در چندین مورد هشدار صادر کند. این هشدارها شما را از مواردی که در بسته قابل بهبود است مطلع می‌کنند. در بیشتر موارد، این بهینه‌سازی‌ها مستقیماً مربوط به سورس‌های بالادستی (upstream) است. به ترتیب اهمیت کاهشی، هشدارهای مختلفی که ممکن است با آن‌ها مواجه شوید در ادامه آمده است: .IP "\fBsymbol\fR \fIsym\fR \fBused by\fR \fIbinary\fR \fBfound in none of the libraries.\fR" 4 .IX Item "symbol sym used by binary found in none of the libraries." نماد مشخص‌شده در کتابخانه‌هایی که به باینری پیوند خورده‌اند یافت نشد. به احتمال زیاد \&\fIbinary\fR یک کتابخانه است و باید در طول فرایند ساخت به یک کتابخانهٔ اضافی پیوند داده شود (گزینهٔ \&\fB\-l\fR\fIlibrary\fR در پیونددهنده). .IP "\fIbinary\fR \fBcontains an unresolvable reference to symbol\fR \fIsym\fR\fB: it\*(Aqs probably a plugin\fR" 4 .IX Item "binary contains an unresolvable reference to symbol sym: it's probably a plugin" نماد مشخص‌شده در کتابخانه‌هایی که به باینری پیوند خورده‌اند یافت نشد. به احتمال زیاد \&\fIbinary\fR یک افزونه (plugin) است و نماد احتمالاً توسط برنامه‌ای که این افزونه را بارگیری می‌کند فراهم می‌شود. از نظر تئوری یک افزونه هیچ SONAME ندارد، اما این باینری دارای یک SONAME است و به همین دلیل نمی‌تواند به وضوح به عنوان افزونه شناسایی شود. با این حال، قرار گرفتن باینری در یک دایرکتوری غیرعمومی نشانهٔ قوی بر این است که یک کتابخانهٔ اشتراکی عادی نیست. اگر این باینری واقعاً یک افزونه است، این هشدار را نادیده بگیرید. اما همیشه این احتمال وجود دارد که یک کتابخانه واقعی باشد و برنامه‌هایی که به آن پیوند خورده‌اند از RPATH استفاده می‌کنند تا بارگذار پویا (dynamic loader) آن را پیدا کند. در این صورت، کتابخانه معیوب است و باید اصلاح شود. .IP "\fBpackage could avoid a useless dependency if\fR \fIbinary\fR \fBwas not linked against\fR \fIlibrary\fR \fB(it uses none of the library\*(Aqs symbols)\fR" 4 .IX Item "package could avoid a useless dependency if binary was not linked against library (it uses none of the library's symbols)" هیچ‌یک از فایل‌های باینری که به \&\fIlibrary\fR پیوند خورده‌اند از نمادهای ارائه‌شده توسط این کتابخانه استفاده نمی‌کنند. با اصلاح تمام فایل‌های باینری، می‌توانید از وابستگی مرتبط با این کتابخانه اجتناب کنید (مگر اینکه همین وابستگی توسط کتابخانهٔ دیگری که واقعاً استفاده می‌شود نیز تولید شده باشد). .IP "\fBpackage could avoid a useless dependency if\fR \fIbinaries\fR \fBwere not linked against\fR \fIlibrary\fR \fB(they use none of the library\*(Aqs symbols)\fR" 4 .IX Item "package could avoid a useless dependency if binaries were not linked against library (they use none of the library's symbols)" دقیقاً مشابه هشدار بالا، اما برای چندین باینری. .IP "\fIbinary\fR \fBshould not be linked against\fR \fIlibrary\fR \fB(it uses none of the library\*(Aqs symbols)\fR" 4 .IX Item "binary should not be linked against library (it uses none of the library's symbols)" فایل \&\fIbinary\fR به کتابخانه‌ای پیوند خورده است که به آن نیازی ندارد. این یک مشکل اساسی نیست، اما پیوند ندادن این کتابخانه به این باینری می‌تواند بهبودهای جزئی در عملکرد زمان بارگیری باینری ایجاد کند. این هشدار همان اطلاعات هشدار قبلی را بررسی می‌کند، اما به‌جای بررسی سراسری روی تمام باینری‌های تحلیل‌شده، این بررسی را برای هر باینری به‌صورت جداگانه انجام می‌دهد. .SS "خطاها (Errors)" .IX Subsection "خطاها (Errors)" دستور \&\fBdpkg\-shlibdeps\fR در صورتی که نتواند کتابخانه عمومی مورد استفاده توسط یک باینری را پیدا کند یا اگر این کتابخانه فاقد اطلاعات وابستگی مرتبط باشد (چه فایل shlibs و چه فایل symbols)، با شکست مواجه می‌شود. یک کتابخانه عمومی دارای SONAME بوده و شماره نسخه دارد (libsomething.so.\fIX\fR). یک کتابخانه اختصاصی (مانند یک افزونه) نباید دارای SONAME باشد و نیازی به نسخه ندارد. .IP "\fBcouldn\*(Aqt find library\fR \fIlibrary\-soname\fR \fBneeded by\fR \fIbinary\fR \fB(its RPATH is \*(Aq\fR\fIrpath\fR\fB\*(Aq)\fR" 4 .IX Item "couldn't find library library-soname needed by binary (its RPATH is 'rpath')" فایل \&\fIbinary\fR از کتابخانه‌ای به نام \&\fIlibrary\-soname\fR استفاده می‌کند اما \&\fBdpkg\-shlibdeps\fR نتوانسته است این کتابخانه را پیدا کند. \&\fBdpkg\-shlibdeps\fR فهرستی از دایرکتوری‌ها را برای بررسی به شرح زیر ایجاد می‌کند: دایرکتوری‌های فهرست‌شده در RPATH باینری، دایرکتوری‌های اضافه‌شده با گزینهٔ \&\fB\-l\fR، دایرکتوری‌های فهرست‌شده در متغیر محیطی \&\fBLD_LIBRARY_PATH\fR، دایرکتوری‌های معماری چندگانه (cross multiarch مانند /lib/arm64\-linux\-gnu و /usr/lib/arm64\-linux\-gnu)، دایرکتوری‌های عمومی استاندارد (/lib و /usr/lib)، دایرکتوری‌های فهرست‌شده در /etc/ld.so.conf و دایرکتوری‌های قدیمی multilib (مانند /lib32، /usr/lib32، /lib64 و /usr/lib64). سپس این دایرکتوری‌ها را در درخت ساخت بستهٔ باینریِ در حال تحلیل، در درخت ساخت بسته‌های مشخص‌شده با گزینهٔ خط فرمان \&\fB\-S\fR، در درخت ساخت سایر بسته‌هایی که حاوی فایل DEBIAN/shlibs یا DEBIAN/symbols هستند و در نهایت در دایرکتوری ریشه (root) بررسی می‌کند. اگر کتابخانه در هیچ‌یک از این دایرکتوری‌ها یافت نشود، این خطا صادر می‌گردد. .Sp اگر کتابخانهٔ یافت‌نشده در یک دایرکتوری اختصاصی از همان بسته باشد، باید آن دایرکتوری را با \&\fB\-l\fR اضافه کنید. اگر در بستهٔ باینری دیگری قرار دارد که در حال ساخت است، باید مطمئن شوید که فایل shlibs/symbols این بسته قبلاً ایجاد شده است و اگر آن هم در دایرکتوری اختصاصی است، \&\fB\-l\fR حاوی دایرکتوری مناسب باشد. .IP "\fBno dependency information found for\fR \fIlibrary\-file\fR \fB(used by\fR \fIbinary\fR\fB).\fR" 4 .IX Item "no dependency information found for library-file (used by binary)." کتابخانهٔ مورد نیاز برای \&\fIbinary\fR توسط \&\fBdpkg\-shlibdeps\fR در \&\fIlibrary\-file\fR یافت شده است، اما \&\fBdpkg\-shlibdeps\fR نتوانسته است هیچ اطلاعات وابستگی برای آن کتابخانه پیدا کند. برای یافتن وابستگی، تلاش کرده است با کمک \&\fBdpkg \-S\fR \fIlibrary\-file\fR کتابخانه را به یک بستهٔ دبیان نگاشت کند. سپس فایل‌های shlibs و symbols مربوطه را در /var/lib/dpkg/info/ و در درخت‌های ساخت بسته‌های مختلف (debian/*/DEBIAN/) بررسی کرده است. .Sp این شکست می‌تواند ناشی از یک فایل shlibs یا symbols نامعتبر یا ناموجود در بستهٔ کتابخانه باشد. همچنین ممکن است زمانی رخ دهد که کتابخانه در همان بستهٔ منبع ساخته می‌شود و فایل‌های shlibs هنوز ایجاد نشده‌اند (که در این صورت باید debian/rules را اصلاح کنید تا پیش از فراخوانی \&\fBdpkg\-shlibdeps\fR فایل‌های shlibs را بسازد). یک RPATH نادرست نیز می‌تواند منجر به یافتن کتابخانه تحت یک نام غیرکانونی شود (مثال: /usr/lib/openoffice.org/../lib/libssl.so.0.9.8 به‌جای /usr/lib/libssl.so.0.9.8) که به هیچ بسته‌ای مرتبط نیست. \&\fBdpkg\-shlibdeps\fR با تلاش برای بازگشت به یک نام کانونی (با استفاده از \&\fBrealpath\fR\|(3)) سعی می‌کند این مشکل را دور بزند، اما این روش ممکن است همیشه کارساز نباشد. همیشه بهتر است RPATH باینری را پاکسازی کنید تا از بروز مشکلات جلوگیری شود. .Sp فراخوانی \&\fBdpkg\-shlibdeps\fR در حالت پرگو \&\fB(\-v)\fR اطلاعات بسیار بیشتری در مورد مکان‌هایی که برای یافتن اطلاعات وابستگی تلاش کرده است ارائه می‌دهد. اگر علت بروز این خطا را متوجه نمی‌شوید، این گزینه می‌تواند مفید باشد. .SH "همچنین ببینید (SEE ALSO)" .IX Header "همچنین ببینید (SEE ALSO)" \&\fBdeb\-substvars\fR\|(5)، \&\fBdeb\-shlibs\fR\|(5)، \&\fBdeb\-symbols\fR\|(5)، \&\fBdpkg\-gensymbols\fR\|(1).