كثيراً ما أجد نفسي في عداد المفقودين من برنامج أو صفحة رجل أو ملف آخر عند العمل على نظام Ubuntu 8.04. هل هناك أي طريقة بسيطة للبحث عن الحزمة التي تحتوي على ملف معين (سواء كان مثبتًا بالفعل أم لا)؟ ربما بعض الخيار الغامض ل apt أو dpkg؟
apt-file search filename
أو
apt-file search /path/to/file
لتثبيت apt-file
، استخدم:
Sudo apt-get install apt-file
ستحتاج إلى تحديث قاعدة البيانات الخاصة بها قبل أن تتمكن من استخدامها:
Sudo apt-file update
(Debian/Ubuntu) اكتشف الحزمة التي ينتمي إليها الملف :
dpkg -S /usr/bin/ls
يطابق "dpkg -S" فقط السلسلة التي تزودها بها ، لذلك فقط استخدام "ls" كوسيطة تتطابق مع أي ملف من أي حزمة لها "ls" في أي مكان في اسم الملف. لذلك عادة ما تكون فكرة جيدة استخدام مسار مطلق. يمكنك أن ترى في المثال الثاني أن 12 ألف ملف معروفة بـ dpkg تتطابق مع السلسلة العارية 'ls'.
package.debian.org هو ما أستخدمه دائمًا لإنجاز هذه المهمة. إنه متفوق على ملف apt لأنه يمكنه العثور على أجزاء من أسماء الملفات أيضًا. يرتبط أيضًا بقائمة الحزم الرئيسية التي ستدرج الأوصاف والأخطاء وغيرها. ليست مفيدة من سطر الأوامر ، لكنها لا تزال مفيدة للغاية.
للسرعة ، قمت بوضع إشارة مرجعية على عنوان url:
http://packages.debian.org/search?searchon=contents&keywords=%s&mode=filename&suite=unstable&Arch=any
في Firefox ، وأضفت "debfind" ككلمة رئيسية (انقر فوق "المزيد" في مدير الإشارات باستخدامها في ضوء ذلك) ، لذا يمكنني فقط كتابة "debfind" وستعمل. يمكنك تغيير "مجموعة" من غير مستقرة إلى مستقرة أو اختبار إذا أردت ، لإصدارات أخرى من التوزيع.
يمكنك أيضا استخدام dlocate. من صفحة الرجل ؛
$ dlocate [ PATTERN ]
List all records where either the package name or the filename matches PATTERN.
لقد وجدت 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؟!)
Simmilar للإجابة jamuraa لـ Debian ، يمكنك أيضًا الانتقال إلى http://packages.ubuntu.com/ لـ Ubuntu. سيكون عليك التمرير لأسفل قليلاً للعثور على "البحث في محتويات الحزم" مربع البحث حيث يمكنك إدخال مسار الملف.
حاول البحث عن الملفات باستخدام http://www.kodkast.com/applications/find-which-package-file-belongs-to
هذا تطبيق للبحث عن الملفات المضمنة في حزم rpms/linux مختلفة ، وهو مفيد للغاية عندما لا يكون لديك rpm مثبتًا على جهازك.
تمنحك الحزمة 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