Ubuntu 16.04 查看软件包的命令技巧

2023-05-16

Ubuntu作为一款常用的Linux系统,有着Linux下常用的使用命令行操作模式。下面为大家介绍一些管理软件包的常用命令。下面的命令需要在终端下输入,任何实用‘sudo’作为前缀的命令都需要拥有root访问权限,所以会被提示输入密码。

Ubuntu中软件包的查询方法:

Dpkg 使用文本文件来作为数据库.通称在 /var/lib/dpkg 目录下. 通称在 status 文件中存储软件状态,和控制信息. 在 info/ 目录下备份控制文件, 并在其下的 .list 文件中记录安装文件清单, 其下的 .mdasums 保存文件的 MD5 编码.

 

1. 查看已经安装了哪些包

dpkg -l

如果系统使用时间长,安装了许多包查看不便时,可以使用翻页查看

dpkg -l | less

yexiang@ubuntu:<etc>$ dpkg -l | less
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name                                Version                                    Architecture Description
+++-===================================-==========================================-============-===============================================================================
ii  accountsservice                     0.6.40-2ubuntu11.3                         amd64        query and manipulate user account information
ii  adduser                             3.113+nmu3ubuntu4                          all          add and remove users and groups
ii  amd64-microcode                     3.20180524.1~ubuntu0.16.04.1               amd64        Processor microcode firmware for AMD CPUs
ii  apparmor                            2.10.95-0ubuntu2.10                        amd64        user-space parser utility for AppArmor
ii  apt                                 1.2.15ubuntu0.2                            amd64        commandline package manager

每条记录对应一个软件包, 注意每条记录的第一, 二, 三个字符. 这就是软件包的状态标识, 后边依此是软件包名称, 版本号, 和简单描述.

  • 第一字符为期望值,它包括:
    • u 状态未知,这意味着软件包未安装,并且用户也未发出安装请求.
    • i 用户请求安装软件包.
    • r 用户请求卸载软件包.
    • p 用户请求清除软件包.
    • h 用户请求保持软件包版本锁定.
  • 第二列,是软件包的当前状态.此列包括软件包的六种状态.
    • n 软件包未安装.
    • i 软件包安装并完成配置.
    • c 软件包以前安装过,现在删除了,但是它的配置文件还留在系统中.
    • u 软件包被解包,但还未配置.
    • f 试图配置软件包,但是失败了.
    • h 软件包安装,但是但是没有成功.
  • 第三列标识错误状态,可以总结为四种状态. 第一种状态标识没有问题,为空. 其它三种符号则标识相应问题.
    • h 软件包被强制保持,因为有其它软件包依赖需求,无法升级.
    • r 软件包被破坏,可能需要重新安装才能正常使用(包括删除).
    • x 软包件被破坏,并且被强制保持.

也可以以统配符模式进行模糊查询, 比如我要查找以nano字符开始的所有软件包:

dpkg -l nano*

2. 查看软件xxx安装内容

dpkg -L xxx

可以查看该软件安装的目录和文件。

yexiang@ubuntu:<etc>$ dpkg -L lirc 
/.
/usr
/usr/share
/usr/share/doc
/usr/share/doc/lirc
/usr/share/doc/lirc/html
...
/usr/share/lirc
/usr/share/lirc/extras
/usr/share/lirc/extras/transmitters
/usr/share/lirc/extras/transmitters/sky
/usr/share/lirc/extras/transmitters/sky/general.conf
...
/usr/bin
/usr/bin/irpty
/usr/bin/irw
/usr/bin/irsend
...

3. 清除所有已删除包的残余配置文件

dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P

可以清除一些残留无用的配置。

yexiang@ubuntu:<etc>$ dpkg -l |grep ^rc
rc  tftpd                               0.17-18ubuntu2                             amd64        Trivial file transfer protocol server
rc  xinetd                              1:2.3.15-6                                 amd64        replacement for inetd with many enhancements

yexiang@ubuntu:<etc>$ dpkg -l |grep ^rc|awk '{print $2}' 
tftpd
xinetd

4. 显示系统安装包的统计信息

apt-cache stats

可以统计已经安装包的数量,大小,占用空间等。

yexiang@ubuntu:<etc>$ sudo apt-cache stats 
[sudo] password for yexiang: 
Total package names: 74107 (1,482 k)
Total package structures: 114321 (5,030 k)
  Normal packages: 85242
  Pure virtual packages: 2283
  Single virtual packages: 8846
  Mixed virtual packages: 2916
  Missing: 15034
