OS: Debian based systems
Wiki: apt-file-debianWiki
使用場景
當遇到“某某某命令是在那個包裏的”,或者“我要找某某命令應當下載那個軟件包”的時候可以用到這個命令。
比如說,我想要啓動qt配套的 qt-designer 和 qt-assistant,然後命令行給我報錯,提示:
➜ assistant
assistant: could not exec '/usr/lib/qt5/bin/assistant': No such file or directory
➜ designer
designer: could not exec '/usr/lib/qt5/bin/designer': No such file or directory
碰到這種情況,我可以使用 apt-file 命令來查找這個二進制文件在哪個包裏面出現,比方說:
➜ apt-file search bin/assistant
qt5-assistant: /usr/lib/qt5/bin/assistant
qt5-assistant: /usr/lib/x86_64-linux-gnu/qt5/bin/assistant
qtchooser: /usr/bin/assistant
(qtchooser只是一個wrapper,用於啓動sdk中的幫助,而剩下的是真正的二進制程序)
(其實sdk裏面已經包括了designer和assistant, 有qt creator的同學不用費勁去下載這兩個了)
安裝方式
可以使用apt 安裝
sudo apt update -y
sudo apt install apt-file -y
安裝完畢之後還需要通過apt-file更新一下數據庫,讓apt-file有對apt數據庫的訪問權限。(建議每次使用前都更新一下)
sudo apt-file update
其他用法
根據 wiki , apt-file還存在一個被動模式,可以被dpkg調用(好像是), 使用 dpkg -S
加上 文件名 來查詢。
➜ dpkg -S libmp3lame.so.0
libmp3lame0:amd64: /usr/lib/x86_64-linux-gnu/libmp3lame.so.0
官網提示:dpkg -S
的方案只能查詢本地 package , 而 apt-file
可以聯網查詢所有安裝和未安裝的 package.