ubuntu下.deb包安装_traceroute deb-程序员宅基地

技术标签: Linux编程  

How do I install a .deb file via the command line?

share improve this question
 
2  

11 Answers

up vote 806 down vote accepted

Packages are manually installed via the dpkg command (Debian Package Management System). dpkg is the backend to commands like apt-get and aptitude, which in turn are the backend for GUI install apps like the Software Center and Synaptic.

Something along the lines of:

dpkg --> apt-getaptitude --> Synaptic, Software Center

But of course the easiest ways to install a package would be, first, the GUI apps (Synaptic, Software Center, etc..), followed by the terminal commands apt-get and aptitude that add a very nice user friendly approach to the backend dpkg, including but not limited to packaged dependencies, control over what is installed, needs update, not installed, broken packages, etc.. Lastly the dpkg command which is the base for all of them.

Since dpkg is the base, you can use it to install packaged directly from the command line.

Install a package

sudo dpkg -i DEB_PACKAGE

For example if the package file is called askubuntu_2.0.deb then you should do sudo dpkg -i askubuntu_2.0.deb. If dpkg reports an error due to dependency problems, you can run sudo apt-get install -f to download the missing dependencies and configure everything. If that reports an error, you'll have to sort out the dependencies yourself by following for example How do I resolve unmet dependencies after adding a PPA?.

Remove a package

sudo dpkg -r PACKAGE_NAME

For example if the package is called askubuntu then you should do sudo dpkg -r askubuntu.

Reconfigure an existing package

sudo dpkg-reconfigure PACKAGE_NAME

This is useful when you need to reconfigure something related to said package. Some useful examples it the keyboard-configuration when you want to enable the Ctrl+Alt+Backspace in order to reset the X server, so you would the following:

sudo dpkg-reconfigure keyboard-configuration

Another great one is when you need to set the Timezone for a server or your local testing computer, so you use use the tzdata package:

sudo dpkg-reconfigure tzdata
share improve this answer
 
2  
Great info, had to find some way to install traceroute to help debug why my machine won't connect to the internet :) –  Jason  Nov 20 '13 at 15:01
13  
Also helpful to note that once installed programs are usually found in /usr/bin, named after what was depackaged. –  Chris Moschini  Mar 31 '14 at 9:10
 
If I run sudo apt-get install texlive-latex-base, it has failed for months with "Hash Sum mismatch". I can download the .deb file fromhttp://gb.archive.ubuntu.com/ubuntu/pool/main/t/texlive-base‌​/texlive-latex-base-‌​doc_2015.20150625-1u‌​buntu1_all.deb. If I install it using dpkg, would it subsequently be recognised (and updated) by apt-get. –  user643722  Jan 19 '16 at 17:05
 
Hi @user643722 I was going to recommend deleting the cached version of that package but here you have an answer for the issue askubuntu.com/questions/41605/… –  Luis Alvarado  Jan 20 '16 at 3:05

Debian (.deb) packages are the packages that are used in Ubuntu. You can install any .deb package in your system. .deb files can generally be installed from your file manager (Nautilus) merely by clicking on them, since file associations with the default installer is already set in Ubuntu. These instructions are for those who wish to install packages from the command-line terminal (Terminal).

To install a downloaded Debian (Ubuntu) package (.deb): Open Terminal and type

sudo dpkg -i packagename.deb

To remove a Debian (Ubuntu) package (.deb):

sudo dpkg -r packagename

To Reconfigure/Repair an installed Debian (Ubuntu) package (.deb):

sudo dpkg-reconfigure packagename
share improve this answer
 

My favourite is GDebi, available from both terminal/shell or graphical desktop.

screen-shot

I usually associate .deb files with GDebi as it is fast and efficient - especially compared to Ubuntu Software Center. One of the main feature of GDebi is it resolves dependencies and installs them.

For command-line run sudo gdebi <package.deb> to install a single deb file.

share improve this answer
 
2  
it checks for dependencies before installing, thx!! –  Aquarius Power  Nov 13 '14 at 3:18
 
Can gdebi even download the dependencies or we have to download them manually?? @Pandya –  Jasser Aug 29 '15 at 10:27 
 
Probably better for people moving in from the non-Linux background. –  Nisheet  Dec 27 '16 at 11:26

DPKG commands

There are two actions, they are dpkg-query and dpkg-deb.

Install a package

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

Remove a package

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

Remove a package and its configuration files

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

List all installed packages.

You can pipe the command to less (a pager) so you can more easily scroll the content:

# dpkg -l | less

Check if the package is installed or not

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

Check if the package is installed or not, and if it is, launch it:

# dpkg -l | vlc

See whether a package is installed or not

And this will show the location where the package will be installed. Here -S (capital S) to search whether the package was installed or not.

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

Install a *.deb package from a specified location