Total distinct versions: 101333 (8,107 k)
Total distinct descriptions: 160450 (3,851 k)
Total dependencies: 748407/230454 (18.7 M)
Total ver/file relations: 12358 (297 k)
Total Desc/File relations: 29378 (705 k)
Total Provides mappings: 30028 (721 k)
Total globbed strings: 164906 (3,720 k)
Total slack space: 28.8 k
Total space accounted for: 43.0 M
Total buckets in PkgHashTable: 50503
  Unused: 11618
  Used: 38885
  Utilization: 76.9954%
  Average entries: 2.93998
  Longest: 15
  Shortest: 1
Total buckets in GrpHashTable: 50503
  Unused: 11618
  Used: 38885
  Utilization: 76.9954%
  Average entries: 1.9058
  Longest: 8
  Shortest: 1

5.  显示xxx包的信息

apt-cache show xxx

可以看到某个包的源、版本等信息。

yexiang@ubuntu:<etc>$ sudo apt-cache show lirc
Package: lirc
Priority: extra
Section: universe/utils
Installed-Size: 2131
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Original-Maintainer: lirc Maintainer Team <pkg-lirc-maint@lists.alioth.debian.org>
Architecture: amd64
Version: 0.9.0-0ubuntu6
Replaces: lirc-modules-source
Depends: libasound2 (>= 1.0.16), libc6 (>= 2.15), libftdi1, liblircclient0 (>= 0.6.4), libportaudio2 (>= 19+svn20101113), libusb-0.1-4 (>= 2:0.1.12), debconf (>= 0.5) | debconf-2.0, lsb-base, setserial
Recommends: udev
Suggests: lirc-x
Conflicts: lirc-modules-source, makedev (<< 2.3.1-88)
Filename: pool/universe/l/lirc/lirc_0.9.0-0ubuntu6_amd64.deb
Size: 376216
MD5sum: a8d129090da1aa2bf7bf86d17b70f9b2
SHA1: 2eef35b0a9c1ac446b0d21e857ce4f7e43f704e0
SHA256: aa0e6dc9eca6530684b13ff40d07042a6521be388f22be9236dc048c90a95e70
Description-en: infra-red remote control support
 LIRC stands for 'Linux Infra-red Remote Control'.
 .
 This package provides the daemons and some utilities to support infra-red
 remote controls under Linux.
Description-md5: 13afcdab0a98aaea919ab1053fe3d187
Homepage: http://lirc.org
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Origin: Ubuntu
Supported: 3y
Task: mythbuntu-frontend, mythbuntu-desktop, mythbuntu-backend-slave, mythbuntu-backend-master

6.  查找文件属于哪个包

dpkg -S filename :在当前安装的包里查找文件。

yexiang@ubuntu:<etc>$ dpkg -S bt829.h
linux-headers-4.4.0-59-generic: /usr/src/linux-headers-4.4.0-59-generic/include/config/lirc/bt829.h
linux-headers-4.4.0-81-generic: /usr/src/linux-headers-4.4.0-81-generic/include/config/lirc/bt829.h
linux-headers-4.4.0-134-generic: /usr/src/linux-headers-4.4.0-134-generic/include/config/lirc/bt829.h
linux-headers-4.4.0-128-generic: /usr/src/linux-headers-4.4.0-128-generic/include/config/lirc/bt829.h
linux-headers-4.4.0-112-generic: /usr/src/linux-headers-4.4.0-112-generic/include/config/lirc/bt829.h
linux-headers-4.4.0-21-generic: /usr/src/linux-headers-4.4.0-21-generic/include/config/lirc/bt829.h
linux-headers-4.4.0-141-generic: /usr/src/linux-headers-4.4.0-141-generic/include/config/lirc/bt829.h
linux-headers-4.4.0-130-generic: /usr/src/linux-headers-4.4.0-130-generic/include/config/lirc/bt829.h
linux-headers-4.4.0-57-generic: /usr/src/linux-headers-4.4.0-57-generic/include/config/lirc/bt829.h
linux-headers-4.4.0-104-generic: /usr/src/linux-headers-4.4.0-104-generic/include/config/lirc/bt829.h

7. 查询软件xxx依赖哪些包

apt-cache depends xxx

