Dear Eli,
Thank you.
I wrote a regulation expression, which extracts file name and path from
the output of paccheck:
$ sudo paccheck --file-properties --quiet | grep -Po "(?<=\').*(?=\')" |
sudo pacrepairfile --uid --gid --mode --mtime
However, somehow pacrepairfile was not working.
For example,
$ sudo pacrepairfile --uid --gid --mode --mtime
/usr/lib/tmpfiles.d/colord.conf
outputs
/usr/lib/tmpfiles.d/colord.conf: set uid to 0
/usr/lib/tmpfiles.d/colord.conf: set gid to 0
warning: /usr/lib/tmpfiles.d/colord.conf: unable to set permissions
(Operation not supported)
/usr/lib/tmpfiles.d/colord.conf: set modification time to 1555511829
What happened with pacrepairfile?
Yours sincerely,
Xianwen
On 08/09/2019 22.53, Eli Schwartz via arch-general wrote:
On 9/8/19 4:40 PM, Xianwen Chen (陈贤文) via arch-general wrote:
Dear Eli,
Thank you!
Is there a way to ask paccheck to list only files that need to be fixed?
For example, if I run
sudo paccheck --file-properties --quiet
I get list of files with package information and error information, such as
screen: '/usr/lib/tmpfiles.d/screen.conf' permission mismatch
(expected 644)
Or maybe I need to write a regular expression to extract file name and
path from such an output myself?
No, paccheck does not have an option to do this. You could try
submitting a feature request for it. :)
You can extract everything between the '' though, which I think should
handle any filenames since packaged filenames can contain spaces or
single quotes but not newlines, and the paccheck output doesn't contain
any more single quotes after the quoted filename.