linux -- aptitude

本文介绍了Debian系统中的aptitude包管理器,它不仅具备apt-get的所有功能,还在依赖处理方面表现出色。文章详细解释了如何使用aptitude的各种命令,并提供了软件包选择和操作的具体步骤。
概述
aptitude 是 Debian GNU/Linux 系统中, 非常神奇的的 软件包管理器,基于大名鼎鼎的 APT 机制, 整合了 dselect 和 apt-get的所有功能, 并提供的更多特性,特别是在依赖关系处理上。
aptitude与 apt-get 一样,是 Debian 及其衍生系统中功能极其强大的包管理工具。与 apt-get 不同的是,aptitude在处理依赖问题上更佳一些。举例来说,aptitude在删除一个包时,会同时删除本身所依赖的包。这样,系统中不会残留无用的包,整个系统更为干净。
以下是一些常用 aptitude命令,仅供参考。
命令
作用
aptitude update
更新可用的包列表
aptitude upgrade
升级可用的包
aptitude dist-upgrade
将系统升级到新的发行版
aptitude install pkgname
安装包
aptitude remove pkgname
删除包
aptitude purge pkgname
删除包及其配置文件
aptitude search string
搜索包
aptitude show pkgname
显示包的详细信息
aptitude clean
删除下载的包文件
aptitude autoclean
仅删除过期的包文件

2定义与介绍

要使用 aptitude, 只要打开您喜爱的终端, 键入如下命令即可。
# aptitude
aptitude 的主视图组织的非常有条理,而且界面布局清爽.上部窗口列出的是软件包根据类别和它们在本地系统的状态排序。
aptitude是以树状结构组织的,相关节点以细线相连.可以使用方向键, [PageUp] 和 [PageDown] 进行定位.[Return] 或[Enter] 用于展开或收起某个节点.aptitude 的开视图分为四列: 软件包状态和请求动作, 软件包名称, 当前安装版本(或de><de>nonede>>de>), 最新版本.
aptitude软件包列表中的软件包状态:
v
虚拟
B
损坏
u
解包
C
预配置
H
预安装
c
卸载未清除
p
清除软件包
i
已经安装
E
内部错误
   
在aptitude软件包列表中的请求操作:
h
保持
p
清除
d
删除(卸载)
B
损坏
i
安装
r
重装
u
升级

快速开始

对于任何程序来说, 您首先知道的就是如何退出 -- 在aptitude的主视图中键入[q](quit), 即可退出 aptitude. 任何时候您键入[?](help), 都可以唤出帮助信息.
aptitude是基于apt机制的, 因此在进一步操作前你需要正确的配置sources.list文件.并确保   软件包列表得到了及时的更新. [u](update)命令就是为此设计的, 这类似于 apt-get update 操作.
如果出现了新的软件包(也就是说, 至上次软件包列表更新时, 仍为出现的软件包), 将会在 New Packages 选项下显示. 您可以键入[f](forget that packages are new)命令, 将它们清除到可用软件包选项中去.
移动 光标到您感兴趣的行, 然后键入回车, 将选项展开. 选定一个软件包后, 有关软件包的信息将会出现在 屏幕底部. 如果要查看更详细的信息, 则需要键入[i](information). 键入 [q] (quit)则会退出信息显示屏幕.
对于没有安装的软件包(位于 New Packages 或 Not Installed Packages 区域), 可以选定后, 键入[+](add package), 以标示安装.
对于已经安装的软件包, 则可以进行保持, 删除, 或清除等操作. 保持[=](hold)是指保持软件包的现有版本, 而禁止对其升级. 删除 [-](remove package) 标记已安装软件包为删除状态. [_](purge package) 命令则将软件包标记为清除状态.
一旦您标记完感兴趣的软件包, 就可以键入 [g](go )以保存修改, 使其生效.

软件包的选择

可以通过浏览,然后按下对应键进行操作:
de>[+]de>
选定要安装的软件包。
de>[-]de>
选定要删除的软件包。
de>[_]de>
选定要清除的软件包。
de>[=]de>
保持软件包的当前版本,阻止其被升级。
de>[:]de>
仅在aptitude会话期间锁定软件包。
de>[L]de>
请求重装软件包。
de>[M]de>
将软件包标记为自动安装。自动安装的软件包
 
