Debian 软件包管理

Debian 软件包管理叫做 Advanced Packaging Tool(APT),是一套管理软件包和相关依赖的机制,可以实现应用程序的安装、移除和更新等。APT有很多的实现,如dpkg、apt-get等。

软件源

通常在Debian/Ubuntu中需要配置软件源,即文件/etc/apt/source.list。这是因为APT采用了集中式的软件仓库管理机制,软件仓库实际放置他各类的镜像服务器上(因此彼此之间需要定期同步)。source.list的列表项是方便用户连接到合适的镜像地址。为提高效率,通常为在本地建立一个软件资源的索引文件(又是需要apt update更新)以方便本地主机查询。

软件源的格式通常是4部分:

[archive type] [repository URL] [distribution] [component]
  • archive type有两种,deb表示二进制软件包,deb-src表示源代码软件包。
  • repository URL表示仓库地址,国内镜像站通常是https://mirrors.xxx.xxx/debian (如果是ubuntu,就替换debian)
  • distribution表示发行版本的代号,如Debian 9是stretch,Ubuntu 17.04是zesty(来自完整的版本号Zesty Zapus)
  • component通常有maincontribnon-free三类,可以有多个,空格分隔
    (Ubuntu中是main、restricted、universe和multiverse)

distribution中可能会使用stable而不是特定的版本号;还会有相关的后缀-updates-proposed-updates-backports-security等。

另外除了在线资源,还可有本地的资源,通常是CD-ROM(系统安装盘)等。
例子:

deb  http://deb.debian.org/debian stretch main
deb-src  http://deb.debian.org/debian stretch main

deb  http://deb.debian.org/debian stretch-updates main
deb-src  http://deb.debian.org/debian stretch-updates main

deb http://security.debian.org/ stretch/updates main
deb-src http://security.debian.org/ stretch/updates main

补充Ubuntu PPA源:

PPA (Personal Package Archives)介绍
由launchpad.net(Ubuntu母公司Canonical架设)提供的个人软件包集合(非Ubuntu官方维护),允许用户建立自己的软件仓库,也用于发布一些测试版本的软件,因此可靠性上存在一定缺失。
使用add-apt-repository添加并更新列表后,就可以使用apt安装了。
参考: Ubuntu PPA软件源的介绍与使用


软件包的操作命令

  • apt (apt-get/apt-cache/apt-config的精简结合)
apt 命令 等价的命令 命令的功能
apt install apt-get install 安装软件包
apt remove apt-get remove 移除软件包
apt purge apt-get purge 移除软件包及配置文件
apt update apt-get update 刷新存储库索引
apt upgrade apt-get upgrade 升级所有可升级的软件包
apt autoremove apt-get autoremove 自动删除不需要的包
apt full-upgrade apt-get dist-upgrade 在升级软件包时自动处理依赖关系
apt search apt-cache search 搜索应用程序
apt show apt-cache show 显示装细节
apt list 列出包含条件的包(已安装,可升级等)
apt edit-sources 编辑源列表

APT 包管理系统会将下载的 Deb包缓存在 /var/cache/apt/archives

  • apt-get 在线安装/移除/升级(需要使用sudo提升权限)
    apt-get是命令行形式的软件包管理工具。常用命令:
命令 含义
apt-get update 更新本地包数据库列表
apt-get upgrade 升级包(已安装的,不会删除)
apt-get dist-update 升级包(根据依赖会添加或删除包)
apt-get install packagename [p2 p3...] 安装软件包
apt-get install -y 包名 无需提示,默认参数直接安装
apt-get remove 包名 移除已安装的包
apt-get autoremove 自动移除已知不需要的包/依赖
apt-get autoclean
  • apt-cache 软件包相关信息查询
命令 含义
apt-cache search 搜索内容 搜索软件包(不需要完整名字)
apt-cache show 包名 查看软件包的(本地缓存)信息
  • apt-config 用于读取APT配置文件

  • dpkg 本地.deb包安装和管理

命令 含义
dpkg -s 包名 显示软件包的安装状态(-s, --status)
sudo dpkg -i 包文件名 安装软件包,包以.deb结尾 (-i, --install)
dpkg --info 包名 查看软件包的信息
  • aptitude:同时包含文本模式界面和图形界面
  • 其他
    • Gnome中software软件中心
    • Synaptic(新立得) 图形化软件
    • GDebi 图形化安装本地.deb包$ sudo apt install gdebi

Debian包标准

Debian 的包管理系统
Debian包文件的后缀是.deb,Debian包的形式有二进制)和source(源代码)形式。

  • 二进制格式
  • 二进制格式文件组成包括可执行文件, 配置文件, man/info 手册, 版权信息, 以及其它文档,(如:debian-binary, control.tar.gz和data.tar.gz)。通常以 '.deb' 作为后缀,可以使用 Debian 的 dpkg 工具解包(安装)。
  • (可以使用ar -t packagename.deb查看文件内容;解压ar -x packagename.deb;解压成安装后的格式dpkg -x packagename.deb extract_direction
  • Debian 二进制软件包的命名格式: <包名>_<版本号>-.deb
  • source格式

source格式的软件包,包括一个描述源代码包的.dsc文件, 一个包含gzip-tar归档压缩格式的未经修改源码的.orig.tar.gz文件, 一个包含对源代码作Debian特有修改的.diff.gz文件。可以使用 dpkg-source 打包和解压 debian 源码文档。


参考

  • Debian 管理员手册:6.2. aptitude、apt-get和 apt 命令

你可能感兴趣的:(Debian 软件包管理)