Pkgfile

از ArchWiki پارسی
پرش به: ناوبری، جستجو

pkgfile ابزاریست برای جست‌و‌جوی فایل‌ها درمیان بسته‌های مخازن رسمی.

نصب

pkgfile را از مخارن اصلی نصب کرده و یا اینکه pkgfile-gitAUR را از AUR نصب کنید. دیتابیس pkgfile را می‌توان با فرمان

# pkgfile -u

همگام‌سازی کرد.

نحوه استفاده

جست‌و‌جوی بسته‌ای که مالک فایل makepkg است:

$ pkgfile makepkg
core/pacman

لیست کردن تمام فایل‌هایی که archlinux-keyring ارائه کرده‌است:

$ pkgfile -l archlinux-keyring
core/archlinux-keyring usr/
core/archlinux-keyring usr/share/
core/archlinux-keyring usr/share/pacman/
core/archlinux-keyring usr/share/pacman/keyrings/
core/archlinux-keyring usr/share/pacman/keyrings/archlinux-revoked
core/archlinux-keyring usr/share/pacman/keyrings/archlinux-trusted
core/archlinux-keyring usr/share/pacman/keyrings/archlinux.gpg

فرمان اخیر را می‌توان با ‎pacman -Ql‎ مقایسه کرد (pacman#Querying package databases) با این فرق که این فرمان برای بسته‌های با تداول کمتر کاربرد دارد.

Command not found

pkgfile شامل یک قلاب "command not found" برای Bash و Zsh است که هنگام وارد کردن یک فرمان ناشناخته، به صورت خودبخود مخزن رسمی را برای یافتن اطلاعاتی راجع به آن جست و جو می‌کند:

$ abiword
abiword may be found in the following packages:
  extra/abiword 3.0.1-2 usr/bin/abiword

برای فعال کردن چنین قابلیتی در bash و Zsh به ترتیب خطوط زیر را به آدرس‌های مذکور، اضافه کنید (این قابلیت، به نحو مشابهی در سایر شبیه‌سازهای ترمینال فعال می‌شود). سپس شبیه‌ساز را ریستارت کنید.

Bash

~/.bashrc
source /usr/share/doc/pkgfile/command-not-found.bash

Zsh

~/.zshrc
source /usr/share/doc/pkgfile/command-not-found.zsh

Fish

Fish از ویرایش version 2.2 به بعد، از قلاب "command not found" اختصاصی خود برای pkgfile استفاده می‌کند: Add command-not-found handler for Arch Linux #1925

بروز‌رسانی خودکار

pkgfile برای همگام‌سازی پایگاه‌داده pkgfile مجهز به یک سرویس systemd و timer است. برای فعال‌سازی بروزآوری خودکار، pkgfile-update.timer را enable کنید.


به‌صورت پیشفرض، pkgfile روزانه بروز می‌شود. برای تغییر این زمان‌بندی، /usr/lib/systemd/system/pkgfile-update.timer را در /etc/systemd/system/pkgfile-update.timer کپی کرده و این کپی را ویرایش کنید.