如何通过命令行安装.deb文件?


Answers:


1244

手动通过安装的dpkg命令(Debian软件包管理系统)。dpkg是诸如apt-get和的命令的后端aptitude,而反过来又是诸如软件中心和Synaptic之类的GUI安装应用程序的后端。

类似于以下内容:

dpkg-> apt-getaptitude->突触软件中心

但是,当然,最简单的安装软件包的方法是,首先是GUI应用程序(Synaptic,软件中心等),其次是终端命令apt-getaptitude这为后端dpkg添加了一种非常友好的用户友好方法,包括但不限于:不仅限于打包的依赖项,还可以控制安装的内容,需要更新,未安装,损坏的软件包等。最后,dpkg命令是所有依赖项的基础。

由于dpkg是基础,因此您可以使用它直接从命令行安装打包的软件包。

安装套件

sudo dpkg -i DEB_PACKAGE

例如,如果调用了包文件,askubuntu_2.0.deb则应该这样做sudo dpkg -i askubuntu_2.0.deb。如果dpkg由于依赖关系问题而报告错误,则可以运行sudo apt-get install -f以下载缺少的依赖关系并配置所有内容。如果报告错误,则您必须自己解决依赖关系,例如,在添加PPA之后如何解决未满足的依赖关系?

取出包裹

sudo dpkg -r PACKAGE_NAME

例如,如果调用了包,askubuntu则应该这样做sudo dpkg -r askubuntu

重新配置现有软件包

sudo dpkg-reconfigure PACKAGE_NAME

当您需要重新配置与所述软件包相关的内容时,这很有用。一些有用的示例,keyboard-configuration当您要启用Ctrl+ Alt+ Backspace以重置X服务器时,可以执行以下操作:

sudo dpkg-reconfigure keyboard-configuration

另一个不错的选择是,当您需要为服务器或本地测试计算机设置时区时,可以使用以下tzdata软件包:

sudo dpkg-reconfigure tzdata

4
很棒的信息,必须找到某种安装traceroute的方法来帮助调试为什么我的机器无法连接到互联网:)
Jason

23
注意一旦安装的程序通常在/ usr / bin中也可以找到,并且以解包后的名称命名。
克里斯·莫斯基尼

如果我运行sudo apt-get install texlive-latex-base,则由于“哈希总和不匹配”而失败了几个月。我可以从下载.deb文件http://gb.archive.ubuntu.com/ubuntu/pool/main/t/texlive-base/texlive-latex-base-doc_2015.20150625-1ubuntu1_all.deb。如果我使用dpkg安装它,随后它会被apt-get识别(并更新)。
user643722 '16

1
老兄你真棒。所以我很少会看到如此详尽的Linux答案..当涉及到新手问题时,它很重要!谢谢
Elad Katz

1
如果通过aptitudeapt-get(或简单地apt)安装起来更容易,更好,为什么这里没有给出这些命令的示例?
直视

161

Debian(.deb)软件包是Ubuntu中使用的软件包。您可以在系统中安装任何.deb软件包。通常可以通过单击文件管理器(Nautilus)来安装.deb文件,因为在Ubuntu中已经设置了与默认安装程序的文件关联。这些说明适用于希望从命令行终端(终端)安装软件包的用户。

要安装下载的Debian(Ubuntu)软件包(.deb):打开Terminal并输入

sudo dpkg -i packagename.deb

要删除Debian(Ubuntu)软件包(.deb):

sudo dpkg -r packagename

要重新配置/修复已安装的Debian(Ubuntu)软件包(.deb):

sudo dpkg-reconfigure packagename

105

我最喜欢的是GDebi,可从终端/外壳或图形桌面上获得。

屏幕截图

我通常将.deb文件与GDebi 关联,因为它快速高效-尤其是与Ubuntu Software Center相比。GDebi的主要功能之一是它可以解决依赖关系并进行安装。

对于命令行运行,sudo gdebi <package.deb>以安装单个deb文件。


5
它在安装之前检查依赖项,谢谢!
Aquarius Power

gdebi甚至可以下载依赖项,还是我们必须手动下载它们?@Pandya
Jasser

对于非Linux背景的人们来说可能更好。
Nisheet

+1是“它解析并安装依赖项”的关键。
Revetahw

85

您是否正在寻找所有dpkg命令?点击此链接进行阅读。

15个dpkg命令来管理基于Debian的Linux服务器

DPKG命令

有两个动作,分别是dpkg-querydpkg-deb

安装套件

# sudo dpkg -i {package_name}    
# sudo dpkg -i skype-ubuntu-precise_4.2.0.11-1_i386.deb

取出包裹

# sudo dpkg -r {package_name}
# sudo dpkg -r vlc

删除软件包及其配置文件

# sudo dpkg -P {package_name}
# sudo dpkg -P vlc

列出所有已安装的软件包。

您可以将命令通过管道传递到less(寻呼机),以便更轻松地滚动内容:

# dpkg -l | less

检查软件包是否已安装

# dpkg -l {package_name}
# dpkg -l vlc

检查软件包是否已安装,如果已安装,请启动它:

# dpkg -l | vlc

查看是否安装了软件包

这将显示软件包的安装位置。在此处-S(大写S)搜索软件包是否已安装。

# sudo dpkg -S {package_name}
# sudo dpkg -S skype