yexiang@ubuntu:<etc>$ apt-cache depends lirc
lirc
  Depends: libasound2
  Depends: libc6
  Depends: libftdi1
  Depends: liblircclient0
  Depends: libportaudio2
  Depends: libusb-0.1-4
 |Depends: debconf
  Depends: <debconf-2.0>
    cdebconf
    debconf
  Depends: lsb-base
  Depends: setserial
  Conflicts: <lirc-modules-source>
  Conflicts: makedev
  Recommends: udev
    udev:i386
  Suggests: lirc-x
  Replaces: <lirc-modules-source>

8. 查询软件xxx被哪些包依赖

apt-cache rdepends xxx

yexiang@ubuntu:<etc>$ apt-cache rdepends lirc
lirc
Reverse Depends:
  lirc-x
  vdr
  mythbuntu-live-autostart
  mythbuntu-lirc-generator
  lirc-x
  liblircclient0
  kremotecontrol
  inputlirc
  freevo-lirc
  banshee-extension-lirc

9. 在所有源包里查找文件 (包含未安装的包)

apt-cache search filename 

yexiang@ubuntu:<etc>$ sudo apt-cache search skype
libopus-dev - Opus codec library development files
libopus0 - Opus codec runtime library
libopus-ocaml - OCaml interface to the opus library -- runtime files
libopus-ocaml-dev - OCaml interface to the opus library -- developpement files
libsipwitch-dev - secure peer-to-peer SIP VoIP server - development files
libsipwitch1 - secure peer-to-peer SIP VoIP server - shared libraries
libsipwitch1-dbg - secure peer-to-peer SIP VoIP server - debug symbols
postgresql-9.5-pgq3 - Skype tools for PostgreSQL replication, londiste and PGQ
python-pgq3 - python framework for Skype tools for PostgreSQL replication
python-skytools3 - python framework for Skype tools for PostgreSQL replication
sipwitch - secure peer-to-peer VoIP server for the SIP protocol
sipwitch-cgi - secure peer-to-peer SIP VoIP server - CGI XML-RPC interface
skytools3 - Skype tools for PostgreSQL replication, londiste and PGQ
skytools3-ticker - Skype tools for PostgreSQL replication, londiste and PGQ
skytools3-walmgr - Skype tools for PostgreSQL replication and failover
empathy-skype - Skype plugin for libpurple messengers (Empathy-specific files)
pidgin-skype - Skype plugin for libpurple messengers (Pidgin-specific files)
pidgin-skype-common - Skype plugin for libpurple messengers (common files)
pidgin-skype-dbg - Skype plugin for libpurple messengers (debug symbols)
python-skype4py - Skype API wrapper for Python

总结:

apt-cache search # ------(package 搜索包)
apt-cache show #------(package 获取包的相关信息,如说明、大小、版本等)
apt-get install # ------(package 安装包)
apt-get install # -----(package --reinstall 重新安装包)
apt-get -f install # -----(强制安装, "-f = --fix-missing"当是修复安装吧...)
apt-get remove #-----(package 删除包)
apt-get remove --purge # ------(package 删除包,包括删除配置文件等)
apt-get autoremove --purge # ----(package 删除包及其依赖的软件包+配置文件等(只对6.10有效,强烈推荐))
apt-get update #------更新源
apt-get upgrade #------更新已安装的包
apt-get dist-upgrade # ---------升级系统
apt-get dselect-upgrade #------使用 dselect 升级
apt-cache depends #-------(package 了解使用依赖)
apt-cache rdepends # ------(package 了解某个具体的依赖,当是查看该包被哪些包依赖吧...)
apt-get build-dep # ------(package 安装相关的编译环境)
apt-get source #------(package 下载该包的源代码)
apt-get clean && apt-get autoclean # --------清理下载文件的存档 && 只清理过时的包
apt-get check #-------检查是否有损坏的依赖
dpkg -S filename -----查找filename属于哪个软件包
apt-file search filename -----查找filename属于哪个软件包
apt-file list packagename -----列出软件包的内容
apt-file update --更新apt-file的数据库
 

1. dpkg包管理工具

dpkg -r 卸载软件包.不是完全的卸载,它的配置文件还存在.
dpkg --info "软件包名" --列出软件包解包后的包名称.
dpkg -l     --列出当前系统中所有的包.可以和参数less一起使用在分屏查看.
dpkg -l |grep -i "软件包名" --查看系统中与"软件包名"相关联的包.
dpkg -s   查询已安装的包的详细信息. dpkg -L   查询系统中已安装的软件包所安装的位置.
dpkg -S   查询系统中某个文件属于哪个软件包.
dpkg -I   查询deb包的详细信息,在一个软件包下载到本地之后看看用不用安装(看一下呗).
dpkg -i 手动安装软件包(这个命令并不能解决软件包之前的依赖性问题),如果在安装某一个软件包的时候遇到了软件依赖的问题,可以用apt-get -f install在解决信赖性这个问题.
dpkg -reconfigure 重新配置 
dpkg -P 全部卸载(但是还是不能解决软件包的依赖性的问题)

