Linux软件通常都是存放在存储库中,并通过包(Package)的形式进行分发。处理包的工作被称为包管理。包提供了操作系统的基本组件,以及共享的库、应用程序、服务和文档。常用的包管理工具如下
Linux系统 | 格式 | 工具 |
---|---|---|
Debian | .deb |
apt,apt-cache ,aptitude,apt-get,dpkg |
Ubuntu | .deb |
apt,apt-cache ,aptitude,apt-get,dpkg |
CentOS | .rpm |
yum |
Fedora | .rpm |
dnf |
FreeBSD | Ports,.txz
|
make,pkg |
aptitude
用法: aptitude [-S 文件名] [-u|-i]
aptitude [选项] <动作> ...
动作 (如果未指定,aptitude 将进入交互模式):
install - 安装/升级软件包。
remove - 卸载软件包。
purge - 卸载软件包并删除其配置文件。
hold - 将软件包置于保持状态。
unhold - 取消对一个软件包的保持命令。
markauto - 将软件包标记为已经自动安装。
unmarkauto - 将软件包标记为已经手动安装。
forbid-version - 禁止 aptitude 升级到某一特定版本的软件包。
update - 下载新/可升级软件包列表。
safe-upgrade - 执行一次安全的升级。
full-upgrade - 执行升级,可能会安装和卸载软件包。
build-dep - 安装软件包的编译依赖。
forget-new - 忘记哪些软件包是“新”的。
search - 按名称 和/或 表达式搜索软件包。
show - 显示一个软件包的详细信息。
versions - Displays the versions of specified packages.
clean - 删除已下载的软件包文件。
autoclean - 删除旧的已下载软件包文件。
changelog - 查看一个软件包的变更日志。
download - 下载软件包的 .deb 文件。
reinstall - 下载并(可能)重新安装一个现在已经安装了的软件包。
why - Show the manually installed packages that require a package, or
why one or more packages would require the given package.
why-not - 显示导致与给定软件包包冲突的手动安装的包,或者为什么
如果安装一个或多个软件包会导致与给定软件包冲突。
选项:
-h 此帮助文本。
--no-gui 即使可用,也不使用 GTK 图形用户界面。
-s 模拟动作,但是并不真正执行。
-d 仅仅下载软件包,不安装或者卸载任何东西。
-P Always prompt for confirmation of actions.
-y 假设对简单的 yes/no 问题回答“yes”。
-F 格式 指定显示搜索结果的格式;参见手册。
-O 次序 指定如何排列显示搜索结果;参见手册。
-w 宽度 指定显示搜索结果的格式宽度。
-f 积极地尝试修复损坏的软件包。
-V 显示就要安装的软件包版本。
-D 显示自动改变的软件包的依赖关系
-Z 显示每个软件包的安装尺寸的变化。
-v 显示附加信息。(可能会提供多次)。
-t [release] 设置将要从中安装软件包的发布版本。
-q 在命令行状态下,不显示增量进度指示器
-o key=val 直接设置名为“key”的配置选项。
--with(out)-recommends Specify whether or not to treat recommends as
strong dependencies.
-S fname 从文件名中读取 aptitude 的扩展状态信息。
-u 开始运行时下载新的软件包列表。
(terminal interface only)
-i 开始运行时执行安装。
(terminal interface only)
这个 aptitude 没有超级牛力。
apt
用法: apt [选项] 命令
命令行软件包管理器 apt 提供软件包搜索,管理和信息查询等功能。
它提供的功能与其他 APT 工具相同(像 apt-get 和 apt-cache),
但是默认情况下被设置得更适合交互。
常用命令:
list - 根据名称列出软件包
search - 搜索软件包描述
show - 显示软件包细节
install - 安装软件包
remove - 移除软件包
autoremove - 卸载所有自动安装且不再使用的软件包
update - 更新可用软件包列表
upgrade - 通过 安装/升级 软件来更新系统
full-upgrade - 通过 卸载/安装/升级 来更新系统
edit-sources - 编辑软件源信息文件
参见 apt(8) 以获取更多关于可用命令的信息。
程序配置选项及语法都已经在 apt.conf(5) 中阐明。
欲知如何配置软件源,请参阅 sources.list(5)。
软件包及其版本偏好可以通过 apt_preferences(5) 来设置。
关于安全方面的细节可以参考 apt-secure(8).
apt-get
用法: apt-get [选项] 命令
apt-get [选项] install|remove 软件包1 [软件包2 ...]
apt-get [选项] source 软件包1 [软件包2 ...]
apt-get 可以从认证软件源下载软件包及相关信息,以便安装和升级软件包,
或者用于移除软件包。在这些过程中,软件包依赖会被妥善处理。
常用命令:
update - 取回更新的软件包列表信息
upgrade - 进行一次升级
install - 安装新的软件包(注:软件包名称是 libc6 而非 libc6.deb)
remove - 卸载软件包
purge - 卸载并清除软件包的配置
autoremove - 卸载所有自动安装且不再使用的软件包
dist-upgrade - 发行版升级,见 apt-get(8)
dselect-upgrade - 根据 dselect 的选择来进行升级
build-dep - 为源码包配置所需的编译依赖关系
clean - 删除所有已下载的包文件
autoclean - 删除已下载的旧包文件
check - 核对以确认系统的依赖关系的完整性
source - 下载源码包文件
download - 下载指定的二进制包到当前目录
changelog - 下载指定软件包,并显示其变更日志(changelog)
参见 apt-get(8) 以获取更多关于可用命令的信息。
程序配置选项及语法都已经在 apt.conf(5) 中阐明。
欲知如何配置软件源,请参阅 sources.list(5)。
软件包及其版本偏好可以通过 apt_preferences(5) 来设置。
关于安全方面的细节可以参考 apt-secure(8).
apt-cache
用法: apt-cache [选项] 命令
apt-cache [选项] show 软件包1 [软件包2 ...]
apt-cache 可以查询和显示已安装和可安装软件包的可用信息。
它专门工作在本地的数据缓存上,而这些缓存可以通过比如
apt-get 的 'update' 命令来更新。如果距离上一次更新的时间太久,
那么它显示的信息可能就会过时。不过作为交换,apt-cache 不依赖
当前软件源的可用性(比如:离线状态)。
常用命令:
showsrc - 显示源文件的各项记录
search - 根据正则表达式搜索软件包列表
depends - 显示该软件包的依赖关系信息
rdepends - 显示所有依赖于该软件包的软件包名字
show - 以便于阅读的格式介绍该软件包
pkgnames - 列出所有软件包的名字
policy - 显示软件包的安装设置状态
参见 apt-cache(8) 以获取更多关于可用命令的信息。
程序配置选项及语法都已经在 apt.conf(5) 中阐明。
欲知如何配置软件源,请参阅 sources.list(5)。
软件包及其版本偏好可以通过 apt_preferences(5) 来设置。
关于安全方面的细节可以参考 apt-secure(8).
dpkg
用法:dpkg [<选项> ...] <命令>
Commands:
-i|--install <.deb file name> ... | -R|--recursive <directory> ...
--unpack <.deb file name> ... | -R|--recursive <directory> ...
-A|--record-avail <.deb file name> ... | -R|--recursive <directory> ...
--configure <package> ... | -a|--pending
--triggers-only <package> ... | -a|--pending
-r|--remove <package> ... | -a|--pending
-P|--purge <package> ... | -a|--pending
-V|--verify <package> ... Verify the integrity of package(s).
--get-selections [<pattern> ...] Get list of selections to stdout.
--set-selections Set package selections from stdin.
--clear-selections Deselect every non-essential package.
--update-avail [<Packages-file>] Replace available packages info.
--merge-avail [<Packages-file>] Merge with info from file.
--clear-avail Erase existing available info.
--forget-old-unavail Forget uninstalled unavailable pkgs.
-s|--status <package> ... Display package status details.
-p|--print-avail <package> ... Display available version details.
-L|--listfiles <package> ... List files 'owned' by package(s).
-l|--list [<pattern> ...] List packages concisely.
-S|--search <pattern> ... Find package(s) owning file(s).
-C|--audit [<package> ...] Check for broken package(s).
--yet-to-unpack Print packages selected for installation.
--predep-package Print pre-dependencies to unpack.
--add-architecture <arch> Add <arch> to the list of architectures.
--remove-architecture <arch> Remove <arch> from the list of architectures.
--print-architecture Print dpkg architecture.
--print-foreign-architectures Print allowed foreign architectures.
--assert-<feature> Assert support for the specified feature.
--compare-versions <a> <op> <b> Compare version numbers - see below.
--force-help Show help on forcing.
-Dh|--debug=help Show help on debugging.
-?, --help 显示本帮助信息。
--version 显示版本信息。
Assertable features: support-predepends, working-epoch, long-filenames,
multi-conrep, multi-arch, versioned-provides.
调用 dpkg 并带参数 -b, --build, -c, --contents, -e, --control, -I, --info,
-f, --field, -x, --extract, -X, --vextract, --ctrl-tarfile, --fsys-tarfile
是针对归档文件的。 (输入 dpkg-deb --help 获取帮助)
选项:
--admindir=<目录> 使用 <目录> 而非 /var/lib/dpkg。
--root=<目录> 安装到另一个根目录下。
--instdir=<目录> 改变安装目录的同时保持管理目录不变。
--path-exclude=<表达式> 不要安装符合Shell表达式的路径。
--path-include=<表达式> 在排除模式后再包含一个模式。
-O|--selected-only 忽略没有被选中安装或升级的软件包。
-E|--skip-same-version 忽略版本与已安装软件版本相同的软件包。
-G|--refuse-downgrade 忽略版本早于已安装软件版本的的软件包。
-B|--auto-deconfigure 就算会影响其他软件包,也要安装。
--[no-]triggers 跳过或强制随之发生的触发器处理。
--verify-format=<格式> 检查输出格式('rpm'被支持)。
--no-debsig 不去尝试验证软件包的签名。
--no-act|--dry-run|--simulate
仅报告要执行的操作 - 但是不执行。
-D|--debug=<八进制数> 开启调试(参见 -Dhelp 或者 --debug=help)。
--status-fd <n> 发送状态更新到文件描述符<n>。
--status-logger=<命令> 发送状态更新到 <命令> 的标准输入。
--log=<文件名> 将状态更新和操作信息到 <文件名>。
--ignore-depends=<软件包>,...
忽略关于 <软件包> 的所有依赖关系。
--force-... 忽视遇到的问题(参见 --force-help)。
--no-force-...|--refuse-...
当遇到问题时中止运行。
--abort-after <n> 累计遇到 <n> 个错误后中止。
可供--compare-version 使用的比较运算符有:
lt le eq ne ge gt (如果版本号为空,那么就认为它先于任意版本号);
lt-nl le-nl ge-nl gt-nl (如果版本号为空,那么就认为它后于任意版本号);
< << <= = >= >> > (仅仅是为了与主控文件的语法兼容)。
'apt' 和 'aptitude' 提供了更为便利的软件包管理。
yum
Usage: yum [options] COMMAND
List of Commands:
check 检查rpmdb里的问题
check-update 检查是否有软件包更新
clean 删除缓存的数据
deplist 列出软件包的依赖关系
distribution-synchronization 已同步软件包到最新可用版本
downgrade 降级包
erase 从系统中移除一个或多个软件包
groups Display, or use, the groups information
help 显示用法信息
history 显示或使用事务历史
info 显示关于软件包或组的详细信息
install 向系统中安装一个或多个软件包
list 列出一个或一组软件包
load-transaction load a saved transaction from filename
makecache 创建元数据缓存
provides 查找提供指定内容的软件包
reinstall 覆盖安装一个包
repolist 显示已配置的仓库
resolvedep 判断哪个包提供了指定的依赖
search 在软件包详细信息中搜索指定字符串
shell 运行交互式的 yum 外壳
update 更新系统中的一个或多个软件包
upgrade 更新软件包同时考虑软件包取代关系
version 显示机器和/或可用的仓库版本。
Options:
-h, --help 显示此帮助消息并退出
-t, --tolerant 容忍错误
-C, --cacheonly 完全从系统缓存运行,不升级缓存
-c [config file], --config=[config file]
配置文件路径
-R [minutes], --randomwait=[minutes]
命令最长等待时间
-d [debug level], --debuglevel=[debug level]
调试输出级别
--showduplicates 在 list/search 命令下,显示仓库里重复的条目
-e [error level], --errorlevel=[error level]
错误输出级别
--rpmverbosity=[debug level name]
rpm调试输出等级
-q, --quiet 安静的操作
-v, --verbose 详尽的操作过程
-y, --assumeyes 回答所有的问题为是
--version 显示 Yum 版本信息并退出
--installroot=[path] 设置目标根目录
--enablerepo=[repo] 启用一个或多个仓库(支持通配符)
--disablerepo=[repo] 禁用一个或多个仓库(支持通配符)
-x [package], --exclude=[package]
用全名或通配符排除软件包
--disableexcludes=[repo]
禁止从主配置,从仓库或者从任何位置排除
--obsoletes 升级时考虑软件包取代关系
--noplugins 禁用 Yum 插件
--nogpgcheck 禁用 gpg 签名检测
--disableplugin=[plugin]
禁用指定名称的插件
--enableplugin=[plugin]
由名称启用插件
--skip-broken 跳过有依赖问题的软件包
--color=COLOR 配置是否使用颜色
--releasever=RELEASEVER
在yum配置和repo文件里设置$releasever的值
--setopt=SETOPTS 设置任意配置和仓库选项
网友评论