我正在使用 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 列用作“%”完全的”)。