2. APT管理工具常用命令
apt-cache 加上不同的子命令和参数的使用可以实现查找,显示软件,包信息及包信赖关系等功能.
apt-cache stats 显示当前系统所有使用的Debain数据源的统计信息.
apt-cache search +"包名",可以查找相关的软件包.
apt-cache show   +"包名",可以显示指定软件包的详细信息.
apt-cache depends +"包名",可以查找软件包的依赖关系.
apt-get upgrade   更新系统中所有的包到最新版
apt-get install   安装软件包
apt-get --reindtall install 重新安装软件包
apt-get remove 卸载软件包
apt-get --purge remove 完全卸载软件包
apt-get clean 清除无用的软件包
在用命令apt-get install之前,是先将软件包下载到/var/cache/apt/archives中,之后再进行安装的.所以我们可以用apt-get clean清除/var/cache/apt/archives目录中的软件包.

--------------------------------------------
Debian的软件包管理工具命令不完全列表
--------------------------------------------
Debian系统中所有的包信息都在/var/lib/dpkg下.其中/var/lib/dpkg/info目录中保存了各个软件包的信息及管理文件.每个文件的作用如下:
以 ".conffiles"     结尾的文件记录软件包的配置列表.
以 ".list"          结尾的文件记录了软件包的文件列表,用户可在文件当中找到软件包文件的具体安装位置.
以 ".md5sums"       结尾的文件记录了md5信息,用来进行包的验证的.
以 ".config"        结尾的文件是软件包的安装配置角本.
以 ".postinst"      角本是完成Debian包解开之后的配置工作,通常用来执行所安装软件包相关的命令和服务的重新启动.
以 ".preinst"       角本在Debain解包之前运行,主要作用是是停止作用于即将升级的软件包服务直到软件包安装或和升级完成.
以 ".prerm"         脚本负责停止与软件包关联的daemon服务,在删除软件包关联文件之前执行.
以 ".postrm"        脚本负责修改软件包链接或文件关联,或删除由它创建的文件.

/var/lib/dpkg/available是软件包的描述信息.
包括当前系统中所有使用的Debian安装源中所有的软件包,还包括当前系统中已经安装和未安装的软件包.

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ubuntu 16.04 查看软件包的命令技巧 的相关文章

