为什么我会收到“找不到命令‘deb’”?

Kev*_*ton 149 repository deb

我遇到了几个包含命令的安装说明deb。但似乎此命令在我的安装中不可用。

我在哪里可以得到这个命令?有解决办法吗?

Eri*_*lho 130

deb不是命令。它在/etc/apt/sources.list文件中用于指示 Debian 软件存储库。

Ubuntu 手册页 - sources.list

源列表旨在支持任意数量的活动源和各种源媒体。该文件每行列出一个源,首先列出最喜欢的源。每行的格式为:type uri args。第一项,type 确定 args 的格式。uri 是通用资源标识符 (URI),它是更具体和众所周知的通用资源定位器或 URL 的超集。

deb 类型描述了一个典型的两级 Debian 存档,发行版/组件。使用 deb 和 deb-src 类型的 sources.list 条目的格式是:

deb [ options ] uri distribution [component1] [component2] [...]
Run Code Online (Sandbox Code Playgroud)

deb 类型的 URI 必须指定 Debian 发行版的基础,APT 将从中找到它需要的信息。distribution 可以指定一个确切的路径,在这种情况下,必须省略组件,并且分发必须以斜杠 (/) 结尾。当仅对由 URI 表示的档案的特定子部分感兴趣时,这很有用。如果分发未指定确切路径,则必须至少存在一个组件。

所以,如果我deb http://archive.ubuntu.com/ubuntu/ quantal main restrictedsources.list文件中 - 它说:我有一个基于 的 Debian 存档http://archive.ubuntu.com/ubuntu/发行版quantal组件mainrestricted

  • 而 `sources.list` 在 12.04 的 `/etc/apt/` 中。 (26认同)
  • 如果您说“deb”行是添加到 Aptitude 源列表的说明,则可能很有用。这将消除整个问题造成的混乱程度。 (6认同)

ahm*_*mdy 27

就像@Eric Carvalho 的回答deb不是命令行如果你有 deb 那么像这样的 url:

deb http://download.virtualbox.org/virtualbox/debian trusty contrib 
Run Code Online (Sandbox Code Playgroud)

编辑

就像犯的@muru,你需要创建一个扩展新的文件.list/etc/apt/source.list.d/文件夹:

示例:我想下载 Oracle virtualbox,创建新文件:

sudo gedit /etc/apt/sources.list.d/oracle-virtualbox-trusty.list 
Run Code Online (Sandbox Code Playgroud)

然后将 deb 行复制并粘贴到此文件中


Rak*_*kib 22

deb不是 Unix 命令。如果您有如下一行(docker 的来源):

deb https://apt.dockerproject.org/repo ubuntu-xenial main
Run Code Online (Sandbox Code Playgroud)

它是您的 ubuntu 中必须可用的一行,sources.list以便apt-get可以从这个新源中找到未来的软件包。

但是,/etc/apt/sources.list直接编辑文件不是一个好习惯。而是将该deb行作为条目添加到目录.list内的新文件中/etc/apt/sources.list.d/。我们将创建一个docker.list这样的文件:

echo "deb https://apt.dockerproject.org/repo ubuntu-xenial main" | sudo tee /etc/apt/sources.list.d/docker.list
Run Code Online (Sandbox Code Playgroud)

完成后,请记住执行 a sudo apt-get update,您现在应该可以轻松地从该源找到新包。


Ben*_*hon 13

在 Ubuntu 上,您不必手动编辑source.list来添加存储库。相反,您可以像使用add-apt-repositoryPPA 一样使用 。

例如,要添加 LLVM 存储库,您可以调用:

sudo add-apt-repository 'deb http://apt.llvm.org/trusty/ llvm-toolchain-trusty main'
Run Code Online (Sandbox Code Playgroud)

如您所见,我们必须将该deb行作为单个参数传递给命令。


dyl*_*724 10

Deb 实际上并不是一个命令(一开始我也是这么认为的)—— 假设您正在尝试下载/安装一个 deb,请执行以下操作(例如):

wget http://whatever.com/whatever.deb

然后 dpkg -i whatever.deb

然后运行命令:

sudo apt-get update
Run Code Online (Sandbox Code Playgroud)

  • 100% 相关,并且比上面的最佳答案更好。他显然是在尝试下载/安装 .deb (2认同)