查看“Linux包管理:dpkg与apt”的源代码
←
Linux包管理:dpkg与apt
跳到导航
跳到搜索
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
[[category:Linux]] == dpkg == dpkg,即package manager for Debian(debian系统的包管理工具)。“dpkg is a tool to install, build, remove and manage Debian packages”,dpkg是Debian的一个底层包管理工具,主要用于对已下载到本地和已安装的软件包进行管理。<br/> 这个机制最早由Debian Linux社区所开发出来的,通过dpkg的机制,Debian提供的软件就能够简单的安装起来,同时能提供安装后的软件信息。派生于Debian的其它Linux distributions大多使用dpkg这个机制来管理,包括B2D,Ubuntu等。 === deb软件包名规则 === 格式:“Package_Version-Build_Architecture.deb”。<br/> 如:nano_1.3.10-2_i386.deb # 软件包名称(Package Name): nano # 版本(Version Number):1.3.10 # 修订号(Build Number):2 # 平台(Architecture):i386 === 相关文件 === {| class="wikitable" ! 文件 !! 说明 |- | /etc/dpkg/dpkg.cfg | dpkg的配置文件 |- | /var/log/dpkg.log | dpkg的日志文件 |- | /var/lib/dpkg/available | 存放系统所有安装过的软件包信息 |- | /var/lib/dpkg/status | 存放系统现在所有安装软件的状态信息 |- | /var/lib/dpkg/info | 存放安装软件包控制目录的控制信息文件 |} === dpkg数据库 === * dpkg 使用文本文件作为数据库来维护系统中软件,包括文件清单、依赖关系、软件状态等详细的内容; 相关文本文件通常在“/var/lib/dpkg 目录下,通常在: # “status”文件中存储软件状态和控制信息 # “info/”目录下备份控制文件,并在其下的; #: “.list”文件中记录安装文件清单; #: “.md5sums”保存文件的 MD5 编码。 [[File:dpkg数据库文本.png|800px]] ==== 查询dpkg数据库 ==== 显示所有已安装的Deb包“dpkg -l”: [[File:dpkg查看数据库.png|800px]] 每条记录的前三个字符为软件包的状态标识(Desired|Status|Err),后边依此是软件包名称、版本号、硬件平台和简单描述,其中 # 第一字符,为期望值(Desired=Unknown/Install/Remove/Purge/Hold),它包括: #: u Unknown状态未知,这意味着软件包未安装,并且用户也未发出安装请求. #: i Install用户请求安装软件包. #: r Remove用户请求卸载软件包. #: p Purge用户请求清除软件包. #: h Hold用户请求保持软件包版本锁定. # 第二列,为软件包的当前状态(Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend): #: n Not软件包未安装. #: i Inst软件包安装并完成配置. #: c Conf-files软件包以前安装过,现在删除了,但是它的配置文件还留在系统中. #: u Unpacked软件包被解包,但还未配置. #: f halF-conf试图配置软件包,但是失败了. #: h Half-inst软件包安装,但是但是没有成功. #: w trig-aWait触发器等待 #: t Trig-pend触发器未决 # 第三列标识错误状态,第一种状态标识“(none)”表示没有问题,其它符号则标识相应问题(Err?=(none)/Reinst-required (Status,Err: uppercase=bad)) #: h 软件包被强制保持,因为有其它软件包依赖需求,无法升级. #: r Reinst-required,软件包被破坏,可能需要重新安装才能正常使用(包括删除). #: x 软包件被破坏,并且被强制保持. === dpkg 子命令 === 为了方便用户使用,dpkg不仅提供了大量的参数选项,同时也提供了许多子命令。比如: <syntaxhighlight lang="bash"> dpkg-deb、dpkg-divert、dpkg-query、dpkg-split、dpkg-statoverride、start-stop-daemon </syntaxhighlight> === dpkg 使用 === ==== 安装 ==== 命令: # dpkg -i package-name.deb:安装软件包,必须是deb包的完整名称(软件的安装可被拆分为两个对立的过程“解包”和“配置”); #: dpkg --unpack package-name.deb:解开软件包到系统目录但不配置;(“解包”) #: dpkg --configure package-name.deb:配置软件包;(“配置”) # dpkg -c package-name.deb:列出 deb 包的内容 选项: # -R,--recursive:递归地处理在指定目录中的指向特定目录中所匹配的所有安装包; #: 可以和 -i, -A, --install, --unpack 与--avail一起使用 ==== 移除 ==== # dpkg -r package-name:移除软件包,但保留其配置文件 # dpkg -P package-name:清除软件包的所有文件 ==== 查询 ==== # dpkg -l package-name-pattern:查看系统中软件包名符合pattern模式的软件包 # dpkg -L package-name:查看package-name对应的软件包安装的文件及目录 # dpkg -p package-name:显示包的具体信息 # dpkg -s package-name:查看package-name(已安装)对应的软件包信息 # dpkg -S filename-search-pattern:从已经安装的软件包中查找包含filename的软件包名称 *(也可使用子命令dpkg-query来进行查询操作) == apt ==
返回至“
Linux包管理:dpkg与apt
”。
导航菜单
个人工具
登录
命名空间
页面
讨论
大陆简体
已展开
已折叠
查看
阅读
查看源代码
查看历史
更多
已展开
已折叠
搜索
导航
首页
最近更改
随机页面
MediaWiki帮助
笔记
服务器
数据库
后端
前端
工具
《To do list》
日常
阅读
电影
摄影
其他
Software
Windows
WIKIOE
所有分类
所有页面
侧边栏
站点日志
工具
链入页面
相关更改
特殊页面
页面信息