Here -R is recursive. (Recursively handle all regular files matching the pattern *.deb found at specified directories and all of its subdirectories).

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

Show package details

Here -p (lowercase p) will show the package info:

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

View the content of a package

Use -c (lowercase c) to show the content:

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

Extract the *.deb package file

Use -x (lowercase x) to extract:

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

Extract and display the filenames contained in a package

Use -X (uppercase X) to display the content with extraction.

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

Display information about a package

Here -I stands for information:

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

Reconfigure an already installed package

dpkg-reconfigure reconfigures packages after they already have been installed. Pass it the name(s) of a package or packages to reconfigure. It will ask configuration questions, much like when the package was first installed.

# dpkg-reconfigure postfix

This will reconfigure postfix the same way as when you installed it for the first time.

Need to know more about dpkg commands? Have a look at the manual page:

# man dpkg
share improve this answer
 
3  
"Check if the package is installed or not, and if it is, launch it: # dpkg -l | vlc" - this would only pipe a list of packages to vlc, with unpredictable results if it were installed; and no better than just typing vlc –  Xen2050  Feb 7 '15 at 6:15

A handy tip when installing a program like Libreoffice which has multiple .deb files in a folder is to use.

sudo dpkg -i *.deb
share improve this answer
 

While dpkg -i indeed installs the package, it doesn't do any automatic dependency resolution, meanwhile there are two others alternatives, using gdebi, or the apt-get tool. To use the later just use:

sudo apt-get install ./package.deb

Note the ./ at the start, you need it if you are on the directory with the package, otherwise it just behave like dpkg -i.

share improve this answer
 

Create your own script installer debInstaller as the following:

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

Make the script executable with

chmod +x debInstaller

Then move it to some dirs in your PATH or add the current directory to your PATH.

I'm going to move it to /usr/bin

sudo cp debInstaller /usr/bin

Now you can install any .deb package using the command:

sudo debInstaller some-package.deb

The added value of this method is the solving the dependencies problem, since mostly you'll face some problems when you install a .deb with dpkg -i due to dependencies error, so you have to use apt-get install -f to solve it, this script will do the job for you, but here I used apt-get --yes --fix-broken install to automatically solve these errors without user intervention.

share improve this answer
 

To install a Debian package (ends with '.deb') using cmd 'dpkg', you would enter:

cd /path/of/Debian/package
sudo dpkg -i package-name.deb

If you want to remove that same Debian package at some point, then:

cd /path/of/Debian/package
sudo dpkg -r package-name.deb

To get a list of current Debian packages installed, use:

dpkg -l
share improve this answer
 

To Install:

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

To Remove:

sudo dpkg -r PACKAGE-NAME

To Reconfigure:

sudo dpkg-reconfigure PACKAGE-NAME

Another approach is to install gdebi

share improve this answer
 

The gdebi command-line solution

Here's the best way to install a .deb file on Ubuntu on the command-line:

sudo gdebi skype.deb

If you don't have gdebi installed already, install it using sudo apt install gdebi-core.

Why gdebi?

gdebi will look for all the dependencies of the .deb file, and will install them before attempting to install the .deb file. I find this much preferable than sudo dpkg -i skype.deb && sudo apt install -f. The latter is much too eager to remove dependencies in certain situations. For instance, when I tried to install Skype, it attempted to remove 96 (!) packages, including packages like compiz and unitygdebi gave a much clearer error message:

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

(Here is the solution to that particular issue, by the way.)

share improve this answer
 
 
askubuntu.com/a/170557/158442 does say gdebi can be used from the command line –  muru  Dec 27 '16 at 11:59
 
@muru Yeah, but it's easy to miss because of the screenshot. Also, it doesn't explain the problems withdpkg -i skype.deb –  Flimm  Dec 27 '16 at 12:29 

In 16.04 & higher:

Apt now installs & resolves dependencies from .deb files so quite simple,

sudo apt install /path/to/packagename
share improve this answer
 

protected by Community Feb 20 '14 at 20:57

Thank you for your interest in this question. Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count). 

Would you like to answer one of these unanswered questions instead?

Not the answer you're looking for? Browse other questions tagged   or ask your own question.

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/chengzheng_hit/article/details/54783135

智能推荐

元宇宙与虚拟现实的6大区别_元宇宙与虚拟现实区别对比-程序员宅基地

文章浏览阅读450次。基于蓝海创意云所构建的数字基建能力、云端超大规模视觉计算能力和超高清视频低延时传输技术,从数据处理、网络环境、内容生产、认证机制、虚实界面等方面构建了元宇宙技术支撑服务能力。通过多年积累,蓝海创意云形成了强大的元宇宙时代数字基建能力,为数字文旅、智慧城市、电商直播、数字孪生等行业提供专业的解决方案。_元宇宙与虚拟现实区别对比

CTO说了,再发现谁用kill -9关闭程序就开除-程序员宅基地