在手动安装的包对其没有依赖需求时会自动删除。
de>[m]de>
将软件包标记为手动。
de>[R]de>
请求重新配置软件包。
de>[I]de>
请求立即安装软件包(以其依赖包)并暂时锁定其它升级和
 
安装的软件包。作用与apt-get install de><package>de>相同。
de>[F]de>
禁止安装某个版本的软件包。但是,对更高版本正常使用。
de>[B]de>
调用reportbug,申报一个软件包的错误。
de>[C]de>
下载并显示一个软件包的变更日志。
de>[g]de>
进入所有请求变更的预览窗口。如果在预览屏键入此键,
 
将执行变更操作。
de>[d]de>
查询相关软件包: suggest/recommanded/depends
de>[r]de>
查询依赖包
de>[/]de>
搜索
de>[\]de>
继续搜索
   
注: Control-u组合键可用于取消上一步的动作.

### 裁剪 Linux-firmware 以减小系统占用空间 在嵌入式系统或资源受限的环境中,精简 Linux 系统体积是常见需求之一。`linux-firmware` 包含大量硬件设备所需的二进制固件文件,通常占据较大的磁盘空间。裁剪该包可以有效减少根文件系统的大小,并提升系统启动效率。 #### 分析当前系统中使用的固件 为了安全有效地进行裁剪,首先需要确定系统中实际使用的固件文件。可以通过以下方式获取相关信息: - 查看 `/var/log/syslog` 或 `dmesg` 输出,识别内核加载了哪些固件文件; - 使用 `modinfo <module_name>` 命令查看模块依赖的固件名称; - 检查 `/lib/firmware` 目录下所有文件,并与系统运行时加载的固件进行比对。 例如,通过 `dmesg` 可以查看固件加载信息: ```bash dmesg | grep -i firmware ``` #### 手动删除不必要的固件文件 在确认系统仅使用部分固件后,可手动删除未使用的固件文件。例如,若系统不使用 NVIDIA 显卡,则可删除 `/lib/firmware/nvidia/` 下的所有文件;若没有无线网卡,则可移除 `/lib/firmware/rtlwifi/` 或 `/lib/firmware/brcm/` 等目录。 注意保留关键固件如 Intel 显卡(`i915/`)、AMD 显卡(`amdgpu/`)、Intel 无线(`iwlwifi-*.ucode`)等[^2]。 #### 构建定制化的 firmware 包 对于基于构建系统的项目(如 Yocto、Buildroot),可在构建配置中选择性地启用所需固件。例如,在 Buildroot 中可通过 `make menuconfig` 配置 `BR2_PACKAGE_LINUX_FIRMWARE_CUSTOM` 选项,并指定只包含特定厂商或设备的固件列表。 在 Yocto 项目中,可通过修改 `local.conf` 文件限制固件安装范围: ```bash DISTRO_FEATURES_BACKFILL_CONSIDERED = "bluez5 bluetooth wifi" PACKAGECONFIG_append_pn-linux-firmware = " disable-all-firmwares enable-some-firmwares" ``` 这样可以避免将完整的 `linux-firmware` 包打包进最终镜像中。 #### 使用工具辅助裁剪 一些工具可以帮助分析和裁剪固件,例如: - **fwts**(Firmware Test Suite)可用于检测系统中固件的兼容性和使用情况; - **fwanalyzer** 是一个用于扫描固件依赖关系的工具,适用于构建阶段的静态分析; - 在 Debian/Ubuntu 系统中,可以使用 `debfoster` 或 `aptitude` 工具来识别并卸载未使用的固件包。 #### 注意事项 裁剪过程中应确保不影响系统正常启动和硬件功能。建议在测试环境中验证裁剪后的固件是否满足所有外设驱动需求。某些压缩算法如 xz 虽然能提供更高的压缩率,但解压速度较慢,可能影响启动性能,因此在构建镜像时应综合考虑压缩方式的选择[^1]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值