我最近在我的 Debian 機器上安裝了 java6。我去使用 javac 並發現它沒有安裝。最終我發現(在網路上搜尋後)javac是java6-sdk套件的一部分。這不是我第一次知道我想要的命令,但我不知道它所在的包。
我的問題是 - 有沒有辦法在命令列上找出哪個檔案屬於哪個套件?因此,如果我想查看 javac 屬於哪些套件,它將列出 java6-sdk、java5-sdk 等,因為它們都包含 javac。
答案1
apt-file
是您正在尋找的命令。
答案2
您可以使用apt 檔案 搜尋檔案名稱為了那個原因。你可以去Debian 軟體包並蒐索線上版本。
答案3
我知道這並不完全是您想要的,但是:
dpkg -L packagename
將列出屬於某個的所有文件安裝包。 (但你想要這個用於卸載的軟體包)
我不知道它是如何做到這一點的,但是 Ubuntu(源自 Debian)會建議一個軟體包,如下所示:
$ chkrootkit
The program 'chkrootkit' is currently not installed. You can install it by typing:
sudo apt-get install chkrootkit
bash: chkrootkit: command not found
我經常做一些顯而易見的事情,然後在谷歌中輸入文件名和“Debian”來查找軟體包。
答案4
您可能還想查看 dlocate 包。它有許多有用的選項來列出包和包內的文件。它最初被編寫為 dpkg -L、dpkg -S 等的更快版本,但多年來獲得了許多有用的功能(同時仍然保持速度:)
免責聲明:我是 dlocate 的作者和 Debian 維護者。
順便說一句,安裝測試版或不穩定版的 dlocate。它比穩定版本有許多改進(特別是,它不再依賴 GNU 定位)並且在穩定版本中仍然可以正常工作(不依賴任何新的/更新的庫等)。