从指定位置安装* .deb软件包

-R是递归的。(以递归方式处理与*.deb在指定目录及其所有子目录中找到的模式匹配的所有常规文件 )。

# sudo dpkg -R --install {package_location}
# sudo dpkg -R --install /home/sysadmin/soft

显示包裹详情

这里-p(小写p)将显示软件包信息:

# dpkg -p {package_name}
# dpkg -p apache2

查看包裹内容

使用-c(小写c)显示内容:

# sudo dpkg -c {package_name}
# sudo dpkg -c skype-ubuntu-precise_4.2.0.11-1_i386.deb

解压缩*.deb包文件

使用-x(小写x)提取:

# dpkg -x {package_name} {location_were_to_extract}
# dpkg -x libqt4-phonon_4.6.3-4+squeeze1_i386.deb /home/sysadmin/

提取并显示包中包含的文件名

使用-X(大写X)显示提取的内容。

# dpkg -X {package_name} {location_were_to_extract}
# dpkg -X libqt4-phonon_4.6.3-4+squeeze1_i386.deb /home/sysadmin/

显示有关包装的信息

这里-I代表信息:

# dpkg -I {package_name}
# dpkg -I libqt4-phonon_4.6.3-4+squeeze1_i386.deb

重新配置已经安装的软件包

dpkg-reconfigure在安装软件包后重新配置它们。向其传递一个或多个软件包的名称以进行重新配置。它将询问配置问题,就像首次安装软件包时一样。

# dpkg-reconfigure postfix

这将postfix与首次安装时相同的方式进行重新配置。

是否需要更多有关dpkg命令的信息?看看手册页:

# man dpkg

5
检查软件包是否已安装,如果已安装,请启动它:# dpkg -l | vlc ”-这只会将软件包列表通过管道传送到vlc,如果已安装,则结果无法预测;不仅仅是打字vlc
Xen2050

51

尽管dpkg -i确实安装了该软件包,但它并没有执行任何自动的依赖项解析,同时还有其他两种选择,使用gdebi或apt-get工具。要使用后面的,只需使用:

sudo apt-get install /path/to/package.deb

即使您位于包含软件包的目录中,也需要./在开始时使用路径:

sudo apt-get install ./package.deb

13
这可能是最好的答案。apt如果您没有正确的依赖项,将会阻止您破坏系统。
mlainz

该命令似乎选择了所有现有的软件包。
Hibou57

@ Hibou57软件包名称中不能有任何空格。
Braiam'3

26

安装诸如Libreoffice之类的程序时,它的一个实用技巧是在一个文件夹中包含多个.deb文件。

sudo dpkg -i *.deb

2
切勿使用此命令。如果要删除该软件包,则必须手动删除所有deb。sudo apt remove examplesudo apt autoremove并且sudo dpkg -r *.deb不起作用。
没有人

12

gdebi命令行溶液

这是在命令行上在Ubuntu上安装.deb文件的最佳方法:

sudo gdebi skype.deb

如果尚未gdebi安装,请使用进行安装sudo apt install gdebi-core

为什么选择gdebi?

gdebi将查找.deb文件的所有依赖项,并在尝试安装.deb文件之前安装它们。我发现这比sudo dpkg -i skype.deb && sudo apt install -f。后者在某些情况下非常渴望删除依赖项。例如,当我尝试安装Skype时,它尝试删除96(!)软件包,包括诸如compizunity!之类的软件包。gdebi给出了更清晰的错误消息:

$ sudo gdebi skype.deb
Cannot install 'libqtgui:i386'

(顺便说一下,这是该特定问题的解决方案。)


askubuntu.com/a/170557/158442确实说gdebi可以从命令行使用
muru

@muru是的,但是由于屏幕截图,很容易错过。此外,它也无法解释问题dpkg -i skype.deb
Flimm

11

创建您自己的脚本安装程序debInstaller,如下所示:

#!/bin/bash
dpkg -i "$@"
apt-get --yes --fix-broken install

使脚本可执行

chmod +x debInstaller

然后将其移至PATH中的某些目录,或将当前目录添加到PATH中。

我将其移至/ usr / bin

sudo cp debInstaller /usr/bin

现在,您可以.deb使用以下命令安装任何软件包:

sudo debInstaller some-package.deb

此方法的附加价值是解决依赖关系问题,因为在安装.deb with时dpkg -i由于依赖关系错误,通常会遇到一些问题,因此必须使用apt-get install -f它来解决此脚本,该脚本将为您完成工作,但是在这里,我曾经apt-get --yes --fix-broken install自动解决这些错误,而无需用户干预。


10

要安装deb文件,请打开Terminal并输入:

sudo dpkg -i file.deb
sudo apt-get install -f
sudo dpkg -i file.deb   

第二行是在安装失败的情况下修复损坏的软件包,然后再次安装以完成安装。

另一种方法是使用gdebi工具安装deb文件。


0

我个人使用内置软件包安装程序dpkg来安装deb软件包有很多工具

如果您以root用户身份登录,则将目录更改为deb软件包的位置

dpkg -i package_name.deb

如果您没有以root身份登录

sudo dpkg -i package_name.deb

确保该软件包已正确安装且没有任何损坏的依赖项

sudo apt-get check

如果有任何损坏的依赖关系

sudo apt-get -f install
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.