`
mintelong
  • 浏览: 392180 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

sudo apt-get 和dpkg命令大全

阅读更多
dpkg命令解析

dpkg是Debian的中级软件包管理器,类似RPM.
dpkg是Debian软件包管理系统的中流砥柱,负责安全卸载软件包,配置,以及维护已安装的软件包.也是Debian系统中众多软件包管理工具的后端.有关dpkg的更多介绍参阅:http://www.dpkg.org
系统中所有packages的信息都在/var/lib/dpkg/目录下,其中子目录”/var/lib/dpkg/info”用于保存各个软件包的配置文件列表.
.conffiles 记录了软件包的配置文件列表
.list 保存软件包中的文件列表,用户可以从.list的信息中找到软件包中文件的具体安装位置.
.md5sums 记录了软件包的md5信息,这个信息是用来进行包验证的.
.prerm 脚本在Debian报解包之前运行,主要作用是停止作用于即将升级的软件包的服务,直到软件包安装或升级完成.
.postinst脚本是完成Debian包解开之后的配置工作,通常用于执行所安装软件包相关命令和服务重新启动.
/var/lib/dpkg/available文件的内容是软件包的描述信息,该软件包括当前系统所使用的Debian安装源中的所有软件包,其中包括当前系统中已安装的和未安装的软件包.
dpkg
查询以安装的信息
查询当前系统所有已安装的deb包
dpkg –l 命令用于查询当前系统所有以安装的deb包的信息.,通过less和grep可以执行更复杂的查询工作.
例如查找跟vim有关的软件包,dpkg –l |grep –ivim
(如发现iU 表示软件包未安装成功,ii表示安装成功)
查看已安装软件包的详细情况
dpkg –s 命令查看软件包的详细情况,包括版本,依赖之类的
查询系统中所安装软件包所安装的文件
dpkg –L 命令用于查询系统中所安装软件包的安装的文件安装到系统的位置和安装了那些.
小提示: 如何可以看软件包装到哪个地方?
用apt-get install *
如何可以看软件包装到哪个地方?
dpkg -L package-name|more

查询系统中某个文件属于那个软件包
dpkg –S 命令用于了解当前的软件属于那个软件包
查询未安装的信息
查询未安装软件包详细信息
dpkg –I 命令用于查看未安装软件包的详细信息,以便了解该软件包是否需要安装.
查询deb包文件中所包含的文件
dpkg –c 显示未安装deb软件包所包含的文件列表,以及安装位置
安装软件包
安装deb软件包
dpkg –i 手工安装deb包到系统中,不过有时会存在Dpends关系,建议使用apt-get 来安装.
如果通过dpkg –i安装软件后由于Dpends关系没有安装成功,可通 过apt-get –f install解决
解决dpkg –i 安装deb包出现Dpends问题
apt-get –f install 解决Dpends问题.

例如:dpkg –i lftp_3.1.3-1_i386.deb
Selecting previously deselected package lftp.
(Reading database … 20654 files and directories currently installed.)
unpacking lftp (from lftp_3.1.3-1_i386.deb)…
dpkg:dependency problems prevent configuration of lftp:
ftp depends on libexpat1 (<=1.95.8);however
dpkg : error processing lftp (--install)
dependency problems –leaving unconfigured
Errors were encountered while processing:
lftp
//lftp软件包安装失败
dpkg –l |grep lftp
iU lftp 3.1.3-1 Sophisticated
command-line FTP/HTTP client p
//”dpkg -l” 查询信息表示lftp软件包未安装成功
(iU表示未安装成功,ii表示安装成功)
使用apt-get –f install解决
卸载deb软件包
卸载deb包
dpkg –r用于卸载指定的软件包,该命令只卸载软件包安装到系统中的文件,而不去删除软件包的配置文件,因此不是完全意义上的卸载.但是软件包保存在系统中,可以提供给以后在安装软件包时使用.
例如:dpkg –r prozilla 移除后再用dpkg –l |grep prozilla 查看
会看到rc proc 1.3.6-3woody3 multi-thraded download accelerator
表示软件包已经被卸载,但配置文件仍在“rc”带表配置文件仍在.
卸载软件包并清除配置文件
dpkg –P 用于卸载软件包同时也删除配置文件,dpkg –P 不能解决Dpends问题,建议卸载时使用apt-get操作
重新配置软件包
对于Debian系统中的众多软件包(尤其是系统和服务器软件包)来说,在第一次安装该软件包时候会显示对话框窗口,提示用户输入必要的配置信息.当用户需要再次对软件包配置的时候,可以使用dpkg-reconfigure来对指定的软件包进行配置.
比如dpkg-reconfigure locales
用于配置语言
alien包转换工具
如果我们有很喜欢的RPM包,而又没有deb版本
怎么办~?
可以同过alien来转换或者直接安装,这个小家伙可是个很方便的东西!
基本命令如下:
首先通过apt-get install alien来安装.
然后alien -i name-of-the-pakage.rpm /*用来直接安装rpm包
alien -d , --to-deb /*Make debian packages,This is the default
例:alien –d package.rpm
alien –r , --to-rpm /*Make rpm packages
例:alien –r package.deb
alien –p , --to-pkg /*Make Solaris pkg packages
alien –-to-slp /*Make slp packages
alien –t , --to-tgz /*Make tgz packages
alien –T 检测
alien –-patch=patch 设置patch

 sudo dpkg --configure -a






一、APT的使用(Ubuntu Linux软件包管理工具一)

apt-cache search # ------(package 搜索包)

apt-cache show #------(package 获取包的相关信息,如说明、大小、版本等)

sudo apt-get install # ------(package 安装包)

sudo apt-get install # -----(package - - reinstall 重新安装包)

sudo apt-get -f install # -----(强制安装?#"-f = --fix-missing"当是修复安

装吧...)

sudo apt-get remove #-----(package 删除包)

sudo apt-get remove - - purge # ------(package 删除包,包括删除配置文件

等)

sudo apt-get autoremove --purge # ----(package 删除包及其依赖的软件包+配置文件等(只对6.10有效,强烈推荐))

sudo apt-get update #------更新源

sudo apt-get upgrade #------更新已安装的包

sudo apt-get dist-upgrade # ---------升级系统

sudo apt-get dselect-upgrade #------使用 dselect 升级

apt-cache depends #-------(package 了解使用依赖)

apt-cache rdepends # ------(package 了解某个具体的依赖?#当是查看该包被哪些包依赖吧...)

sudo apt-get build-dep # ------(package 安装相关的编译环境)

apt-get source #------(package 下载该包的源代码)

sudo apt-get clean && sudo apt-get autoclean # --------清理下载文件的存

档 && 只清理过时的包

sudo apt-get check #-------检查是否有损坏的依赖





apt-get install 的用法

apt-get install <package>

下载 <package> 以及所有倚赖的包裹,同时进行包裹的安装或升级.如果某个包裹被设置了 hold (停止标志,就会被搁在一边(即不会被升级).更多 hold 细节请看下面.



apt-get remove [--purge] <package>

移除 <package> 以及任何倚赖这个包裹的其它包裹.--purge 指明这个包裹应该被完全清除 (purged) ,更多信息请看 dpkg -P .



apt-get update

升级来自 Debian 镜像的包裹列表,如果你想安装当天的任何软件,至少每天运行一次,而且每次修改了

/etc/apt/sources.list 后,必须执行.



apt-get upgrade [-u]

升级所以已经安装的包裹为最新可用版本.不会安装新的或移除老的包裹.如果一个包改变了倚赖关系而需要安装一个新的包裹,那么它将不会被升级,而是标志为 hold .apt-get update 不会升级被标志为 hold 的包裹 (这个也就是 hold 的意思).请看下文如何手动设置包裹为 hold .我建议同时使用 '-u' 选项,因为这样你就能看到哪些包裹将会被升级.



apt-get dist-upgrade [-u]

和 apt-get upgrade 类似,除了 dist-upgrade 会安装和移除包裹来满足倚赖关系.因此具有一定的危险性.



apt-cache search <pattern>

搜索满足 <pattern> 的包裹和描述.



apt-cache show <package>

显示 <package> 的完整的描述.



apt-cache showpkg <package>

显示 <package> 许多细节,以及和其它包裹的关系.



dselect, console-apt, aptitude, gnome-apt,是APT 的几个图形前端(其中一些在使用前得先安装).这里 dselect 无疑是最强大的,也是最古老,最难驾驭.



-------------------------------------



二、 DPKG的 用法(Ubuntu Linux软件包管理工具二)

dpkg -i <package.deb>

安装一个 Debian 包裹文件;如你手动下载的文件.



dpkg -c <package.deb>

列出 <package.deb> 的内容.



dpkg -I <package.deb>

从 <package.deb> 中提取包裹信息.



dpkg -r <package>

移除一个已安装的包裹.



dpkg -P <package>

完全清除一个已安装的包裹.和 remove 不同的是, remove 只是删掉数据和可执行

文件, purge 另外还删除所有的配制文件.



dpkg -L <package>

列出 <package> 安装的所有文件清单.同时请看 dpkg -c 来检查一个 .deb 文件

的内容.



dpkg -s <package>

显示已安装包裹的信息.同时请看 apt-cache 显示 Debian 存档中的包裹信息,以

及 dpkg -I 来显示从一个

.deb 文件中提取的包裹信息.



dpkg-reconfigure <package>

重新配制一个已经安装的包裹,如果它使用的是 debconf (debconf 为包裹安装提

供了一个统一的配制界面).你能够重新配制 debconf 它本身,如你想改变它的前端

或提问的优先权.例如,重新配制 debconf ,使用一个 dialog 前端,简单运行:



dpkg-reconfigure --frontend=dialog debconf (如果你安装时选错了,这里可以

改回来哟



echo "<package> hold" | dpkg --set-selections

设置 <package> 的状态为 hlod (命令行方式)



dpkg --get-selections "<package>"

取的 <package> 的当前状态 (命令行方式)



支持通配符,如:

Debian:~# dpkg --get-selections *wine*









备注:



-------------------------------------例如:

大家现在用的都是 gaim-0.58 + QQ-plugin,为了防止 gaim 被升级,我们可以采用

如下方法:



方法一:

Debian:~# echo "gaim hold" | dpkg --set-selections

然后用下面命令检查一下:

Debian:~# dpkg --get-selections "gaim"

gaim hold

现在的状态标志是 hold,就不能被升级了.



如果想恢复怎么办呢?

Debian:~# echo "gaim install" | dpkg --set-selections

Debian:~# dpkg --get-selections "gaim"

gaim install

这时状态标志又被重置为 install,可以继续升级了.



同志们会问,哪个这些状态标志都写在哪个文件中呢?

在 /var/lib/dpkg/status 里,你也可以通过修改这个文件实现 hold.



有时你会发现有的软件状态标志是 purge,不要奇怪.

如:事先已经安装了 amsn, 然后把它卸了.

apt-get remove --purge amsn

那么状态标志就从 install 变成 purge.



方法二:

在/etc/apt 下手动建一个 preferences 文件

内容:

Package: gaim

Pin: version 0.58*

保存

更详细内容请看:

http://linuxsir.com/bbs/showthread....&threadid=22601



dpkg -S <file>

在包裹数据库中查找 <file>,并告诉你哪个包裹包含了这个文件.(注:查找的是事

先已经安装的包裹)



从源码建立deb packages



apt-get source [-b] <package>

下载一个源码的包并解开。

你必须在你的/etc/apt/sources.list文件里写入一条 deb-src 的记录才能完成这

项工作。

如果你输入了一个-b参数,并且是以root的身份,deb包会被自动的创建。



apt-get build-dep <package>

自动下载并安装通过源码创建 <package> 时需要的包。

只有apt 0.5以上版本才支持这个功能。

现在woody和以上版本包含了这个功能。

如果你使有一个旧版本的apt,查找依赖性最简单的方法是查看源码包中

debian/control 这个文件,

注意这个路径是相对的,是包内的路径。



普通的用法,结合 apt-get source -b,例子 (as root):



apt-get build-dep <package>

apt-get source -b <package>



会下载源码包,建立依赖性,然后尝试编译源码。



dpkg-source -x <package.dsc>

如果你手工下载了一个程序的源码包,其中包含了几个类

似 .orig.tar.gz , .dsc ,

以及 .diff.gz 之类的文件,

那么你就可以对 .dsc 文件使用这个命令来 unpack 源码包。



dpkg-buildpackage

从 Debian 源码树建立一个deb包。你必须在source tree的主目录才能生效。例

如:



dpkg-buildpackage -rfakeroot -uc -b



这里 '-rfakeroot' 指定命令使用 fakeroot 程序来模仿 root 权限 (来实现所有

者(ownership)目的),

'-uc' 表示 "Don't cryptographically sign the changelog", '-b' 代表只建立

二进制包.



debuild

一个快速打包脚本类似 dpkg-buildpackage ,能自动的识别是否使用 fakeroot,

同时为你运行 lintian 和 gpg



修正倚赖关系



dpkg --configure --pending

如果dpkg在apt-get install upgrade dist-uptradeing 的时候出错退出,

尝试使用此命令来配置已经unpack的包。

然后再用 apt-get install ,upgrade, or dist-upgrade -f ,

然后再用 apt-get install, upgrade, or dist-upgrade.



可能会重复多次,这样通常可以解决大多数的依赖性问题。

(同时,如果提示由于某种原因需要某个特定的包裹,你可以常识安装或卸载这个包)



apt-get install -f

apt-get upgrade -f

apt-get dist-upgrade -f

尝试修正上述过程中出现依赖性关系

注意 apt-get install -f 不需要 <package> 作为参数。







-------------------------------------

用apt-cdrom -d /media/cdrom0 add 加载光驱,



/dev/hdc /cdrom iso9660 user,noauto 0 0

用编辑器修改一下存盘,重启,应该可以了。

然后,apt-cdrom -d /cdrom add

apt-get install (你要装的软件名:《例如gcc》)

gcc相关的软件会自动装入。

昨天,刚试过,很爽。

注意:apt不会认你手动挂载的光驱,如果fstab中设置不对apt不会正常工作。



用apt-cdrom -d /media/cdrom0 add 加载光驱,

需要使用#mkdir /media/cdrom0 否则会错误提示说“无法读取文件系统挂载

点/media/cdrom的状态 -stat(2 没有那个文件或目录)”

----------------------------
分享到:
评论

相关推荐

    ROS apt-get install -f无效后解决方案

    然后即使找到依赖项运行可能还会需要其他依赖,然后就是不断的apt-get -f install 和apt-get update,结果还是解决不了问题,然后apt-get upgrade也提示需要依赖。 最后发现怎么都搞不定,然后偶然发现了一个方法...

    ubuntu命令大全

    #sudo apt-get dist-upgrade 清除所以删除包的残余配置文件 dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P编译时缺少h文件的自动处理 #sudo auto-apt run ./configure 查看安装软件时下载包的临时存放...

    Ubuntu命令大全

    #sudo apt-get dist-upgrade 清除所以删除包的残余配置文件 #dpkg -l |grep ^rc|awk ‘{print $2}’ |tr [”\n”] [” “]|sudo xargs dpkg -P - 编译时缺少h文件的自动处理 #sudo auto-apt run ./configure 查看...

    在Ubuntu中安装VSCode并配置C/C++开发环境的方法步骤

    第一步,打开Ubuntu Software下载VSCode。...sudo apt-get update //访问源列表,并读取软件列表 sudo apt-get install gcc sudo apt-get install g++ sudo apt-get install gdb 第三步,打开VSCode,安装三个插件 1

    qt-devel-3.3.8-4.fc7.i386.rpm

    因为需要qt-3.3作支持,所以需要先安libqt3-mt,libqt3-mt-dev,下载qt-devel-3.3.8-4.fc7.i386.rpm,然后用alien转为deb,再用dpkg -i --force-overwrite 来安装此包) sudo apt-get install libqt3-mt sudo apt-get ...

    APT方式安装mysql的包

    下载此文件可以直接通过sudo dpkg -i mysql-apt-config_0.8.9-1_all.deb 、sudo apt-get update 、sudo apt-get install mysql-server 方式安装 mysql5.7版本

    sails-bem-project-stub:带有BEM模板引擎的Sails js项目存根

    sudo dpkg-reconfigure locales curl -sL https://deb.nodesource.com/setup | sudo bash - sudo apt-get install nodejs sudo apt-get install build-essential sudo apt-get install imagemagick sudo apt-get ...

    Ubuntu下安装和卸载软件的方法分享

    在ubuntu当中,安装应用程序我所知道的有三种方法,分别是apt-get,dpkg安装deb两种方法,下面来看看详细的介绍吧。 1、通过deb包安装的情况: 安装.deb包: 代码: sudo dpkg -i package_file.deb 反安装.deb包: ...

    simple-store-sails:基于Sails.js Web框架的简单商店

    /bin/shsudo apt-get update && sudo apt-get upgradesudo locale-gen ru_RU.UTF-8sudo dpkg-reconfigure localescurl -sL https://deb.nodesource.com/setup | sudo bash -sudo apt-get install nodejssudo apt-...

    Socialnetwork

    sudo apt-get删除scala库scala sudo wget sudo dpkg -i scala-2.12.1.deb sudo apt-get更新sudo apt -获取安装scala SBT 回声“ deb /” | sudo tee -a /etc/apt/sources.list.d/sbt.list sudo apt-key adv --...

    ubuntu mysql 5.6版本的删除/安装/编码配置文件配置

    sudo apt-get autoremove --purge mysql-server* b. sudo apt-get remove mysql-server c. sudo apt-get autoremove mysql-server d. sudo apt-get remove mysql-common (非常重要) 上面的其实有一些是多余的,建议...

    dotNetWebapp

    歌手和相关详细信息有关安装额外依赖项的说明运行此项目之前,必须具有dotnet软件包使用以下命令为Linux安装dotnet core-&gt; wget -O软件包-microsoft-prod.deb sudo dpkg -i软件包-microsoft-prod.deb sudo apt-get...

    java8源码-tensorflow-install-note:ubuntu16.0464bitcuda9.0cudnn7.1源码安装tens

    apt-get update sudo apt-get install oracle-java8-installer java -version //test 2.安装bazel echo "deb [arch=amd64] stable jdk1.8" | sudo tee /etc/apt/sources.list.d/bazel.list curl | sudo apt-key add ...

    ubuntu下和QQ截图一样的截图工具

     这里一般会提示缺少依赖包什么的,执行一下这个命令即可: sudo apt-get -f install  然后再执行一下这个:sudo dpkg -i deepin-scrot_2.0-0deepin_all.deb  接下来我们打开系统设置——设备-键盘-拉到最底下...

    SahanaDTNServer:这是流行的灾难管理系统Sahana Eden与DTN2协议的集成,使用DTNRecv应用程序来接收数据。 这是服务器端。 客户端是一个移动应用程序,其源代码位于此处

    sudo apt-get更新 sudo apt-get install build-essential 须藤apt-get install autoconf 须藤apt-get install libavahi-compat-libdnssd-dev 手动安装Dep。 sudo dpkg -i libdb4.6_4.6.21-16_i386.deb ii。 须藤...

    解决LINUX LITE方块乱码的中文字体

    sudo dpkg-reconfigure locales 2.选择语言编码,默认已选择en_US.UTF8,zh_CN UTF-8 UTF-8,用空格键将以下两项打上星号,zh_CN GB2312,zh_CN GBK GBK,回车确认。 3.选择系统默认语言为英文en_US.UTF8 4.为当前...

    DotNetCore-Linux部属

    Linux安装SDK wget -q ...sudo dpkg -i packages-microsoft-prod.deb sudo apt-get install apt-transport-https sudo apt-get update sudo apt-get install dotnet-sdk-2.1

    linux系统操作指令大全

    一、文件/文件夹管理 二、系统管理 三、打包/解压 四、make编译 五、apt命令 系统 查看内核 ...#sudo apt-get autoclean 清理所有软件缓存 #sudo apt-get clean 。。。。。。。等等多种指令

    albiziapp-react

    sudo apt-get update ; \ sudo apt-get install -y apt-transport-https && \ sudo apt-get update && \ sudo apt-get install -y dotnet-sdk-3.1 Docker和docker-compose安装 现场安装 git clone https://git

    apt-get安装包f

    1. 解决aptitude安装后导致apt-get失败。 2. 针对ubtuntu 18.4版本。 3. 解决apt-get安装失败。 4. 解压之后,直接运行sudo dpkg -i *.deb

Global site tag (gtag.js) - Google Analytics