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通常有
main
、contrib
和non-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 二进制软件包的命名格式: <包名>_<版本号>-<Debian修订号>.deb
- source格式
source格式的软件包,包括一个描述源代码包的.dsc文件, 一个包含gzip-tar归档压缩格式的未经修改源码的.orig.tar.gz文件, 一个包含对源代码作Debian特有修改的.diff.gz文件。可以使用 dpkg-source 打包和解压 debian 源码文档。
参考
网友评论