随机推荐

  • 程序猿健康养生口诀和食谱来了

    程序猿健康养生口诀和食谱来了1 饱不洗头 饿不洗澡 冷水洗脸 美容保健 汗水没落 冷水莫浇 温水刷牙 防敏固齿 2 吃米带糠 吃菜带帮 男不离韭 女不离藕 青红萝卜 生克熟补 食不过饱 饱不急卧 3 养生在动 养心在静 心不清净 思虑妄生
  • 数据可视化数据存储

    数据可视化数据存储是根据不同的需求 要爬取的数据可能会很多 这时就需要把数据保存下来进行后续的清理 分析和统计操作 常用的存储方式有数据库存储和文件存储等 其中 使用数据库方式来存储数据涉及不同的数据库系统 每种数据库系统之间的差别也很大
  • 数据可视化数据存储的好处

    数据可视化定义 xff1a 通过可视表达增强人们完成某些任务的效率 数据可视化数据存储是现代商业活动中经常会使用到的一种方法 xff0c 相对于其他的方式来讲它可以使数据的变化变得更为直观 xff0c 而大量的数据可视化之后会有很多人选择将
  • 泛微移动平台e-mobile漏洞利用

    泛微移动平台e mobile漏洞利用基本信息 漏洞情报编号 xff1a vulbox intel 15244 是否可自动化组件 xff1a 是 CVE ID xff1a 暂无 发布日期 xff1a 2022 04 01 15 48 45 C
  • 泛微移动平台e-mobile漏洞利用的修复方案

    泛微移动平台e mobile漏洞利用的修复方案 1 对产生漏洞模块的传入参数进行有效性检测 xff0c 对传入的参数进行限定 2 当用户输入限定字符时 xff0c 立刻转向自定义的错误页 xff0c 不能使用服务器默认的错误输出方式 3 对
  • /.well-known/ 漏洞

    well known openid configuration 这些通常会返回一个 JSON 配置文件 其中包含关键信息 站点中隐藏的 well known 目录是IETF定义的知名站点的URI前缀 常被用来证明域名的所有权 使用ACME来
  • 电脑编程自学(零基础自学编程怎么入门)

    电脑编程自学入手 确定编程学习的方向 编程语言有多种 php C C C JAVA Python等 每种语言都有不同的优缺点 可以根据自己的兴趣方向选择一门编程语言作为自己的学习目标 基础阶段的语法学习 学习任何一门编程语言 都需要掌握其编
  • Linux(Linux各目录结构详解)

    我们知道Linux系统是一个文件系统 xff0c 它的文件系统就类似windows系统下的磁盘文件系统 我们连接上一台linux系统的服务器 输入命令 xff1a ls 我们可以看到 linux系统的根目录下有这些目录 bin boot d
  • 电脑编程自学(电脑编程自学能学会吗)

    电脑编程自学能学会吗 自己学习编程是能学会的 如果你愿意每天为学习编码付出一点努力 那么通过免费的在线资源以及利用Quora等平台提供的其他支持渠道 你绝对有可能做到这一点 所以不要犹豫 迈出学习如何编写代码的第一步 并看着自己随着时间的推
  • bbwbbw(Java打印输出bbwbbw)

    Java打印输出数据println和print打印输出数据 xff0c System out println 34 bbwbbw 34 System out println 34 h5 bbwbbw 34 h5 bbwbbw System
  • 需要家长或监护人同意才能使用该账户

    使用微软账户登录时提示 需要家长或监护人同意才能使用该账户 的处理方法 xff0c 电脑登录提示这个 需要家长或监护人同意才能使用该账户 1 点击了解更多关于家长监护人许可 xff0c 点击更新账户信息 xff0c 更改出生日期 xff0c
  • 电脑登录提示“需要家长或监护人同意才能使用该账户”

    今天装电脑 xff0c 电脑登录提示这个 需要家长或监护人同意才能使用该账户 使用微软账户登录时提示 需要家长或监护人同意才能使用该账户 的处理方法 xff1a 1 点击了解更多关于家长监护人许可 xff0c 点击更新账户信息 xff0c
  • 大b和小b的区别是什么

    计算机里大b和小b的区别是什么 B与b nbsp kbps字节宽带换算区别掉线 nbsp BYTE字节bit比特1B 8b这里指的是 带宽网速的 单位计算方 式方法及关 系 在计算机科学中 bit 比特 是表示信息的最小单位 叫做二进制位
  • https tk6 us

    https tk6 us专题 为您展现优质的https tk6 us各类信息 在这里您可以找到关于https tk6 us的相关内容及最新的https tk6 us贴子 https tk6 us服务器iP xff1a 当前解析 xff1a
  • cron表达式(cron表达式解析)

    Cron表达式是一个字符串 字符串以5或6个空格隔开 分为6或7个域 每一个域代表一个含义 Cron有如下两种语法格式 1 Seconds Minutes Hours DayofMonth Month DayofWeek Year 2 Se
  • sa账号密码在那个表里面

    sa账号密码在那个表里面 xff0c syslogins in master db 不过是加密的 xff0c 看不出是什么的 SA管理帐户是放在视图下的 master数据库 视图 sys sql logins sqlserver怎么查看sa
  • 《web开发: (Node.js)Express 接口、跨域CORS》

    一 Express 接口编写 1 创建基本的服务器 2 创建 API 路由模块 3 编写 GET 接口
  • Linux系统打包QT程序

    当前测试环境是 Ubuntu18 04 桌面版本 1 安装工具 sudo apt get install git g 43 43 libgl1 mesa dev当然你的Ubuntu肯定安装了QT工具 xff0c 通过QCreator等工具编
  • Linux(强大的yum命令)

    yum 读 j m xff0c 中文谐音 xff1a 样安ing yum xff08 Yellow dog Updater Modified xff09 是一个在 Fedora 和 RedHat 以及 SUSE 中的 Shell 前端软件包
  • Ubuntu 16.04 查看软件包的命令技巧

    Ubuntu作为一款常用的Linux系统 xff0c 有着Linux下常用的使用命令行操作模式 下面为大家介绍一些管理软件包的常用命令 下面的命令需要在终端下输入 xff0c 任何实用 sudo 作为前缀的命令都需要拥有root访问权限 x