在我安装软件包之前,我想知道我会得到什么版本。
在使用apt-get或aptitude在 Debian 或 Ubuntu 上安装之前,如何检查版本?
我知道,无论apt-get和aptitude是Debian的命令行包管理界面的Linux衍生,用不同的选择,但我还是有点困惑。在幕后,他们不是使用相同的 APT 系统吗?
在启动aptitude upgradeor之前,有没有办法apt-get upgrade设置一些东西,以便您可以“轻松”将系统回滚到实际升级之前的“apt”状态,如果出现问题?
即,例如,重新安装在此过程中升级的旧版本软件包。
(编辑)一些提示:我知道etckeeper例如使用一些钩子,apt以便在apt安装或卸载软件包时通知它。我想可能有某种脚本可以保存新安装的软件包列表及其以前的版本号,以便能够从apt缓存 ( /var/cache/apt/archives) 中重新安装它们。还有checkinstall哪些可以跟踪文件修改...
有关如何正确实现这一目标的任何详细信息?
好的,我了解如何apt-get {install|upgrade|remove} mypackages安装、升级或删除二进制文件以及它们的配置数据文件和依赖项(实际上,remove除非提供额外的标志,否则只会删除二进制文件)。
我不是在寻找它是如何用作 man描述这一点,而是它在做什么的高级别的。我的最终目标是为我创建一种在多台远程计算机上安装和管理一些自定义软件(由 make 文件创建)的方法,我需要了解有关该过程的更多信息。如果这个问题的答案是基于所使用的发行版,请根据 Debian 进行调整。
除了它的工作原理之外,我还有以下具体问题:
.deb文件指定的吗?执行aptitude search pattern命令后,我只需要在搜索结果中看到已安装的包。有没有办法做到这一点?
我正在编写一个脚本,用于无人值守安装我们的 repo 中的一个软件包,它是一个带有 Debian 标记配置文件的软件包。是否有任何选项可以传递给apt-get/aptitude以便它接受新的配置文件?
基本上我需要一个apt/aptitude相当于 dpkg --force-confnew
我需要回答apt-get使用 Y 安装时提出的以下问题
配置文件``/opt/application/conf/XXX.conf`'
==> File on system created by you or by a script.
==> File also in package provided by package maintainer.
What would you like to do about it ? Your options are:
Y or I : install the package maintainer's version
N or O : keep your currently-installed version
D : show the differences between the versions
Z …Run Code Online (Sandbox Code Playgroud) 我不确定这是否更像是 SuperUser 或 UnixLinux 问题,但我会在这里尝试...
最近,我发现了这个:
#710689 - aptitude:在树中使用 unicode 字符 - Debian 错误报告日志
当 aptitude 对依赖项列表中的树使用 unicode 字符时会很好,例如,而不是:
Run Code Online (Sandbox Code Playgroud)--\ Depends (3) --- libc-dev-bin (= 2.17-3) --- libc6 (= 2.17-3) --- linux-libc-dev --\ Suggests (2) --- glibc-doc (UNSATISFIED) --\ manpages-dev...
...我想 - 哇,我真的很喜欢那个 ASCII 艺术树输出,不知道aptitude可以做到这一点!所以,我开始用aptitude命令行开关弄乱了一个小时- 我根本无法获得该输出?所以我最初的问题是 - 该输出首先来自哪里?!
过了一会儿,我意识到在我的系统上,aptitude最终符号链接到/usr/bin/aptitude-curses; 我终于意识到aptitude有一个curses接口!:/
所以,我终于在aptitude没有任何参数的情况下运行了- 所以curses界面启动了,我可以看到这样的东西:

...很明显,这些 ASCII 树字符来自 Curses 界面。
所以我想知道 - 是否有一个 Debian/apt 工具,它会输出这样一个“可视化”的 …
使用aptitudeI 可以进行如下搜索:
aptitude search '~i bash'
Run Code Online (Sandbox Code Playgroud)
这似乎是一个特定于能力的正则表达式。是否可以使用apt或apt-cache不使用其他命令来做同样的事情?
apt search '~i bash'
Run Code Online (Sandbox Code Playgroud)
不管用。
是否有一个术语来指代 Debian 发行版自动安装的软件包子集?
我认为它与包优先级有关,但似乎并非如此,因为默认情况下安装的包中有所有优先级级别的包。
此外,初始子集的某些包具有automatically installed标志,例如wireless-tools. 因此,如果根据它们手动删除初始子集的包,它们将被自动删除。我想知道,安装工具是否只保留要考虑手动安装的软件包列表并自动安装它们的依赖项?
回答前两个问题:
在安装核心 Debian 实用程序后,Debian 安装程序似乎会调用tasksel以执行安装“任务”。其中典型的任务是“标准”任务和“笔记本电脑”任务。从工具tasksel页:
“标准”任务
标准任务是 Debian 安装程序使用的特殊任务。它实际上依赖于包的优先级。“标准系统”任务包括什么?
tasksel --task-packages standard这是一个 aptitude 搜索字符串,相当于
aptitude search ~pstandard ~prequired ~pimportant -F%p
所以tasksel安装standard,required和important包。
“笔记本电脑”任务
笔记本电脑任务是 Debian 安装程序使用的一项特殊任务,用于提取笔记本电脑上有用的软件包:
桌面
在运行“稳定”Debian 的计算机上,尝试使用该aptitude install <package>/unstable命令安装 Debian 网站上不稳定列表中的软件包时,我得到类似于以下内容的输出:
Couldn't find any package whose name or description matched "<package>"
Couldn't find any package whose name or description matched "<package>"
No packages will be installed, upgraded, or removed.
0 packages upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 0 B of archives. After unpacking 0 B will be used.
Run Code Online (Sandbox Code Playgroud)
我该怎么做才能安装“不稳定”的软件包?(我想将存储库添加到sources.list,但我不希望从“不稳定”开始安装所有内容)。
那么:如何安装不稳定的软件包(/stable在软件包名称末尾使用 using )?