سؤال ابحث عن الحزمة التي ينتمي إليها ملف في Ubuntu / Debian؟


كثيرا ما أجد نفسي في عداد المفقودين برنامج ، صفحة رجل ، أو ملف آخر عند العمل على نظام أوبونتو 8.04 بلدي. هل هناك أي طريقة بسيطة للبحث عن حزمة تحتوي على ملف معين (سواء تم تثبيته بالفعل أم لا)؟ ربما بعض خيار غامض ل apt أو dpkg؟


261
2017-07-22 19:06


الأصل


نفس الشيء على أوبونتو: askubuntu.com/questions/481/... - Ciro Santilli 新疆改造中心 六四事件 法轮功
dpkg -S /path/to/fileإذا كان لديك حزمة مثبتة. - Zaz


الأجوبة:


apt-file search filename

أو

apt-file search /path/to/file


لتثبيت apt-file، استعمال:

sudo apt-get install apt-file

ستحتاج إلى تحديث قاعدة البيانات الخاصة به قبل أن تتمكن من استخدامها:

sudo apt-file update

215
2017-07-22 19:08



لمعلوماتك: يبدو أن apt-file يعتمد على المحتويات-amd64.gz المقدمة من المستودعات. وليس كل repos الطرف الثالث توفر هذا الملف. - Jokester
لم يعمل بالنسبة لي. لقد قمت بتحديث قاعدة البيانات ولكنها لا ترجع أي شيء. dpkg -S يعمل كما هو موضح أدناه. - Northys


(Debian / Ubuntu) اكتشف الحزمة التي ينتمي إليها الملف:

dpkg -S /usr/bin/ls

"dpkg -S" يتطابق فقط مع السلسلة التي تريدها   توفيره ، وذلك باستخدام "ls" باعتباره   حجة تطابق أي ملف من أي   الحزمة التي لديها 'ليرة سورية' في أي مكان في   اسم الملف. لذلك عادة ما تكون فكرة جيدة   لاستخدام مسار مطلق. يمكنك ان ترى   في المثال الثاني أن 12 ألف   الملفات التي تعرفها dpkg تتطابق مع   سلسلة عارية 'ليرة سورية'.


353
2017-07-22 19:13



هذا فقط إذا كانت الملفات مثبتة بالفعل - John T
أضع ثقتي في apt-file، هذا أيضًا يجد الحزمة إلى ملف إذا تم تثبيته يدويًا عبر dpkg -i! - tanius
إذا حصلت dpkg-query: لم يتم العثور على مسار مطابق للنمط  جرب هذا: dpkg -S "$(readlink -fn "$(which rename)")". - Pablo Bianchi
غريب ، هذا لم يعمل بالنسبة لي: dpkg-query: no path found matching pattern /usr/bin/java، على الرغم من وجود ملف في /usr/bin/java - nnyby


packages.debian.org هو ما أستخدمه دائمًا لإنجاز هذه المهمة. إنه متفوق على apt-file لأنه يمكن أن يجد أجزاء من أسماء الملفات كذلك. كما أنه مرتبط بقائمة الحزم الرئيسية التي ستعرض الأوصاف ، الأخطاء ، إلخ. الكل في كل موقع جيد. ليست مفيدة من سطر الأوامر ، ولكن لا تزال مفيدة للغاية.

للسرعة ، وضعت إشارة مرجعية على عنوان url:

http://packages.debian.org/search?searchon=contents&keywords=%s&mode=filename&suite=unstable&arch=any

في فايرفوكس ، وأضاف "debfind" ككلمة رئيسية (انقر "أكثر" في مدير الإشارات المرجعية مع أنها مظلمة) ، لذلك يمكنني فقط كتابة "debfind" وسيعمل. يمكنك تغيير "الجناح" من "غير مستقر" إلى "ثابت" أو اختبار إذا كنت ترغب في ذلك ، في إصدارات أخرى من التوزيع.


17
2017-07-22 20:07



لا يعمل مع repos مخصص بالرغم من ذلك. - Ctrl-C
اختيار ضعيف فيما يتعلق بالأتمتة. - Alexander Shcheblikin


يمكنك أيضا استخدام dlocate. من صفحة الرجل

