Command

找不到命令“bla”,您的意思是:?

  • September 25, 2021

那麼,當找不到命令時,“您的意思是:”列表是通過什麼方式填充的?什麼程序可以找到這些替代命令?“(主),(宇宙)……”是什麼意思?我可以更改哪個程序找到這些嗎?

如果你看/etc/apt/sources.list它的內容將有格式

#Archive type  Repository URL                   Distribution Component
deb           http://archive.ubuntu.com/ubuntu precise      main

存檔類型

每行的第一個單詞 deb 或 deb-src 表示歸檔的類型。deb 表示存檔包含二進制包(deb),依此類推。

儲存庫 URL

該行的下一個條目是您要從中下載包的儲存庫的 URL。

分配

“發行版”可以分別是發布程式碼名稱/別名(wheezy、jessie、stretch、sid)或發布類別(oldstable、stable、testing、unstable)。

“(主),(宇宙)……”是什麼意思?

零件

main 包含符合 DFSG 的包,contrib 包包含符合 DFSG 的軟體,但在 main 中沒有依賴項,non-free 包含不符合 DFSG 的軟體等。**提示 -**檢查一個儲存庫 url,它應該有一個帶有組件名稱的文件夾。

包管理器說 apt將有一個數據庫,其中包含儲存庫中所有包的列表,它足夠聰明,可以給你建議。

您的軟體包管理器可能在 eof dpkg(例如 Debian、Ubuntu 等)、apt(例如 Debian、Ubuntu 等)上,現在已過時 rpm(例如,舊的 Redhat 版本和較新的版本出於兼容性原因不會啟動它),yum(例如.Fedora,CentOS),dnf -dentrified yum (eg.New Fedora release)等等。如需更完整的列表,請查看。您甚至可能會在一個發行版中看到多個包管理器。例如,在 Ubuntu 中,您可能會看到 dpkg 提供 /etc/apt/sources/list。

所以當你輸入

cleaq

它可能會說

cleaq: no command found. Did you mean clean.

通過什麼方式填充“您的意思是:”列表?

這涉及與包管理器數據庫中的包的模式匹配。

此數據庫在您執行操作時更新apt-get update

不確定

我可以更改哪個程序找到這些嗎?

儘管。我相信這是一個無法改變的特性。雖然不太確定

參考Debian SourceList

對於bash,其行為由 shell 函式控制command_not_found_handle(參見man bash)。

要查看該函式定義了什麼行為,您可以發出:

declare -p -f command_not_found_handle

您可以通過重新定義command_not_found_handle函式來更改使用的程序。

在基於 Debian 的發行版(包括 Ubuntu)中,通常會安裝該軟體包command-not-found/usr/lib/command-not-found,並且可以 通過以下連結獲得:

建議在互動式 bash 會話中安裝軟體包

該軟體包將為 command_not_found 安裝處理程序,該處理程序查找目前未安裝但可從儲存庫中獲得的程序。

也可以看看:

引用自:https://unix.stackexchange.com/questions/279055