文章浏览阅读660次。点击下方“民工哥技术之路”,选择“设为星标”回复“1024”获取独家整理的学习资料!kill -9 pid ???kill可将指定的信息送至程序。预设的信息为SIGTERM(15),可将指..._再发现用kill -9

CSS-图片显示固定大小不压缩、不变形_css 图片不变形-程序员宅基地

文章浏览阅读1.1w次,点赞13次,收藏19次。需求说明:实现让长方形图片显示出正方形且不变形的效果的效果,一般可以有2种方式来实现,一种是设置为背景图,另一种是用img标签。原图↓:背景图↓:一、背景图首先,我们来看一下通过设置背景图的方式来实现我们的需求,主要通过background-size属性来设置我们的背景图缩放比例。简单介绍一下background-size:background-size: contain;..._css 图片不变形

Xamarin.Android开发实践(四)-程序员宅基地

文章浏览阅读69次。Xamarin.Android开发实践(四) 原文:Xamarin.Android开发实践(四)Xamarin.Android下获取与解析JSON一、新建项目1.新建一个Android项目,并命名为为NetJsonList2.右击引用,选择添加引用,引用System.Json.dll二、同步请求既然是..._c#-xamarin的android项目开发(四)

Android:全面&详细解析andriod10 RSSI,framework篇,相关类:SignalStrength,ServiceStateTracker,TelephonyRegistry_msignalstrength-程序员宅基地

文章浏览阅读2.9k次,点赞6次,收藏21次。前言RSSI问题是移动终端常见的异常,例如信号格不刷新,或threshold不符合要求等。由于RSSI涉及较多module,故分析路径较长。本篇先从framework部分入手。RSSI上报的层次关系先整体认识下RSSI上报的层次关系,如下图..._msignalstrength

解决 gcc/g++ 编译动态库通过却无法运行的问题-程序员宅基地

文章浏览阅读625次。2019独角兽企业重金招聘Python工程师标准>>> ..._openbsd安装gcc却不能用

随便推点

环境监测设备中TCXO精度对GNSS的重要性-伪码同步和载波同步_tcxo对gnss接收机性能-程序员宅基地

文章浏览阅读276次。由于目前全球芯片都处于供不应求的状态下,各大硬件公司将囤货的标的蔓延到晶体振荡器TCXO,特别是对于GNSS的应用,TCXO是不可或缺的成分,但由于物料的紧缺,不得不寻找一些貌似可以替代的物料进行生产,但由于参数的差异,这也不可避免的出现各种定位问题。下面我们简单的做个说明。首先在环境监测设备的开发过程中,我们一般选择的GPS的晶振都是26MHz的TCXO作为振荡源,假如用的TCXO是0.5ppm的精度,对应的频偏范围就是±13Hz。如果倍频到1575.42MHz对应的频偏范围就是±788Hz。其中_tcxo对gnss接收机性能

在Anaconda虚拟环境下打开jupyter notebook_怎么用anaconda打开jupyternotebook-程序员宅基地

文章浏览阅读1.7w次,点赞23次,收藏99次。Anaconda可以很方便的创建和管理虚拟环境,以便切换不同版本的python,使用不同框架等等。那么如何在jupyter中切换虚拟环境呢?前提:已安装Anaconda3并配有pytorch虚拟环境打开Anaconda prompt,查看安装了哪些虚拟环境conda env list激活虚拟环境activate pytorch在虚拟环境中安装ipykernelconda install ipykernel继续在该环境中安装nb_condaconda install -_怎么用anaconda打开jupyternotebook

字符串和多维数组思维导图_多维数组字符数组思维导图-程序员宅基地

文章浏览阅读683次。_多维数组字符数组思维导图

$.fn.jqGrid和$.jgrid.extend-程序员宅基地

文章浏览阅读2.8k次。select sql_text,last_load_time,elapsed_time/1000000 from v$sql where sql_text like '%RES_MULTI_VALUE_RULE%' order by last_load_time desc;_$.jgrid.extend

语音信号端点检测 matlab,matlab中语音端点检测-程序员宅基地

文章浏览阅读1.4k次,点赞3次,收藏21次。首先在matlab中装好voicebox工具箱,里面有一些需要用到的.m文件具体程序如下:x=readwav('D:/hao.wav');t=x;N=size(x)x=double(x);x=x/max(abs(x));%归一化y1=0;%未到语音的端点帧%amp1=10;%amp2=2;status=0;minlen=15;figure(1);subplot(311);plot(x);Frame..._()dxxd,xx.xx,,rs ,xsc,

python ctypes 指针_Python Ctypes传递数据指针-程序员宅基地

文章浏览阅读847次。I am accessing an API and can't get the data returned. The two float pointers will point to an array of data. I must assume the API is working properly. A different function call provides a the length..._python ctypes 指针

推荐文章

热门文章

相关标签