为什么会出现“找不到命令'deb'”的信息?


102

我遇到了一些包含命令的安装说明deb。但是,该命令似乎在我的安装中不可用。

我在哪里可以获得此命令?有解决方法吗?


3
请接受对您有很好答案的问题的答案,以表明您喜欢答案,并且对您的帮助最大。您可以使用左侧的对号来做到这一点。
ζ--

2
我很尴尬,因为我没有意识到我正在阅读的说明没有向我展示在命令行中键入的内容,而是向我展示了要放入文件的行。很高兴您提出这个问题!
Tyler Collier 2013年

Answers:


95

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

Ubuntu手册页-sources.list

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

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

deb [ options ] uri distribution [component1] [component2] [...]

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

所以,如果我有deb http://archive.ubuntu.com/ubuntu/ quantal main restrictedsources.list它说我有这是基于“Debian包http://archive.ubuntu.com/ubuntu/ ”,分布是“量子”和组件是“主”和“限制”。


22
sources.list位于/etc/apt/12.04。
艾哈迈德·法西

3
如果您说“ deb”行是添加到Aptitude来源列表的说明,则可能很有用。这样可以消除整个问题所造成的混乱。
2014年

23

就像@Eric Carvalho 的答案deb不是命令行一样,如果您有deb,则网址如下所示:

deb http://download.virtualbox.org/virtualbox/debian trusty contrib 

编辑

@muru的 commit 一样,您需要在扩展名下创建新文件.list/etc/apt/source.list.d/文件夹中:

例子:我要下载Oracle virtualbox,创建新文件:

sudo gedit /etc/apt/sources.list.d/oracle-virtualbox-trusty.list 

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


1
1.它是apt,不是opt(尽管有一个opt),并且2.不要编辑/etc/apt/sources.list添加行,除非它是Ubuntu镜像/官方存储库。创建一个新文件,/etc/apt/sources.list.d带有该.list行的扩展名。
muru 2014年

1
@muru“ 除非是Ubuntu镜像/官方存储库,否则切勿编辑/etc/apt/sources.list以添加一行。 ”为什么?当然,使得.list在文件/etc/apt/sources.list.d就是在这种情况下做的,就是我通常建议。但我认为没有理由坚持手动添加第3方软件源/etc/apt/sources.list.d。某些conffile最好不要由用户编辑(例如,使用/etc/profile.dover /etc/profile,可以说是使用/etc/sudoers.dover /etc/sudoers),但是sources.list经常会被更改。(甚至由Ubiquity定制为区域镜像。)
Eliah Kagan 2014年

@EliahKagan您什么时候见过Ubiquity向source.list添加第三方存储库(不是镜像)?或就此而言,任何官方工具?出现sources.list.d是有原因的。我将继续坚持将其用于第三方存储库。
muru

@muru对不起,我不清楚。我提到了Ubiquity的行为/etc/apt/sources.list并不是要为了促进平滑升级而单独留下配置文件之一-这通常是(也许通常是)强烈建议背后的动机,他们倾向于将文件制作X.d为编辑内容X。我不建议Ubiquity以任何方式启用第三方存储库。不过,您尚未解释这种回购协议有什么特别之处,以至于将其放入中实际上是错误的(例如,“从不编辑...”)sources.list
伊利亚·卡根

@EliahKagan如果这样做是您的问题,那么这样做没有任何“实际错误”。“从不[做X]”并不总是意味着做X是错误的,它可以并且确实意味着做X是错误的做法(“永不使用GOTO。”)。现在开心?重复:我将继续坚持将sources.list.d用于第三方存储库,并将sources.list仅用于镜像和官方存储库,除非您能给我一个清晰,合理的理由来说明为什么它不是一个好主意这样做。
muru

10

deb不是Unix命令。如果您有类似以下内容的行(docker来源):

deb https://apt.dockerproject.org/repo ubuntu-xenial main

该行必须在您的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

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


8

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

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

然后 dpkg -i whatever.deb

然后运行以下命令:

sudo apt-get update

2
100%相关,并且比上述最佳答案更好。他显然正在尝试下载/安装.deb
dylanh724 '16

2

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

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

sudo add-apt-repository 'deb http://apt.llvm.org/trusty/ llvm-toolchain-trusty main'

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


2

不是CLI命令。

这是有关某些Debian软件包存储库(也由Ubuntu使用)的信息。

如果要使用此存储库:

  1. /etc/apt/sources.list使用管理员权限打开文件。

  2. 将包含有关存储库信息的行添加到该文件中,从 deb ...

  3. 保存文件。

  4. 运行以下命令:

    apt-get更新

现在您将能够使用此存储库。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.