it-swarm.asia

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

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

286
Jay Conrod
apt-file search filename

أو

apt-file search /path/to/file


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

Sudo apt-get install apt-file

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

Sudo apt-file update
235
John T

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

dpkg -S /usr/bin/ls

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

387
splattne

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

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

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

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

18
jamuraa

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

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

لقد وجدت Wajig ...

wajig whichpackage /path/to/file 

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

wajig whichpackage /etc/apt/sources.list

إن Wajig عبارة عن أداة سطر أوامر أو أداة تحكم سهلة الاستخدام والتي تلتف جميع مزايا apt-get و dpkg التي لم ترغب أبدًا في تعلمها. .

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

apt-get install wajig

يعتمد هذا الأمر "أي حزمة" نفسه على الملف المناسب

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

Sudo wajig update

Sudo apt-file update

(والسوبر البقر ، عيد الفصح egss؟!)

4
pete_m

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

2
kiri

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

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

0
Ravi Agarwal

تمنحك الحزمة command-not-found تلميحات حول الأوامر المحتملة واسم حزمة دبيان. وهو يعمل عن طريق كتابة الأمر في باش شل والنظر في ناتجها.

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

[email protected]:~ 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

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

[email protected]:~ 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
erwing