如何从 Aptitude 获取进度输出?

如何从 Aptitude 获取进度输出?

我正在使用 Aptitude 升级一些软件包,并且想要获得一些程序可读的状态更新。我想我可以定向dpkg --status-fd到我提前打开的文件(此实验的常规文件,但最终是命名管道),如下所示:

aptitude -o 'Dpkg::Options::=--status-fd=3' install 3>dpkg-status-log

但 Aptitude 似乎在运行之前关闭了我的文件描述符dpkg

dpkg: error: unable to read filedescriptor flags for <package status and progress file descriptor>: Bad file descriptor
E: Sub-process /usr/bin/dpkg returned an error code (2)

除了尝试解析标准输出之外,是否有其他方法可以获得一些进度反馈?

答案1

APT文件中有一个指针README.progress-reporting

APT::Status-Fd如果设置了apt options: " ",apt 将向该 fd 发送状态报告。

一个简单的实验使用了aptitude -o 'APT::Status-Fd=3' install我的尝试Dpkg::Options::没有达到的效果,并且我得到了一系列pmstatus非常适合我的需求的行(事实上,它比 dpkg 自己的输出更合适,因为我可以将pmstatus行中的第 3 列用作“%”完全的”)。

相关内容