$ dlocate [ PATTERN ]
List all records where either the package name or the filename matches PATTERN.

11
2017-08-08 19:30



dlocate هو أيضا طريقي المفضل ، موثوق للغاية. - Avio
Avio dlocate لا تجد حزمة مثبتة مؤخرا إلا إذا قمت بتشغيل sudo update-dlocatedb أول. يتم تشغيل الأمر تلقائيًا يوميًا في /etc/cron.daily/dlocate - jarno


لقد وجدت Wajig ...

wajig whichpackage /path/to/file 

على سبيل المثال.

wajig whichpackage /etc/apt/sources.list

Wajig هو أداة سطر الأوامر أو وحدة التحكم المفيدة التي تلخص كل الخير apt-get ، dpkg الذي لم ترغب في تعلمه. .

لتثبيت wajig الاستخدام:

apt-get install wajig

هذا الأمر "whichpackage" نفسه يعتمد على apt-file

لا تزال بحاجة إلى تحديث قاعدة البيانات الخاصة به قبل أن تتمكن من استخدامها: - لا أعرف حتى الآن إذا كان wajig يقوم بتحديث wixh يقوم تحديث apt-get أيضًا بتحديث ذاكرة التخزين المؤقت للملف ، ولكن أتوقع أن يحدث ذلك.

sudo wajig update

sudo apt-file update

(والبقرة الكبرى ، عيد الفصح؟)


4
2018-01-14 02:40





Simmilar إلى jamuraa للإجابة عن Debian ، يمكنك أيضا الذهاب إلى http://packages.ubuntu.com/ لأوبونتو. سيكون عليك التمرير لأسفل قليلاً للعثور على "بحث محتويات الحزم" مربع البحث حيث يمكنك إدخال مسار الملف.


2
2017-10-28 10:40



الآن لو كان Raspbian فقط واحد :) - XTL


حاول البحث عن الملفات باستخدام http://www.kodkast.com/applications/find-which-package-file-belongs-to

هذا هو تطبيق للبحث عن الملفات الموجودة في حزم rpms / linux المختلفة ، وهو مفيد للغاية عندما لا يكون لديك rpm مثبتة على جهازك.


0
2017-12-20 00:33



Downvote: الارتباط مقطوع ويبدو أن الارتباط الخاص بحزم RPM في المقام الأول. - tripleee


توفر لك حزمة الأوامر التي لا يتم العثور عليها تلميحات حول الأوامر المحتملة واسم حزمة debian. وهو يعمل عن طريق كتابة الأمر في shell bash وتبحث في الإخراج الخاص به.

على سبيل المثال إذا كان اسم الأمر معروفًا:

zer@ivy:~ 10:45 $ zsh5
The program 'zsh5' is currently not installed.  To run 'zsh5' please ask
your administrator to install the package 'zsh'
zsh5: command not found

وإذا كان الأمر غير معروف ، يتم تطبيق بعض التخمينات:

zer@ivy:~ 09:46 $ zsh
No command 'zsh' found, did you mean:
 Command 'lsh' from package 'lsh-client' (main)
 Command 'osh' from package 'omake' (main)
 Command 'ysh' from package 'libyaml-shell-perl' (main)
 Command 'ssh' from package 'openssh-client' (main)
 Command 'vsh' from package 'crystalspace' (main)
 Command 'dsh' from package 'dsh' (main)
 Command 'ash' from package 'ash' (main)
 Command 'msh' from package 'nmh' (main)
 Command 'zssh' from package 'zssh' (main)
 Command 'qsh' from package 'gridengine-client' (main)
 Command 'sh' from package 'dash' (main)
 Command 'bsh' from package 'bsh' (main)
zsh: command not found

0
2017-11-24 09:59



هذا لا يعمل للملفات التعسفية ، مثل طلب OP. - α CVn
هذا تلميح إشكالي إذا كان البرنامج يقوم بأشياء ضارة ويتم تثبيت IS. مضيفا -h أو --help في النهاية من شأنه أن يساعد قليلا. إذا مضيفا -h في النهاية من شأنه أن يجعل هذا آمن بما فيه الكفاية وأنا أوصي ، ولكن حتى مع ذلك ليست طريقة جيدة لتحقيق ما يطلب OP. - Dr Beco