问题描述
如何通过命令行安装.deb
文件?
最佳解决方法
软件包通过dpkg
命令(Debian软件包管理系统)手动安装。 dpkg
是apt-get
和aptitude
命令的后端,而apt-get
和aptitude
又是GUI安装应用程序的后端,如Software Center和Synaptic。
沿着以下方向的东西:
dpkg
– > apt-get
,aptitude
– >新立得软件中心
但当然,安装软件包的最简单方法是,首先是GUI应用程序(新立得,软件中心等),然后是终端命令apt-get
和aptitude
,为后端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
以下载缺失的依赖项并配置所有内容。如果报告有错误,则必须按照How do I resolve unmet dependencies after adding a PPA?这样的例子自行排序依赖关系。
删除一个包
sudo dpkg -r PACKAGE_NAME
例如,如果该软件包名为askubuntu
,则应该执行sudo dpkg -r askubuntu
。
重新配置现有的软件包
sudo dpkg-reconfigure PACKAGE_NAME
当您需要重新配置与该软件包相关的内容时,这非常有用。当您想要启用Ctrl
+ Alt
+ Backspace
以重置X服务器时,可以使用一些有用的示例:keyboard-configuration
,因此您需要:
sudo dpkg-reconfigure keyboard-configuration
另一个很好的方法是当您需要为服务器或本地测试计算机设置时区时,请使用tzdata
软件包:
sudo dpkg-reconfigure tzdata
次佳解决方法
Debian(.deb)软件包是Ubuntu中使用的软件包。您可以在系统中安装任何.deb软件包。 .deb文件通常只能通过点击文件管理器(Nautilus)来安装,因为在Ubuntu中已经设置了与默认安装程序的文件关联。这些说明适用于希望从命令行终端(终端)安装包装的人员。
要安装下载的Debian(Ubuntu)包(.deb):打开Terminal并键入
sudo dpkg -i packagename.deb
删除Debian(Ubuntu)包(.deb):
sudo dpkg -r packagename
重新配置/修复已安装的Debian(Ubuntu)软件包(.deb):
sudo dpkg-reconfigure packagename
第三种解决方法
我最喜欢的是GDebi,可以从终端/shell 或图形桌面获得。
我通常将.deb
文件与GDebi相关联,因为它是快速高效的 – 尤其是与Ubuntu软件中心相比。 GDebi的一个主要特点是它解决了依赖关系并安装它们。
对于命令行运行sudo gdebi <package.deb>
来安装单个deb文件。
第四种方法
DPKG命令
有两个操作,分别是dpkg-query
和dpkg-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
第五种方法
虽然dpkg -i
确实安装了该软件包,但它不会执行任何自动依赖性解析,同时还有其他两种替代方法,使用gdebi或apt-get工具。要使用后面的只是使用:
sudo apt-get install ./package.deb
在开始时注意./
,如果您使用包的目录,则需要它,否则它的行为就像dpkg -i
。
第六种方法
安装像Libreoffice这样的文件夹中有多个.deb文件的程序时,一个方便的提示就是使用。
sudo dpkg -i *.deb
第七种方法
创建您自己的脚本安装程序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
此方法的附加价值是解决依赖关系问题,因为在由于依赖关系错误而使用dpkg -i安装.deb时,大多数情况下会遇到一些问题,因此您必须使用apt-get install -f来解决此问题,脚本将为你完成这项工作,但在这里我使用apt-get -yes –fix-broken安装来自动解决这些错误,无需用户干预。
第八种方法
在16.04&更高:
Apt现在安装&从.deb文件解析依赖关系非常简单,
sudo apt install /path/to/packagename
第九种方法
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(!)包,包括compiz
和unity
等包。 gdebi
给出了一个更清晰的错误信息:
$ sudo gdebi skype.deb
Cannot install 'libqtgui:i386'
(这里是the solution to that particular issue,顺便说一下。)
第十种方法
安装:
sudo dpkg -i filename.deb
sudo apt-get install -f
sudo dpkg -i filename.deb
去除:
sudo dpkg -r PACKAGE-NAME
重新配置:
sudo dpkg-reconfigure PACKAGE-NAME
另一种方法是安装gdebi