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

智能推荐

while循环&CPU占用率高问题深入分析与解决方案_main函数使用while(1)循环cpu占用99-程序员宅基地

文章浏览阅读3.8k次,点赞9次,收藏28次。直接上一个工作中碰到的问题,另外一个系统开启多线程调用我这边的接口,然后我这边会开启多线程批量查询第三方接口并且返回给调用方。使用的是两三年前别人遗留下来的方法,放到线上后发现确实是可以正常取到结果,但是一旦调用,CPU占用就直接100%(部署环境是win server服务器)。因此查看了下相关的老代码并使用JProfiler查看发现是在某个while循环的时候有问题。具体项目代码就不贴了,类似于下面这段代码。​​​​​​while(flag) {//your code;}这里的flag._main函数使用while(1)循环cpu占用99

【无标题】jetbrains idea shift f6不生效_idea shift +f6快捷键不生效-程序员宅基地

文章浏览阅读347次。idea shift f6 快捷键无效_idea shift +f6快捷键不生效

node.js学习笔记之Node中的核心模块_node模块中有很多核心模块,以下不属于核心模块,使用时需下载的是-程序员宅基地

文章浏览阅读135次。Ecmacript 中没有DOM 和 BOM核心模块Node为JavaScript提供了很多服务器级别,这些API绝大多数都被包装到了一个具名和核心模块中了,例如文件操作的 fs 核心模块 ,http服务构建的http 模块 path 路径操作模块 os 操作系统信息模块// 用来获取机器信息的var os = require('os')// 用来操作路径的var path = require('path')// 获取当前机器的 CPU 信息console.log(os.cpus._node模块中有很多核心模块,以下不属于核心模块,使用时需下载的是

数学建模【SPSS 下载-安装、方差分析与回归分析的SPSS实现(软件概述、方差分析、回归分析)】_化工数学模型数据回归软件-程序员宅基地

文章浏览阅读10w+次,点赞435次,收藏3.4k次。SPSS 22 下载安装过程7.6 方差分析与回归分析的SPSS实现7.6.1 SPSS软件概述1 SPSS版本与安装2 SPSS界面3 SPSS特点4 SPSS数据7.6.2 SPSS与方差分析1 单因素方差分析2 双因素方差分析7.6.3 SPSS与回归分析SPSS回归分析过程牙膏价格问题的回归分析_化工数学模型数据回归软件

利用hutool实现邮件发送功能_hutool发送邮件-程序员宅基地

文章浏览阅读7.5k次。如何利用hutool工具包实现邮件发送功能呢?1、首先引入hutool依赖<dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>5.7.19</version></dependency>2、编写邮件发送工具类package com.pc.c..._hutool发送邮件

docker安装elasticsearch,elasticsearch-head,kibana,ik分词器_docker安装kibana连接elasticsearch并且elasticsearch有密码-程序员宅基地

文章浏览阅读867次,点赞2次,收藏2次。docker安装elasticsearch,elasticsearch-head,kibana,ik分词器安装方式基本有两种,一种是pull的方式,一种是Dockerfile的方式,由于pull的方式pull下来后还需配置许多东西且不便于复用,个人比较喜欢使用Dockerfile的方式所有docker支持的镜像基本都在https://hub.docker.com/docker的官网上能找到合..._docker安装kibana连接elasticsearch并且elasticsearch有密码

随便推点

Python 攻克移动开发失败!_beeware-程序员宅基地

文章浏览阅读1.3w次,点赞57次,收藏92次。整理 | 郑丽媛出品 | CSDN(ID:CSDNnews)近年来,随着机器学习的兴起,有一门编程语言逐渐变得火热——Python。得益于其针对机器学习提供了大量开源框架和第三方模块,内置..._beeware

Swift4.0_Timer 的基本使用_swift timer 暂停-程序员宅基地

文章浏览阅读7.9k次。//// ViewController.swift// Day_10_Timer//// Created by dongqiangfei on 2018/10/15.// Copyright 2018年 飞飞. All rights reserved.//import UIKitclass ViewController: UIViewController { ..._swift timer 暂停

元素三大等待-程序员宅基地

文章浏览阅读986次,点赞2次,收藏2次。1.硬性等待让当前线程暂停执行,应用场景:代码执行速度太快了,但是UI元素没有立马加载出来,造成两者不同步,这时候就可以让代码等待一下,再去执行找元素的动作线程休眠,强制等待 Thread.sleep(long mills)package com.example.demo;import org.junit.jupiter.api.Test;import org.openqa.selenium.By;import org.openqa.selenium.firefox.Firefox.._元素三大等待

Java软件工程师职位分析_java岗位分析-程序员宅基地

文章浏览阅读3k次,点赞4次,收藏14次。Java软件工程师职位分析_java岗位分析

Java:Unreachable code的解决方法_java unreachable code-程序员宅基地

文章浏览阅读2k次。Java:Unreachable code的解决方法_java unreachable code

标签data-*自定义属性值和根据data属性值查找对应标签_如何根据data-*属性获取对应的标签对象-程序员宅基地

文章浏览阅读1w次。1、html中设置标签data-*的值 标题 11111 222222、点击获取当前标签的data-url的值$('dd').on('click', function() { var urlVal = $(this).data('ur_如何根据data-*属性获取对应的标签对象

推荐文章

热门文章

相关标签